Merge branch 'bug480646'
diff --git a/dev/org.eclipse.xpand.devenv/Generate Xpand Parser.launch b/dev/org.eclipse.xpand.devenv/Generate Xpand Parser.launch
index 0b21074..03eccfb 100644
--- a/dev/org.eclipse.xpand.devenv/Generate Xpand Parser.launch
+++ b/dev/org.eclipse.xpand.devenv/Generate Xpand Parser.launch
@@ -6,10 +6,11 @@
 <listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
 <listEntry value="4"/>
 </listAttribute>
+<booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="true"/>
 <listAttribute key="org.eclipse.jdt.launching.CLASSPATH">
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;runtimeClasspathEntry containerPath=&quot;org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5&quot; javaProject=&quot;org.eclipse.xpand&quot; path=&quot;1&quot; type=&quot;4&quot;/&gt;&#13;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;runtimeClasspathEntry id=&quot;org.eclipse.jdt.launching.classpathentry.defaultClasspath&quot;&gt;&#13;&#10;&lt;memento exportedEntriesOnly=&quot;false&quot; project=&quot;org.eclipse.xpand&quot;/&gt;&#13;&#10;&lt;/runtimeClasspathEntry&gt;&#13;&#10;"/>
-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/org.eclipse.xpand.devenv/antlr-3.2.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#13;&#10;"/>
+<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;runtimeClasspathEntry containerPath=&quot;org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5&quot; javaProject=&quot;org.eclipse.xpand&quot; path=&quot;1&quot; type=&quot;4&quot;/&gt;&#10;"/>
+<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;runtimeClasspathEntry id=&quot;org.eclipse.jdt.launching.classpathentry.defaultClasspath&quot;&gt;&#10;&lt;memento exportedEntriesOnly=&quot;false&quot; project=&quot;org.eclipse.xpand&quot;/&gt;&#10;&lt;/runtimeClasspathEntry&gt;&#10;"/>
+<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;runtimeClasspathEntry containerPath=&quot;ECLIPSE_HOME/plugins/org.antlr.generator_3.2.0.v201405091103.jar&quot; path=&quot;3&quot; type=&quot;3&quot;/&gt;&#10;"/>
 </listAttribute>
 <booleanAttribute key="org.eclipse.jdt.launching.DEFAULT_CLASSPATH" value="false"/>
 <stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
diff --git a/dev/org.eclipse.xpand.devenv/Generate XtendParser.launch b/dev/org.eclipse.xpand.devenv/Generate XtendParser.launch
index 5ca0d82..ecde615 100644
--- a/dev/org.eclipse.xpand.devenv/Generate XtendParser.launch
+++ b/dev/org.eclipse.xpand.devenv/Generate XtendParser.launch
@@ -1,19 +1,20 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>

-<launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication">

-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">

-<listEntry value="/org.eclipse.xtend"/>

-</listAttribute>

-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">

-<listEntry value="4"/>

-</listAttribute>

-<listAttribute key="org.eclipse.jdt.launching.CLASSPATH">

-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;runtimeClasspathEntry containerPath=&quot;org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5&quot; javaProject=&quot;org.eclipse.xpand&quot; path=&quot;1&quot; type=&quot;4&quot;/&gt;&#13;&#10;"/>

-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;runtimeClasspathEntry id=&quot;org.eclipse.jdt.launching.classpathentry.defaultClasspath&quot;&gt;&#13;&#10;&lt;memento exportedEntriesOnly=&quot;false&quot; project=&quot;org.eclipse.xpand&quot;/&gt;&#13;&#10;&lt;/runtimeClasspathEntry&gt;&#13;&#10;"/>

-<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/org.eclipse.xpand.devenv/antlr-3.2.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#13;&#10;"/>

-</listAttribute>

-<booleanAttribute key="org.eclipse.jdt.launching.DEFAULT_CLASSPATH" value="false"/>

-<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>

-<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.antlr.Tool"/>

-<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="src\org\eclipse\internal\xtend\xtend\parser\Xtend.g"/>

-<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.xtend"/>

-</launchConfiguration>

+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication">
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/org.eclipse.xtend"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="4"/>
+</listAttribute>
+<booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="false"/>
+<listAttribute key="org.eclipse.jdt.launching.CLASSPATH">
+<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;runtimeClasspathEntry containerPath=&quot;org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5&quot; javaProject=&quot;org.eclipse.xpand&quot; path=&quot;1&quot; type=&quot;4&quot;/&gt;&#10;"/>
+<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;runtimeClasspathEntry id=&quot;org.eclipse.jdt.launching.classpathentry.defaultClasspath&quot;&gt;&#10;&lt;memento exportedEntriesOnly=&quot;false&quot; project=&quot;org.eclipse.xpand&quot;/&gt;&#10;&lt;/runtimeClasspathEntry&gt;&#10;"/>
+<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;runtimeClasspathEntry containerPath=&quot;ECLIPSE_HOME/plugins/org.antlr.generator_3.2.0.v201405091103.jar&quot; path=&quot;3&quot; type=&quot;3&quot;/&gt;&#10;"/>
+</listAttribute>
+<booleanAttribute key="org.eclipse.jdt.launching.DEFAULT_CLASSPATH" value="false"/>
+<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.antlr.Tool"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="src/org/eclipse/internal/xtend/xtend/parser/Xtend.g"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.xtend"/>
+</launchConfiguration>
diff --git a/plugins/org.eclipse.xpand/.settings/.api_filters b/plugins/org.eclipse.xpand/.settings/.api_filters
index a57cf2c..ae53091 100644
--- a/plugins/org.eclipse.xpand/.settings/.api_filters
+++ b/plugins/org.eclipse.xpand/.settings/.api_filters
@@ -1,3 +1,1240 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <component id="org.eclipse.xpand" version="2">
+    <resource path="src/org/eclipse/internal/xpand2/parser/XpandParser.java">
+        <filter id="0"/>
+    </resource>
+    <resource path="src/org/eclipse/internal/xpand2/parser/XpandParser.java" type="org.eclipse.internal.xpand2.parser.XpandParser">
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_100_in_collectionType2668"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_23_in_collectionExpression2378"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_23_in_collectionExpression2447"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_23_in_featureCall2155"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_23_in_paranthesizedExpression2087"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_23_in_switchExpression1485"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_24_in_declaredParameterList2498"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_24_in_parameterList2561"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_26_in_collectionExpression2384"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_26_in_collectionExpression2462"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_26_in_featureCall2164"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_26_in_paranthesizedExpression2093"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_26_in_switchExpression1493"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_29_in_simpleType2704"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_32_in_unaryExpression1903"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_57_in_ifExpression1423"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_57_in_switchExpression1520"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_57_in_switchExpression1545"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_58_in_chainExpression1379"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_59_in_ifExpression1417"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_60_in_ifExpression1435"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_61_in_ifExpression1441"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_62_in_ifExpression1448"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_63_in_switchExpression1482"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_64_in_listLiteral2211"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_64_in_switchExpression1500"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_65_in_switchExpression1513"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_66_in_switchExpression1543"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_67_in_listLiteral2220"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_67_in_switchExpression1556"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_68_in_orExpression1604"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_69_in_andExpression1647"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_70_in_impliesExpression1689"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_79_in_unaryExpression1891"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_80_in_infixExpression1940"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_80_in_numberLiteral2341"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_81_in_globalVarExpression2122"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_82_in_constructorCall2245"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_85_in_nullLiteral2301"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_86_in_collectionExpression2374"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_95_in_collectionExpression2454"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_99_in_collectionType2660"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_Identifier_in_identifier2739"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_IntLiteral_in_numberLiteral2328"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_IntLiteral_in_numberLiteral2337"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_IntLiteral_in_numberLiteral2345"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_StringLiteral_in_primaryExpression1979"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_additiveExpression_in_relationalExpression1725"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_additiveExpression_in_relationalExpression1759"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_andExpression_in_orExpression1597"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_andExpression_in_orExpression1608"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_booleanLiteral_in_primaryExpression2000"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_collectionExpression_in_featureCall2185"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_collectionType_in_type2599"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_constructorCall_in_primaryExpression2040"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_declaredParameter_in_declaredParameterList2494"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_declaredParameter_in_declaredParameterList2502"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_expression_in_collectionExpression2460"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_expression_in_ifExpression1452"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_expression_in_parameterList2556"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_expression_in_parameterList2565"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_expression_in_paranthesizedExpression2091"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_featureCall_in_infixExpression1944"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_featureCall_in_primaryExpression1990"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_globalVarExpression_in_primaryExpression2050"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_identifier_in_collectionExpression2452"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_identifier_in_declaredParameter2534"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_identifier_in_featureCall2153"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_identifier_in_globalVarExpression2126"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_identifier_in_simpleType2696"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_identifier_in_simpleType2708"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_ifExpression_in_chainExpression1373"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_ifExpression_in_chainExpression1383"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_impliesExpression_in_andExpression1640"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_impliesExpression_in_andExpression1651"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_infixExpression_in_unaryExpression1883"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_infixExpression_in_unaryExpression1895"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_infixExpression_in_unaryExpression1907"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_listLiteral_in_primaryExpression2030"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_multiplicativeExpression_in_additiveExpression1788"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_multiplicativeExpression_in_additiveExpression1807"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_nullLiteral_in_primaryExpression2020"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_numberLiteral_in_primaryExpression2010"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_orExpression_in_switchExpression1491"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_orExpression_in_switchExpression1517"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_orExpression_in_switchExpression1525"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_orExpression_in_switchExpression1551"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_orExpression_in_switchExpression1568"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_parameterList_in_featureCall2160"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_parameterList_in_listLiteral2216"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_paranthesizedExpression_in_primaryExpression2060"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_primaryExpression_in_infixExpression1934"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_relationalExpression_in_impliesExpression1682"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_relationalExpression_in_impliesExpression1693"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_set_in_additiveExpression1798"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_set_in_collectionExpression2397"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_set_in_collectionType2639"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_set_in_multiplicativeExpression1844"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_set_in_relationalExpression1733"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_simpleType_in_collectionType2664"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_simpleType_in_constructorCall2249"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_simpleType_in_type2609"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_switchExpression_in_ifExpression1413"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_switchExpression_in_ifExpression1421"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_switchExpression_in_ifExpression1427"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_switchExpression_in_ifExpression1439"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_switchExpression_in_ifExpression1445"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_type_in_collectionExpression2382"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_type_in_declaredParameter2530"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_type_in_featureCall2174"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_unaryExpression_in_multiplicativeExpression1836"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xpand2.parser.XpandParser"/>
+                <message_argument value="FOLLOW_unaryExpression_in_multiplicativeExpression1854"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_100_in_collectionType2640"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_23_in_collectionExpression2350"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_23_in_collectionExpression2419"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_23_in_featureCall2127"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_23_in_paranthesizedExpression2059"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_23_in_switchExpression1481"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_24_in_declaredParameterList2470"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_24_in_parameterList2533"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_26_in_collectionExpression2356"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_26_in_collectionExpression2434"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_26_in_featureCall2136"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_26_in_paranthesizedExpression2065"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_26_in_switchExpression1489"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_29_in_simpleType2676"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_32_in_unaryExpression1875"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_57_in_ifExpression1419"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_57_in_switchExpression1516"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_57_in_switchExpression1541"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_58_in_chainExpression1375"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_59_in_ifExpression1413"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_60_in_ifExpression1431"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_61_in_ifExpression1437"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_62_in_ifExpression1444"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_63_in_switchExpression1478"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_64_in_listLiteral2183"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_64_in_switchExpression1496"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_65_in_switchExpression1509"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_66_in_switchExpression1539"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_67_in_listLiteral2192"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_67_in_switchExpression1552"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_68_in_orExpression1596"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_69_in_andExpression1635"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_70_in_impliesExpression1673"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_79_in_unaryExpression1863"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_80_in_infixExpression1912"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_80_in_numberLiteral2313"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_81_in_globalVarExpression2094"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_82_in_constructorCall2217"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_85_in_nullLiteral2273"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_86_in_collectionExpression2346"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_95_in_collectionExpression2426"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_99_in_collectionType2632"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_Identifier_in_identifier2711"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_IntLiteral_in_numberLiteral2300"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_IntLiteral_in_numberLiteral2309"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_IntLiteral_in_numberLiteral2317"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_StringLiteral_in_primaryExpression1951"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_additiveExpression_in_relationalExpression1705"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_additiveExpression_in_relationalExpression1739"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_andExpression_in_orExpression1589"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_andExpression_in_orExpression1600"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_booleanLiteral_in_primaryExpression1972"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_collectionExpression_in_featureCall2157"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_collectionType_in_type2571"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_constructorCall_in_primaryExpression2012"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_declaredParameter_in_declaredParameterList2466"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_declaredParameter_in_declaredParameterList2474"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_expression_in_collectionExpression2432"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_expression_in_ifExpression1448"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_expression_in_parameterList2528"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_expression_in_parameterList2537"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_expression_in_paranthesizedExpression2063"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_featureCall_in_infixExpression1916"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_featureCall_in_primaryExpression1962"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_globalVarExpression_in_primaryExpression2022"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_identifier_in_collectionExpression2424"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_identifier_in_declaredParameter2506"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_identifier_in_featureCall2125"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_identifier_in_globalVarExpression2098"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_identifier_in_simpleType2668"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_identifier_in_simpleType2680"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_ifExpression_in_chainExpression1369"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_ifExpression_in_chainExpression1379"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_impliesExpression_in_andExpression1628"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_impliesExpression_in_andExpression1639"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_infixExpression_in_unaryExpression1855"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_infixExpression_in_unaryExpression1867"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_infixExpression_in_unaryExpression1879"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_listLiteral_in_primaryExpression2002"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_multiplicativeExpression_in_additiveExpression1764"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_multiplicativeExpression_in_additiveExpression1783"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_nullLiteral_in_primaryExpression1992"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_numberLiteral_in_primaryExpression1982"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_orExpression_in_switchExpression1487"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_orExpression_in_switchExpression1513"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_orExpression_in_switchExpression1521"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_orExpression_in_switchExpression1547"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_orExpression_in_switchExpression1564"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_parameterList_in_featureCall2132"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_parameterList_in_listLiteral2188"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_paranthesizedExpression_in_primaryExpression2032"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_primaryExpression_in_infixExpression1906"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_relationalExpression_in_impliesExpression1666"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_relationalExpression_in_impliesExpression1677"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_set_in_additiveExpression1774"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_set_in_collectionExpression2369"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_set_in_collectionType2611"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_set_in_multiplicativeExpression1816"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_set_in_relationalExpression1713"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_simpleType_in_collectionType2636"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_simpleType_in_constructorCall2221"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_simpleType_in_type2581"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_switchExpression_in_ifExpression1409"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_switchExpression_in_ifExpression1417"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_switchExpression_in_ifExpression1423"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_switchExpression_in_ifExpression1435"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_switchExpression_in_ifExpression1441"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_type_in_collectionExpression2354"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_type_in_declaredParameter2502"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_type_in_featureCall2146"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_unaryExpression_in_multiplicativeExpression1808"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_unaryExpression_in_multiplicativeExpression1826"/>
+            </message_arguments>
+        </filter>
+    </resource>
 </component>
diff --git a/plugins/org.eclipse.xpand/src/org/eclipse/internal/xpand2/parser/Xpand.g b/plugins/org.eclipse.xpand/src/org/eclipse/internal/xpand2/parser/Xpand.g
index 34793ff..2454d00 100644
--- a/plugins/org.eclipse.xpand/src/org/eclipse/internal/xpand2/parser/Xpand.g
+++ b/plugins/org.eclipse.xpand/src/org/eclipse/internal/xpand2/parser/Xpand.g
@@ -312,9 +312,8 @@
 
 chainExpression  returns [Expression e]
 @init{ final CommonToken startToken = (CommonToken) input.LT(1); }
-@after{ addLocation(e, startToken, /*endToken*/ (CommonToken) input.LT(-1)); }
 :
-	x=ifExpression {$e=x;} ( '->' right=ifExpression {$e=factory.createChainExpression($e,right);})*
+	x=ifExpression {$e=x;} ( '->' right=ifExpression {$e=factory.createChainExpression($e,right); addLocation(e, startToken, /*endToken*/ (CommonToken) input.LT(-1)); })*
 ;
 
 
@@ -346,52 +345,46 @@
 
 orExpression returns [Expression e]
 @init{ final CommonToken startToken = (CommonToken) input.LT(1); }
-@after{ addLocation(e, startToken, /*endToken*/ (CommonToken) input.LT(-1)); }
 :
-  	x=andExpression {$e=x;} (name='||' r=andExpression 	{$e = factory.createBooleanOperation(id(name),$e,r);})*	
+  	x=andExpression {$e=x;} (name='||' r=andExpression 	{$e = factory.createBooleanOperation(id(name),$e,r); addLocation(e, startToken, /*endToken*/ (CommonToken) input.LT(-1)); })*	
 ;
 
 
 andExpression 	returns [Expression e]
 @init{ final CommonToken startToken = (CommonToken) input.LT(1); }
-@after{ addLocation(e, startToken, /*endToken*/ (CommonToken) input.LT(-1)); }
 :
-	x=impliesExpression {$e=x;} (name='&&' r=impliesExpression 	{$e = factory.createBooleanOperation(id(name),$e,r);})*	
+	x=impliesExpression {$e=x;} (name='&&' r=impliesExpression 	{$e = factory.createBooleanOperation(id(name),$e,r); addLocation(e, startToken, /*endToken*/ (CommonToken) input.LT(-1)); })*	
 ;
 
 
 impliesExpression returns [Expression e]
 @init{ final CommonToken startToken = (CommonToken) input.LT(1); }
-@after{ addLocation(e, startToken, /*endToken*/ (CommonToken) input.LT(-1)); }
 :
-	x=relationalExpression {$e=x;} (name='implies' r=relationalExpression 	{$e = factory.createBooleanOperation(id(name),$e,r);})*	
+	x=relationalExpression {$e=x;} (name='implies' r=relationalExpression 	{$e = factory.createBooleanOperation(id(name),$e,r); addLocation(e, startToken, /*endToken*/ (CommonToken) input.LT(-1)); })*	
 ;
 
 	
 relationalExpression returns [Expression e]
 @init{ final CommonToken startToken = (CommonToken) input.LT(1); }
-@after{ addLocation(e, startToken, /*endToken*/ (CommonToken) input.LT(-1)); }
 :
 	x=additiveExpression {$e=x;}
-	(name=('==' | '!=' | '>=' | '<=' | '>' | '<') r=additiveExpression {$e = factory.createBinaryOperation(id(name),$e,r);})*
+	(name=('==' | '!=' | '>=' | '<=' | '>' | '<') r=additiveExpression {$e = factory.createBinaryOperation(id(name),$e,r); addLocation(e, startToken, /*endToken*/ (CommonToken) input.LT(-1)); })*
 ;
 
 
 additiveExpression returns [Expression e]
 @init{ final CommonToken startToken = (CommonToken) input.LT(1); }
-@after{ addLocation(e, startToken, /*endToken*/ (CommonToken) input.LT(-1)); }
 :
 	x=multiplicativeExpression {$e=x;}
-   (name=('+'| '-') r=multiplicativeExpression {$e = factory.createBinaryOperation(id(name),$e,r);})*
+   (name=('+'| '-') r=multiplicativeExpression {$e = factory.createBinaryOperation(id(name),$e,r); addLocation(e, startToken, /*endToken*/ (CommonToken) input.LT(-1));})*
 ;
 
 
 multiplicativeExpression returns [Expression e]
 @init{ final CommonToken startToken = (CommonToken) input.LT(1); }
-@after{ addLocation(e, startToken, /*endToken*/ (CommonToken) input.LT(-1)); }
 :
 	x=unaryExpression {$e=x;}
-	(name=('*' | '/') r=unaryExpression {$e = factory.createBinaryOperation(id(name),$e,r);})*
+	(name=('*' | '/') r=unaryExpression {$e = factory.createBinaryOperation(id(name),$e,r); addLocation(e, startToken, /*endToken*/ (CommonToken) input.LT(-1)); })*
 ;
 
 
diff --git a/plugins/org.eclipse.xpand/src/org/eclipse/internal/xpand2/parser/XpandLexer.java b/plugins/org.eclipse.xpand/src/org/eclipse/internal/xpand2/parser/XpandLexer.java
index 395aa92..d6c0cda 100644
--- a/plugins/org.eclipse.xpand/src/org/eclipse/internal/xpand2/parser/XpandLexer.java
+++ b/plugins/org.eclipse.xpand/src/org/eclipse/internal/xpand2/parser/XpandLexer.java
@@ -1,7 +1,7 @@
-// $ANTLR 3.2 Sep 23, 2009 12:02:23 src/org/eclipse/internal/xpand2/parser/Xpand.g 2013-04-12 02:55:17
- 	
-package org.eclipse.internal.xpand2.parser; 
-	
+// $ANTLR 3.2 Sep 23, 2009 12:02:23 src/org/eclipse/internal/xpand2/parser/Xpand.g 2015-11-18 22:36:06
+
+package org.eclipse.internal.xpand2.parser;
+
 import org.antlr.runtime.BaseRecognizer;
 import org.antlr.runtime.CharStream;
 import org.antlr.runtime.DFA;
@@ -14,117 +14,124 @@
 
 @SuppressWarnings("all")
 public class XpandLexer extends Lexer {
-    public static final int T__29=29;
-    public static final int T__28=28;
-    public static final int T__27=27;
-    public static final int T__26=26;
-    public static final int T__25=25;
-    public static final int T__24=24;
-    public static final int T__23=23;
-    public static final int T__22=22;
-    public static final int T__21=21;
-    public static final int T__20=20;
-    public static final int EOF=-1;
-    public static final int Identifier=9;
-    public static final int T__93=93;
-    public static final int T__94=94;
-    public static final int T__91=91;
-    public static final int T__92=92;
-    public static final int T__90=90;
-    public static final int COMMENT=5;
-    public static final int T__99=99;
-    public static final int T__98=98;
-    public static final int T__97=97;
-    public static final int T__96=96;
-    public static final int T__95=95;
-    public static final int T__80=80;
-    public static final int T__81=81;
-    public static final int T__82=82;
-    public static final int T__83=83;
-    public static final int LINE_COMMENT=18;
-    public static final int T__85=85;
-    public static final int T__84=84;
-    public static final int T__87=87;
-    public static final int T__86=86;
-    public static final int T__89=89;
-    public static final int T__88=88;
-    public static final int T__71=71;
-    public static final int WS=16;
-    public static final int T__72=72;
-    public static final int T__70=70;
-    public static final int JavaIDDigit=15;
-    public static final int T__76=76;
-    public static final int T__75=75;
-    public static final int T__74=74;
-    public static final int Letter=14;
-    public static final int T__73=73;
-    public static final int EscapeSequence=10;
-    public static final int T__79=79;
-    public static final int T__78=78;
-    public static final int T__77=77;
-    public static final int T__68=68;
-    public static final int T__69=69;
-    public static final int RG=19;
-    public static final int T__66=66;
-    public static final int T__67=67;
-    public static final int T__64=64;
-    public static final int T__65=65;
-    public static final int T__62=62;
-    public static final int T__63=63;
-    public static final int T__61=61;
-    public static final int T__60=60;
-    public static final int HexDigit=13;
-    public static final int T__55=55;
-    public static final int ML_COMMENT=17;
-    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__59=59;
-    public static final int T__50=50;
-    public static final int T__42=42;
-    public static final int T__43=43;
-    public static final int T__40=40;
-    public static final int T__41=41;
-    public static final int T__46=46;
-    public static final int T__47=47;
-    public static final int T__44=44;
-    public static final int T__45=45;
-    public static final int T__48=48;
-    public static final int IntLiteral=8;
-    public static final int T__49=49;
-    public static final int T__100=100;
-    public static final int TEXT=6;
-    public static final int StringLiteral=7;
-    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__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__37=37;
-    public static final int T__38=38;
-    public static final int T__39=39;
-    public static final int UnicodeEscape=11;
-    public static final int OctalEscape=12;
-    public static final int LG=4;
+    public static final int T__50 = 50;
+    public static final int TEXT = 6;
+    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 HexDigit = 13;
+    public static final int Letter = 14;
+    public static final int LINE_COMMENT = 18;
+    public static final int StringLiteral = 7;
+    public static final int RG = 19;
+    public static final int T__66 = 66;
+    public static final int T__67 = 67;
+    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 OctalEscape = 12;
+    public static final int JavaIDDigit = 15;
+    public static final int T__63 = 63;
+    public static final int T__64 = 64;
+    public static final int T__65 = 65;
+    public static final int COMMENT = 5;
+    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 UnicodeEscape = 11;
+    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 LG = 4;
+    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__94 = 94;
+    public static final int T__90 = 90;
+    public static final int Identifier = 9;
+    public static final int T__99 = 99;
+    public static final int IntLiteral = 8;
+    public static final int T__95 = 95;
+    public static final int T__96 = 96;
+    public static final int T__97 = 97;
+    public static final int T__98 = 98;
+    public static final int T__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__70 = 70;
+    public static final int T__71 = 71;
+    public static final int T__72 = 72;
+    public static final int T__77 = 77;
+    public static final int T__78 = 78;
+    public static final int T__79 = 79;
+    public static final int T__73 = 73;
+    public static final int WS = 16;
+    public static final int EOF = -1;
+    public static final int T__74 = 74;
+    public static final int T__75 = 75;
+    public static final int T__76 = 76;
+    public static final int T__80 = 80;
+    public static final int T__81 = 81;
+    public static final int T__82 = 82;
+    public static final int T__83 = 83;
+    public static final int EscapeSequence = 10;
+    public static final int ML_COMMENT = 17;
+    public static final int T__88 = 88;
+    public static final int T__89 = 89;
+    public static final int T__84 = 84;
+    public static final int T__85 = 85;
+    public static final int T__86 = 86;
+    public static final int T__87 = 87;
 
     // delegates
     // delegators
 
-    public XpandLexer() {;} 
+    public XpandLexer() {
+        ;
+    }
+
     public XpandLexer(CharStream input) {
         this(input, new RecognizerSharedState());
     }
+
     public XpandLexer(CharStream input, RecognizerSharedState state) {
-        super(input,state);
+        super(input, state);
 
     }
-    public String getGrammarFileName() { return "src/org/eclipse/internal/xpand2/parser/Xpand.g"; }
+
+    public String getGrammarFileName() {
+        return "src/org/eclipse/internal/xpand2/parser/Xpand.g";
+    }
 
     // $ANTLR start "T__20"
     public final void mT__20() throws RecognitionException {
@@ -134,17 +141,16 @@
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:15:7: ( 'IMPORT' )
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:15:9: 'IMPORT'
             {
-            match("IMPORT"); 
-
+                match("IMPORT");
 
             }
 
             state.type = _type;
             state.channel = _channel;
-        }
-        finally {
+        } finally {
         }
     }
+
     // $ANTLR end "T__20"
 
     // $ANTLR start "T__21"
@@ -155,17 +161,16 @@
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:16:7: ( 'EXTENSION' )
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:16:9: 'EXTENSION'
             {
-            match("EXTENSION"); 
-
+                match("EXTENSION");
 
             }
 
             state.type = _type;
             state.channel = _channel;
-        }
-        finally {
+        } finally {
         }
     }
+
     // $ANTLR end "T__21"
 
     // $ANTLR start "T__22"
@@ -176,17 +181,16 @@
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:17:7: ( 'AROUND' )
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:17:9: 'AROUND'
             {
-            match("AROUND"); 
-
+                match("AROUND");
 
             }
 
             state.type = _type;
             state.channel = _channel;
-        }
-        finally {
+        } finally {
         }
     }
+
     // $ANTLR end "T__22"
 
     // $ANTLR start "T__23"
@@ -197,16 +201,16 @@
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:18:7: ( '(' )
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:18:9: '('
             {
-            match('('); 
+                match('(');
 
             }
 
             state.type = _type;
             state.channel = _channel;
-        }
-        finally {
+        } finally {
         }
     }
+
     // $ANTLR end "T__23"
 
     // $ANTLR start "T__24"
@@ -217,16 +221,16 @@
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:19:7: ( ',' )
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:19:9: ','
             {
-            match(','); 
+                match(',');
 
             }
 
             state.type = _type;
             state.channel = _channel;
-        }
-        finally {
+        } finally {
         }
     }
+
     // $ANTLR end "T__24"
 
     // $ANTLR start "T__25"
@@ -237,16 +241,16 @@
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:20:7: ( '*' )
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:20:9: '*'
             {
-            match('*'); 
+                match('*');
 
             }
 
             state.type = _type;
             state.channel = _channel;
-        }
-        finally {
+        } finally {
         }
     }
+
     // $ANTLR end "T__25"
 
     // $ANTLR start "T__26"
@@ -257,16 +261,16 @@
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:21:7: ( ')' )
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:21:9: ')'
             {
-            match(')'); 
+                match(')');
 
             }
 
             state.type = _type;
             state.channel = _channel;
-        }
-        finally {
+        } finally {
         }
     }
+
     // $ANTLR end "T__26"
 
     // $ANTLR start "T__27"
@@ -277,17 +281,16 @@
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:22:7: ( 'FOR' )
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:22:9: 'FOR'
             {
-            match("FOR"); 
-
+                match("FOR");
 
             }
 
             state.type = _type;
             state.channel = _channel;
-        }
-        finally {
+        } finally {
         }
     }
+
     // $ANTLR end "T__27"
 
     // $ANTLR start "T__28"
@@ -298,17 +301,16 @@
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:23:7: ( 'ENDAROUND' )
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:23:9: 'ENDAROUND'
             {
-            match("ENDAROUND"); 
-
+                match("ENDAROUND");
 
             }
 
             state.type = _type;
             state.channel = _channel;
-        }
-        finally {
+        } finally {
         }
     }
+
     // $ANTLR end "T__28"
 
     // $ANTLR start "T__29"
@@ -319,17 +321,16 @@
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:24:7: ( '::' )
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:24:9: '::'
             {
-            match("::"); 
-
+                match("::");
 
             }
 
             state.type = _type;
             state.channel = _channel;
-        }
-        finally {
+        } finally {
         }
     }
+
     // $ANTLR end "T__29"
 
     // $ANTLR start "T__30"
@@ -340,17 +341,16 @@
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:25:7: ( 'DEFINE' )
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:25:9: 'DEFINE'
             {
-            match("DEFINE"); 
-
+                match("DEFINE");
 
             }
 
             state.type = _type;
             state.channel = _channel;
-        }
-        finally {
+        } finally {
         }
     }
+
     // $ANTLR end "T__30"
 
     // $ANTLR start "T__31"
@@ -361,17 +361,16 @@
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:26:7: ( 'ENDDEFINE' )
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:26:9: 'ENDDEFINE'
             {
-            match("ENDDEFINE"); 
-
+                match("ENDDEFINE");
 
             }
 
             state.type = _type;
             state.channel = _channel;
-        }
-        finally {
+        } finally {
         }
     }
+
     // $ANTLR end "T__31"
 
     // $ANTLR start "T__32"
@@ -382,16 +381,16 @@
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:27:7: ( '-' )
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:27:9: '-'
             {
-            match('-'); 
+                match('-');
 
             }
 
             state.type = _type;
             state.channel = _channel;
-        }
-        finally {
+        } finally {
         }
     }
+
     // $ANTLR end "T__32"
 
     // $ANTLR start "T__33"
@@ -402,17 +401,16 @@
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:28:7: ( 'ERROR' )
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:28:9: 'ERROR'
             {
-            match("ERROR"); 
-
+                match("ERROR");
 
             }
 
             state.type = _type;
             state.channel = _channel;
-        }
-        finally {
+        } finally {
         }
     }
+
     // $ANTLR end "T__33"
 
     // $ANTLR start "T__34"
@@ -423,17 +421,16 @@
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:29:7: ( 'EXPAND' )
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:29:9: 'EXPAND'
             {
-            match("EXPAND"); 
-
+                match("EXPAND");
 
             }
 
             state.type = _type;
             state.channel = _channel;
-        }
-        finally {
+        } finally {
         }
     }
+
     // $ANTLR end "T__34"
 
     // $ANTLR start "T__35"
@@ -444,17 +441,16 @@
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:30:7: ( 'FOREACH' )
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:30:9: 'FOREACH'
             {
-            match("FOREACH"); 
-
+                match("FOREACH");
 
             }
 
             state.type = _type;
             state.channel = _channel;
-        }
-        finally {
+        } finally {
         }
     }
+
     // $ANTLR end "T__35"
 
     // $ANTLR start "T__36"
@@ -465,17 +461,16 @@
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:31:7: ( 'SEPARATOR' )
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:31:9: 'SEPARATOR'
             {
-            match("SEPARATOR"); 
-
+                match("SEPARATOR");
 
             }
 
             state.type = _type;
             state.channel = _channel;
-        }
-        finally {
+        } finally {
         }
     }
+
     // $ANTLR end "T__36"
 
     // $ANTLR start "T__37"
@@ -486,17 +481,16 @@
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:32:7: ( 'ONFILECLOSE' )
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:32:9: 'ONFILECLOSE'
             {
-            match("ONFILECLOSE"); 
-
+                match("ONFILECLOSE");
 
             }
 
             state.type = _type;
             state.channel = _channel;
-        }
-        finally {
+        } finally {
         }
     }
+
     // $ANTLR end "T__37"
 
     // $ANTLR start "T__38"
@@ -507,17 +501,16 @@
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:33:7: ( 'FILE' )
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:33:9: 'FILE'
             {
-            match("FILE"); 
-
+                match("FILE");
 
             }
 
             state.type = _type;
             state.channel = _channel;
-        }
-        finally {
+        } finally {
         }
     }
+
     // $ANTLR end "T__38"
 
     // $ANTLR start "T__39"
@@ -528,17 +521,16 @@
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:34:7: ( 'ENDFILE' )
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:34:9: 'ENDFILE'
             {
-            match("ENDFILE"); 
-
+                match("ENDFILE");
 
             }
 
             state.type = _type;
             state.channel = _channel;
-        }
-        finally {
+        } finally {
         }
     }
+
     // $ANTLR end "T__39"
 
     // $ANTLR start "T__40"
@@ -549,17 +541,16 @@
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:35:7: ( 'AS' )
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:35:9: 'AS'
             {
-            match("AS"); 
-
+                match("AS");
 
             }
 
             state.type = _type;
             state.channel = _channel;
-        }
-        finally {
+        } finally {
         }
     }
+
     // $ANTLR end "T__40"
 
     // $ANTLR start "T__41"
@@ -570,17 +561,16 @@
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:36:7: ( 'ITERATOR' )
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:36:9: 'ITERATOR'
             {
-            match("ITERATOR"); 
-
+                match("ITERATOR");
 
             }
 
             state.type = _type;
             state.channel = _channel;
-        }
-        finally {
+        } finally {
         }
     }
+
     // $ANTLR end "T__41"
 
     // $ANTLR start "T__42"
@@ -591,17 +581,16 @@
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:37:7: ( 'ENDFOREACH' )
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:37:9: 'ENDFOREACH'
             {
-            match("ENDFOREACH"); 
-
+                match("ENDFOREACH");
 
             }
 
             state.type = _type;
             state.channel = _channel;
-        }
-        finally {
+        } finally {
         }
     }
+
     // $ANTLR end "T__42"
 
     // $ANTLR start "T__43"
@@ -612,17 +601,16 @@
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:38:7: ( 'IF' )
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:38:9: 'IF'
             {
-            match("IF"); 
-
+                match("IF");
 
             }
 
             state.type = _type;
             state.channel = _channel;
-        }
-        finally {
+        } finally {
         }
     }
+
     // $ANTLR end "T__43"
 
     // $ANTLR start "T__44"
@@ -633,17 +621,16 @@
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:39:7: ( 'ENDIF' )
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:39:9: 'ENDIF'
             {
-            match("ENDIF"); 
-
+                match("ENDIF");
 
             }
 
             state.type = _type;
             state.channel = _channel;
-        }
-        finally {
+        } finally {
         }
     }
+
     // $ANTLR end "T__44"
 
     // $ANTLR start "T__45"
@@ -654,17 +641,16 @@
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:40:7: ( 'ELSEIF' )
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:40:9: 'ELSEIF'
             {
-            match("ELSEIF"); 
-
+                match("ELSEIF");
 
             }
 
             state.type = _type;
             state.channel = _channel;
-        }
-        finally {
+        } finally {
         }
     }
+
     // $ANTLR end "T__45"
 
     // $ANTLR start "T__46"
@@ -675,17 +661,16 @@
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:41:7: ( 'ELSE' )
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:41:9: 'ELSE'
             {
-            match("ELSE"); 
-
+                match("ELSE");
 
             }
 
             state.type = _type;
             state.channel = _channel;
-        }
-        finally {
+        } finally {
         }
     }
+
     // $ANTLR end "T__46"
 
     // $ANTLR start "T__47"
@@ -696,17 +681,16 @@
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:42:7: ( 'LET' )
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:42:9: 'LET'
             {
-            match("LET"); 
-
+                match("LET");
 
             }
 
             state.type = _type;
             state.channel = _channel;
-        }
-        finally {
+        } finally {
         }
     }
+
     // $ANTLR end "T__47"
 
     // $ANTLR start "T__48"
@@ -717,17 +701,16 @@
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:43:7: ( 'ENDLET' )
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:43:9: 'ENDLET'
             {
-            match("ENDLET"); 
-
+                match("ENDLET");
 
             }
 
             state.type = _type;
             state.channel = _channel;
-        }
-        finally {
+        } finally {
         }
     }
+
     // $ANTLR end "T__48"
 
     // $ANTLR start "T__49"
@@ -738,17 +721,16 @@
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:44:7: ( 'PROTECT' )
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:44:9: 'PROTECT'
             {
-            match("PROTECT"); 
-
+                match("PROTECT");
 
             }
 
             state.type = _type;
             state.channel = _channel;
-        }
-        finally {
+        } finally {
         }
     }
+
     // $ANTLR end "T__49"
 
     // $ANTLR start "T__50"
@@ -759,17 +741,16 @@
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:45:7: ( 'CSTART' )
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:45:9: 'CSTART'
             {
-            match("CSTART"); 
-
+                match("CSTART");
 
             }
 
             state.type = _type;
             state.channel = _channel;
-        }
-        finally {
+        } finally {
         }
     }
+
     // $ANTLR end "T__50"
 
     // $ANTLR start "T__51"
@@ -780,17 +761,16 @@
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:46:7: ( 'CEND' )
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:46:9: 'CEND'
             {
-            match("CEND"); 
-
+                match("CEND");
 
             }
 
             state.type = _type;
             state.channel = _channel;
-        }
-        finally {
+        } finally {
         }
     }
+
     // $ANTLR end "T__51"
 
     // $ANTLR start "T__52"
@@ -801,17 +781,16 @@
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:47:7: ( 'ID' )
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:47:9: 'ID'
             {
-            match("ID"); 
-
+                match("ID");
 
             }
 
             state.type = _type;
             state.channel = _channel;
-        }
-        finally {
+        } finally {
         }
     }
+
     // $ANTLR end "T__52"
 
     // $ANTLR start "T__53"
@@ -822,17 +801,16 @@
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:48:7: ( 'DISABLE' )
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:48:9: 'DISABLE'
             {
-            match("DISABLE"); 
-
+                match("DISABLE");
 
             }
 
             state.type = _type;
             state.channel = _channel;
-        }
-        finally {
+        } finally {
         }
     }
+
     // $ANTLR end "T__53"
 
     // $ANTLR start "T__54"
@@ -843,17 +821,16 @@
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:49:7: ( 'ENDPROTECT' )
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:49:9: 'ENDPROTECT'
             {
-            match("ENDPROTECT"); 
-
+                match("ENDPROTECT");
 
             }
 
             state.type = _type;
             state.channel = _channel;
-        }
-        finally {
+        } finally {
         }
     }
+
     // $ANTLR end "T__54"
 
     // $ANTLR start "T__55"
@@ -864,17 +841,16 @@
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:50:7: ( 'let' )
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:50:9: 'let'
             {
-            match("let"); 
-
+                match("let");
 
             }
 
             state.type = _type;
             state.channel = _channel;
-        }
-        finally {
+        } finally {
         }
     }
+
     // $ANTLR end "T__55"
 
     // $ANTLR start "T__56"
@@ -885,16 +861,16 @@
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:51:7: ( '=' )
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:51:9: '='
             {
-            match('='); 
+                match('=');
 
             }
 
             state.type = _type;
             state.channel = _channel;
-        }
-        finally {
+        } finally {
         }
     }
+
     // $ANTLR end "T__56"
 
     // $ANTLR start "T__57"
@@ -905,16 +881,16 @@
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:52:7: ( ':' )
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:52:9: ':'
             {
-            match(':'); 
+                match(':');
 
             }
 
             state.type = _type;
             state.channel = _channel;
-        }
-        finally {
+        } finally {
         }
     }
+
     // $ANTLR end "T__57"
 
     // $ANTLR start "T__58"
@@ -925,17 +901,16 @@
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:53:7: ( '->' )
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:53:9: '->'
             {
-            match("->"); 
-
+                match("->");
 
             }
 
             state.type = _type;
             state.channel = _channel;
-        }
-        finally {
+        } finally {
         }
     }
+
     // $ANTLR end "T__58"
 
     // $ANTLR start "T__59"
@@ -946,16 +921,16 @@
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:54:7: ( '?' )
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:54:9: '?'
             {
-            match('?'); 
+                match('?');
 
             }
 
             state.type = _type;
             state.channel = _channel;
-        }
-        finally {
+        } finally {
         }
     }
+
     // $ANTLR end "T__59"
 
     // $ANTLR start "T__60"
@@ -966,17 +941,16 @@
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:55:7: ( 'if' )
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:55:9: 'if'
             {
-            match("if"); 
-
+                match("if");
 
             }
 
             state.type = _type;
             state.channel = _channel;
-        }
-        finally {
+        } finally {
         }
     }
+
     // $ANTLR end "T__60"
 
     // $ANTLR start "T__61"
@@ -987,17 +961,16 @@
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:56:7: ( 'then' )
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:56:9: 'then'
             {
-            match("then"); 
-
+                match("then");
 
             }
 
             state.type = _type;
             state.channel = _channel;
-        }
-        finally {
+        } finally {
         }
     }
+
     // $ANTLR end "T__61"
 
     // $ANTLR start "T__62"
@@ -1008,17 +981,16 @@
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:57:7: ( 'else' )
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:57:9: 'else'
             {
-            match("else"); 
-
+                match("else");
 
             }
 
             state.type = _type;
             state.channel = _channel;
-        }
-        finally {
+        } finally {
         }
     }
+
     // $ANTLR end "T__62"
 
     // $ANTLR start "T__63"
@@ -1029,17 +1001,16 @@
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:58:7: ( 'switch' )
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:58:9: 'switch'
             {
-            match("switch"); 
-
+                match("switch");
 
             }
 
             state.type = _type;
             state.channel = _channel;
-        }
-        finally {
+        } finally {
         }
     }
+
     // $ANTLR end "T__63"
 
     // $ANTLR start "T__64"
@@ -1050,16 +1021,16 @@
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:59:7: ( '{' )
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:59:9: '{'
             {
-            match('{'); 
+                match('{');
 
             }
 
             state.type = _type;
             state.channel = _channel;
-        }
-        finally {
+        } finally {
         }
     }
+
     // $ANTLR end "T__64"
 
     // $ANTLR start "T__65"
@@ -1070,17 +1041,16 @@
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:60:7: ( 'case' )
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:60:9: 'case'
             {
-            match("case"); 
-
+                match("case");
 
             }
 
             state.type = _type;
             state.channel = _channel;
-        }
-        finally {
+        } finally {
         }
     }
+
     // $ANTLR end "T__65"
 
     // $ANTLR start "T__66"
@@ -1091,17 +1061,16 @@
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:61:7: ( 'default' )
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:61:9: 'default'
             {
-            match("default"); 
-
+                match("default");
 
             }
 
             state.type = _type;
             state.channel = _channel;
-        }
-        finally {
+        } finally {
         }
     }
+
     // $ANTLR end "T__66"
 
     // $ANTLR start "T__67"
@@ -1112,16 +1081,16 @@
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:62:7: ( '}' )
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:62:9: '}'
             {
-            match('}'); 
+                match('}');
 
             }
 
             state.type = _type;
             state.channel = _channel;
-        }
-        finally {
+        } finally {
         }
     }
+
     // $ANTLR end "T__67"
 
     // $ANTLR start "T__68"
@@ -1132,17 +1101,16 @@
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:63:7: ( '||' )
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:63:9: '||'
             {
-            match("||"); 
-
+                match("||");
 
             }
 
             state.type = _type;
             state.channel = _channel;
-        }
-        finally {
+        } finally {
         }
     }
+
     // $ANTLR end "T__68"
 
     // $ANTLR start "T__69"
@@ -1153,17 +1121,16 @@
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:64:7: ( '&&' )
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:64:9: '&&'
             {
-            match("&&"); 
-
+                match("&&");
 
             }
 
             state.type = _type;
             state.channel = _channel;
-        }
-        finally {
+        } finally {
         }
     }
+
     // $ANTLR end "T__69"
 
     // $ANTLR start "T__70"
@@ -1174,17 +1141,16 @@
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:65:7: ( 'implies' )
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:65:9: 'implies'
             {
-            match("implies"); 
-
+                match("implies");
 
             }
 
             state.type = _type;
             state.channel = _channel;
-        }
-        finally {
+        } finally {
         }
     }
+
     // $ANTLR end "T__70"
 
     // $ANTLR start "T__71"
@@ -1195,17 +1161,16 @@
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:66:7: ( '==' )
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:66:9: '=='
             {
-            match("=="); 
-
+                match("==");
 
             }
 
             state.type = _type;
             state.channel = _channel;
-        }
-        finally {
+        } finally {
         }
     }
+
     // $ANTLR end "T__71"
 
     // $ANTLR start "T__72"
@@ -1216,17 +1181,16 @@
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:67:7: ( '!=' )
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:67:9: '!='
             {
-            match("!="); 
-
+                match("!=");
 
             }
 
             state.type = _type;
             state.channel = _channel;
-        }
-        finally {
+        } finally {
         }
     }
+
     // $ANTLR end "T__72"
 
     // $ANTLR start "T__73"
@@ -1237,17 +1201,16 @@
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:68:7: ( '>=' )
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:68:9: '>='
             {
-            match(">="); 
-
+                match(">=");
 
             }
 
             state.type = _type;
             state.channel = _channel;
-        }
-        finally {
+        } finally {
         }
     }
+
     // $ANTLR end "T__73"
 
     // $ANTLR start "T__74"
@@ -1258,17 +1221,16 @@
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:69:7: ( '<=' )
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:69:9: '<='
             {
-            match("<="); 
-
+                match("<=");
 
             }
 
             state.type = _type;
             state.channel = _channel;
-        }
-        finally {
+        } finally {
         }
     }
+
     // $ANTLR end "T__74"
 
     // $ANTLR start "T__75"
@@ -1279,16 +1241,16 @@
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:70:7: ( '>' )
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:70:9: '>'
             {
-            match('>'); 
+                match('>');
 
             }
 
             state.type = _type;
             state.channel = _channel;
-        }
-        finally {
+        } finally {
         }
     }
+
     // $ANTLR end "T__75"
 
     // $ANTLR start "T__76"
@@ -1299,16 +1261,16 @@
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:71:7: ( '<' )
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:71:9: '<'
             {
-            match('<'); 
+                match('<');
 
             }
 
             state.type = _type;
             state.channel = _channel;
-        }
-        finally {
+        } finally {
         }
     }
+
     // $ANTLR end "T__76"
 
     // $ANTLR start "T__77"
@@ -1319,16 +1281,16 @@
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:72:7: ( '+' )
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:72:9: '+'
             {
-            match('+'); 
+                match('+');
 
             }
 
             state.type = _type;
             state.channel = _channel;
-        }
-        finally {
+        } finally {
         }
     }
+
     // $ANTLR end "T__77"
 
     // $ANTLR start "T__78"
@@ -1339,16 +1301,16 @@
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:73:7: ( '/' )
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:73:9: '/'
             {
-            match('/'); 
+                match('/');
 
             }
 
             state.type = _type;
             state.channel = _channel;
-        }
-        finally {
+        } finally {
         }
     }
+
     // $ANTLR end "T__78"
 
     // $ANTLR start "T__79"
@@ -1359,16 +1321,16 @@
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:74:7: ( '!' )
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:74:9: '!'
             {
-            match('!'); 
+                match('!');
 
             }
 
             state.type = _type;
             state.channel = _channel;
-        }
-        finally {
+        } finally {
         }
     }
+
     // $ANTLR end "T__79"
 
     // $ANTLR start "T__80"
@@ -1379,16 +1341,16 @@
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:75:7: ( '.' )
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:75:9: '.'
             {
-            match('.'); 
+                match('.');
 
             }
 
             state.type = _type;
             state.channel = _channel;
-        }
-        finally {
+        } finally {
         }
     }
+
     // $ANTLR end "T__80"
 
     // $ANTLR start "T__81"
@@ -1399,17 +1361,16 @@
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:76:7: ( 'GLOBALVAR' )
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:76:9: 'GLOBALVAR'
             {
-            match("GLOBALVAR"); 
-
+                match("GLOBALVAR");
 
             }
 
             state.type = _type;
             state.channel = _channel;
-        }
-        finally {
+        } finally {
         }
     }
+
     // $ANTLR end "T__81"
 
     // $ANTLR start "T__82"
@@ -1420,17 +1381,16 @@
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:77:7: ( 'new' )
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:77:9: 'new'
             {
-            match("new"); 
-
+                match("new");
 
             }
 
             state.type = _type;
             state.channel = _channel;
-        }
-        finally {
+        } finally {
         }
     }
+
     // $ANTLR end "T__82"
 
     // $ANTLR start "T__83"
@@ -1441,17 +1401,16 @@
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:78:7: ( 'false' )
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:78:9: 'false'
             {
-            match("false"); 
-
+                match("false");
 
             }
 
             state.type = _type;
             state.channel = _channel;
-        }
-        finally {
+        } finally {
         }
     }
+
     // $ANTLR end "T__83"
 
     // $ANTLR start "T__84"
@@ -1462,17 +1421,16 @@
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:79:7: ( 'true' )
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:79:9: 'true'
             {
-            match("true"); 
-
+                match("true");
 
             }
 
             state.type = _type;
             state.channel = _channel;
-        }
-        finally {
+        } finally {
         }
     }
+
     // $ANTLR end "T__84"
 
     // $ANTLR start "T__85"
@@ -1483,17 +1441,16 @@
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:80:7: ( 'null' )
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:80:9: 'null'
             {
-            match("null"); 
-
+                match("null");
 
             }
 
             state.type = _type;
             state.channel = _channel;
-        }
-        finally {
+        } finally {
         }
     }
+
     // $ANTLR end "T__85"
 
     // $ANTLR start "T__86"
@@ -1504,17 +1461,16 @@
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:81:7: ( 'typeSelect' )
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:81:9: 'typeSelect'
             {
-            match("typeSelect"); 
-
+                match("typeSelect");
 
             }
 
             state.type = _type;
             state.channel = _channel;
-        }
-        finally {
+        } finally {
         }
     }
+
     // $ANTLR end "T__86"
 
     // $ANTLR start "T__87"
@@ -1525,17 +1481,16 @@
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:82:7: ( 'collect' )
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:82:9: 'collect'
             {
-            match("collect"); 
-
+                match("collect");
 
             }
 
             state.type = _type;
             state.channel = _channel;
-        }
-        finally {
+        } finally {
         }
     }
+
     // $ANTLR end "T__87"
 
     // $ANTLR start "T__88"
@@ -1546,17 +1501,16 @@
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:83:7: ( 'select' )
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:83:9: 'select'
             {
-            match("select"); 
-
+                match("select");
 
             }
 
             state.type = _type;
             state.channel = _channel;
-        }
-        finally {
+        } finally {
         }
     }
+
     // $ANTLR end "T__88"
 
     // $ANTLR start "T__89"
@@ -1567,17 +1521,16 @@
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:84:7: ( 'selectFirst' )
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:84:9: 'selectFirst'
             {
-            match("selectFirst"); 
-
+                match("selectFirst");
 
             }
 
             state.type = _type;
             state.channel = _channel;
-        }
-        finally {
+        } finally {
         }
     }
+
     // $ANTLR end "T__89"
 
     // $ANTLR start "T__90"
@@ -1588,17 +1541,16 @@
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:85:7: ( 'reject' )
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:85:9: 'reject'
             {
-            match("reject"); 
-
+                match("reject");
 
             }
 
             state.type = _type;
             state.channel = _channel;
-        }
-        finally {
+        } finally {
         }
     }
+
     // $ANTLR end "T__90"
 
     // $ANTLR start "T__91"
@@ -1609,17 +1561,16 @@
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:86:7: ( 'exists' )
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:86:9: 'exists'
             {
-            match("exists"); 
-
+                match("exists");
 
             }
 
             state.type = _type;
             state.channel = _channel;
-        }
-        finally {
+        } finally {
         }
     }
+
     // $ANTLR end "T__91"
 
     // $ANTLR start "T__92"
@@ -1630,17 +1581,16 @@
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:87:7: ( 'notExists' )
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:87:9: 'notExists'
             {
-            match("notExists"); 
-
+                match("notExists");
 
             }
 
             state.type = _type;
             state.channel = _channel;
-        }
-        finally {
+        } finally {
         }
     }
+
     // $ANTLR end "T__92"
 
     // $ANTLR start "T__93"
@@ -1651,17 +1601,16 @@
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:88:7: ( 'sortBy' )
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:88:9: 'sortBy'
             {
-            match("sortBy"); 
-
+                match("sortBy");
 
             }
 
             state.type = _type;
             state.channel = _channel;
-        }
-        finally {
+        } finally {
         }
     }
+
     // $ANTLR end "T__93"
 
     // $ANTLR start "T__94"
@@ -1672,17 +1621,16 @@
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:89:7: ( 'forAll' )
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:89:9: 'forAll'
             {
-            match("forAll"); 
-
+                match("forAll");
 
             }
 
             state.type = _type;
             state.channel = _channel;
-        }
-        finally {
+        } finally {
         }
     }
+
     // $ANTLR end "T__94"
 
     // $ANTLR start "T__95"
@@ -1693,16 +1641,16 @@
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:90:7: ( '|' )
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:90:9: '|'
             {
-            match('|'); 
+                match('|');
 
             }
 
             state.type = _type;
             state.channel = _channel;
-        }
-        finally {
+        } finally {
         }
     }
+
     // $ANTLR end "T__95"
 
     // $ANTLR start "T__96"
@@ -1713,17 +1661,16 @@
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:91:7: ( 'Collection' )
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:91:9: 'Collection'
             {
-            match("Collection"); 
-
+                match("Collection");
 
             }
 
             state.type = _type;
             state.channel = _channel;
-        }
-        finally {
+        } finally {
         }
     }
+
     // $ANTLR end "T__96"
 
     // $ANTLR start "T__97"
@@ -1734,17 +1681,16 @@
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:92:7: ( 'List' )
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:92:9: 'List'
             {
-            match("List"); 
-
+                match("List");
 
             }
 
             state.type = _type;
             state.channel = _channel;
-        }
-        finally {
+        } finally {
         }
     }
+
     // $ANTLR end "T__97"
 
     // $ANTLR start "T__98"
@@ -1755,17 +1701,16 @@
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:93:7: ( 'Set' )
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:93:9: 'Set'
             {
-            match("Set"); 
-
+                match("Set");
 
             }
 
             state.type = _type;
             state.channel = _channel;
-        }
-        finally {
+        } finally {
         }
     }
+
     // $ANTLR end "T__98"
 
     // $ANTLR start "T__99"
@@ -1776,16 +1721,16 @@
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:94:7: ( '[' )
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:94:9: '['
             {
-            match('['); 
+                match('[');
 
             }
 
             state.type = _type;
             state.channel = _channel;
-        }
-        finally {
+        } finally {
         }
     }
+
     // $ANTLR end "T__99"
 
     // $ANTLR start "T__100"
@@ -1796,16 +1741,16 @@
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:95:8: ( ']' )
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:95:10: ']'
             {
-            match(']'); 
+                match(']');
 
             }
 
             state.type = _type;
             state.channel = _channel;
-        }
-        finally {
+        } finally {
         }
     }
+
     // $ANTLR end "T__100"
 
     // $ANTLR start "IntLiteral"
@@ -1813,48 +1758,45 @@
         try {
             int _type = IntLiteral;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:567:12: ( ( '0' .. '9' )+ )
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:567:14: ( '0' .. '9' )+
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:560:12: ( ( '0' .. '9' )+ )
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:560:14: ( '0' .. '9' )+
             {
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:567:14: ( '0' .. '9' )+
-            int cnt1=0;
-            loop1:
-            do {
-                int alt1=2;
-                int LA1_0 = input.LA(1);
+                // src/org/eclipse/internal/xpand2/parser/Xpand.g:560:14: ( '0' .. '9' )+
+                int cnt1 = 0;
+                loop1: do {
+                    int alt1 = 2;
+                    int LA1_0 = input.LA(1);
 
-                if ( ((LA1_0>='0' && LA1_0<='9')) ) {
-                    alt1=1;
-                }
+                    if (((LA1_0 >= '0' && LA1_0 <= '9'))) {
+                        alt1 = 1;
+                    }
 
+                    switch (alt1) {
+                    case 1:
+                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:560:14: '0' .. '9'
+                    {
+                        matchRange('0', '9');
 
-                switch (alt1) {
-            	case 1 :
-            	    // src/org/eclipse/internal/xpand2/parser/Xpand.g:567:14: '0' .. '9'
-            	    {
-            	    matchRange('0','9'); 
+                    }
+                        break;
 
-            	    }
-            	    break;
-
-            	default :
-            	    if ( cnt1 >= 1 ) break loop1;
-                        EarlyExitException eee =
-                            new EarlyExitException(1, input);
+                    default:
+                        if (cnt1 >= 1)
+                            break loop1;
+                        EarlyExitException eee = new EarlyExitException(1, input);
                         throw eee;
-                }
-                cnt1++;
-            } while (true);
-
+                    }
+                    cnt1++;
+                } while (true);
 
             }
 
             state.type = _type;
             state.channel = _channel;
-        }
-        finally {
+        } finally {
         }
     }
+
     // $ANTLR end "IntLiteral"
 
     // $ANTLR start "StringLiteral"
@@ -1862,144 +1804,138 @@
         try {
             int _type = StringLiteral;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:570:5: ( '\"' ( EscapeSequence | ~ ( '\\\\' | '\"' ) )* '\"' | '\\'' ( EscapeSequence | ~ ( '\\'' | '\\\\' ) )* '\\'' )
-            int alt4=2;
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:563:5: ( '\"' ( EscapeSequence | ~ ( '\\\\' | '\"' ) )*
+            // '\"' | '\\'' ( EscapeSequence | ~ ( '\\'' | '\\\\' ) )* '\\'' )
+            int alt4 = 2;
             int LA4_0 = input.LA(1);
 
-            if ( (LA4_0=='\"') ) {
-                alt4=1;
-            }
-            else if ( (LA4_0=='\'') ) {
-                alt4=2;
-            }
-            else {
-                NoViableAltException nvae =
-                    new NoViableAltException("", 4, 0, input);
+            if ((LA4_0 == '\"')) {
+                alt4 = 1;
+            } else if ((LA4_0 == '\'')) {
+                alt4 = 2;
+            } else {
+                NoViableAltException nvae = new NoViableAltException("", 4, 0, input);
 
                 throw nvae;
             }
             switch (alt4) {
-                case 1 :
-                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:570:8: '\"' ( EscapeSequence | ~ ( '\\\\' | '\"' ) )* '\"'
+            case 1:
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:563:8: '\"' ( EscapeSequence | ~ ( '\\\\' | '\"' ) )* '\"'
+            {
+                match('\"');
+                // src/org/eclipse/internal/xpand2/parser/Xpand.g:563:12: ( EscapeSequence | ~ ( '\\\\' | '\"' ) )*
+                loop2: do {
+                    int alt2 = 3;
+                    int LA2_0 = input.LA(1);
+
+                    if ((LA2_0 == '\\')) {
+                        alt2 = 1;
+                    } else if (((LA2_0 >= '\u0000' && LA2_0 <= '!') || (LA2_0 >= '#' && LA2_0 <= '[') || (LA2_0 >= ']' && LA2_0 <= '\uFFFF'))) {
+                        alt2 = 2;
+                    }
+
+                    switch (alt2) {
+                    case 1:
+                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:563:14: EscapeSequence
                     {
-                    match('\"'); 
-                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:570:12: ( EscapeSequence | ~ ( '\\\\' | '\"' ) )*
-                    loop2:
-                    do {
-                        int alt2=3;
-                        int LA2_0 = input.LA(1);
-
-                        if ( (LA2_0=='\\') ) {
-                            alt2=1;
-                        }
-                        else if ( ((LA2_0>='\u0000' && LA2_0<='!')||(LA2_0>='#' && LA2_0<='[')||(LA2_0>=']' && LA2_0<='\uFFFF')) ) {
-                            alt2=2;
-                        }
-
-
-                        switch (alt2) {
-                    	case 1 :
-                    	    // src/org/eclipse/internal/xpand2/parser/Xpand.g:570:14: EscapeSequence
-                    	    {
-                    	    mEscapeSequence(); 
-
-                    	    }
-                    	    break;
-                    	case 2 :
-                    	    // src/org/eclipse/internal/xpand2/parser/Xpand.g:570:31: ~ ( '\\\\' | '\"' )
-                    	    {
-                    	    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 loop2;
-                        }
-                    } while (true);
-
-                    match('\"'); 
+                        mEscapeSequence();
 
                     }
-                    break;
-                case 2 :
-                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:571:8: '\\'' ( EscapeSequence | ~ ( '\\'' | '\\\\' ) )* '\\''
+                        break;
+                    case 2:
+                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:563:31: ~ ( '\\\\' | '\"' )
                     {
-                    match('\''); 
-                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:571:13: ( EscapeSequence | ~ ( '\\'' | '\\\\' ) )*
-                    loop3:
-                    do {
-                        int alt3=3;
-                        int LA3_0 = input.LA(1);
+                        if ((input.LA(1) >= '\u0000' && input.LA(1) <= '!') || (input.LA(1) >= '#' && input.LA(1) <= '[')
+                                || (input.LA(1) >= ']' && input.LA(1) <= '\uFFFF')) {
+                            input.consume();
 
-                        if ( (LA3_0=='\\') ) {
-                            alt3=1;
+                        } else {
+                            MismatchedSetException mse = new MismatchedSetException(null, input);
+                            recover(mse);
+                            throw mse;
                         }
-                        else if ( ((LA3_0>='\u0000' && LA3_0<='&')||(LA3_0>='(' && LA3_0<='[')||(LA3_0>=']' && LA3_0<='\uFFFF')) ) {
-                            alt3=2;
-                        }
-
-
-                        switch (alt3) {
-                    	case 1 :
-                    	    // src/org/eclipse/internal/xpand2/parser/Xpand.g:571:15: EscapeSequence
-                    	    {
-                    	    mEscapeSequence(); 
-
-                    	    }
-                    	    break;
-                    	case 2 :
-                    	    // src/org/eclipse/internal/xpand2/parser/Xpand.g:571:32: ~ ( '\\'' | '\\\\' )
-                    	    {
-                    	    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 loop3;
-                        }
-                    } while (true);
-
-                    match('\''); 
 
                     }
-                    break;
+                        break;
+
+                    default:
+                        break loop2;
+                    }
+                } while (true);
+
+                match('\"');
+
+            }
+                break;
+            case 2:
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:564:8: '\\'' ( EscapeSequence | ~ ( '\\'' | '\\\\' ) )*
+            // '\\''
+            {
+                match('\'');
+                // src/org/eclipse/internal/xpand2/parser/Xpand.g:564:13: ( EscapeSequence | ~ ( '\\'' | '\\\\' ) )*
+                loop3: do {
+                    int alt3 = 3;
+                    int LA3_0 = input.LA(1);
+
+                    if ((LA3_0 == '\\')) {
+                        alt3 = 1;
+                    } else if (((LA3_0 >= '\u0000' && LA3_0 <= '&') || (LA3_0 >= '(' && LA3_0 <= '[') || (LA3_0 >= ']' && LA3_0 <= '\uFFFF'))) {
+                        alt3 = 2;
+                    }
+
+                    switch (alt3) {
+                    case 1:
+                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:564:15: EscapeSequence
+                    {
+                        mEscapeSequence();
+
+                    }
+                        break;
+                    case 2:
+                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:564:32: ~ ( '\\'' | '\\\\' )
+                    {
+                        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 loop3;
+                    }
+                } while (true);
+
+                match('\'');
+
+            }
+                break;
 
             }
             state.type = _type;
             state.channel = _channel;
-        }
-        finally {
+        } finally {
         }
     }
+
     // $ANTLR end "StringLiteral"
 
     // $ANTLR start "EscapeSequence"
     public final void mEscapeSequence() throws RecognitionException {
         try {
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:576:5: ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' ) | UnicodeEscape | OctalEscape )
-            int alt5=3;
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:569:5: ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' |
+            // '\\'' | '\\\\' ) | UnicodeEscape | OctalEscape )
+            int alt5 = 3;
             int LA5_0 = input.LA(1);
 
-            if ( (LA5_0=='\\') ) {
-                switch ( input.LA(2) ) {
+            if ((LA5_0 == '\\')) {
+                switch (input.LA(2)) {
                 case '\"':
                 case '\'':
                 case '\\':
@@ -2007,15 +1943,13 @@
                 case 'f':
                 case 'n':
                 case 'r':
-                case 't':
-                    {
-                    alt5=1;
-                    }
+                case 't': {
+                    alt5 = 1;
+                }
                     break;
-                case 'u':
-                    {
-                    alt5=2;
-                    }
+                case 'u': {
+                    alt5 = 2;
+                }
                     break;
                 case '0':
                 case '1':
@@ -2024,226 +1958,215 @@
                 case '4':
                 case '5':
                 case '6':
-                case '7':
-                    {
-                    alt5=3;
-                    }
+                case '7': {
+                    alt5 = 3;
+                }
                     break;
                 default:
-                    NoViableAltException nvae =
-                        new NoViableAltException("", 5, 1, input);
+                    NoViableAltException nvae = new NoViableAltException("", 5, 1, input);
 
                     throw nvae;
                 }
 
-            }
-            else {
-                NoViableAltException nvae =
-                    new NoViableAltException("", 5, 0, input);
+            } else {
+                NoViableAltException nvae = new NoViableAltException("", 5, 0, input);
 
                 throw nvae;
             }
             switch (alt5) {
-                case 1 :
-                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:576:9: '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' )
-                    {
-                    match('\\'); 
-                    if ( input.LA(1)=='\"'||input.LA(1)=='\''||input.LA(1)=='\\'||input.LA(1)=='b'||input.LA(1)=='f'||input.LA(1)=='n'||input.LA(1)=='r'||input.LA(1)=='t' ) {
-                        input.consume();
+            case 1:
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:569:9: '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' |
+            // '\\'' | '\\\\' )
+            {
+                match('\\');
+                if (input.LA(1) == '\"' || input.LA(1) == '\'' || input.LA(1) == '\\' || input.LA(1) == 'b' || input.LA(1) == 'f' || input.LA(1) == 'n'
+                        || input.LA(1) == 'r' || input.LA(1) == 't') {
+                    input.consume();
 
-                    }
-                    else {
-                        MismatchedSetException mse = new MismatchedSetException(null,input);
-                        recover(mse);
-                        throw mse;}
-
-
-                    }
-                    break;
-                case 2 :
-                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:577:9: UnicodeEscape
-                    {
-                    mUnicodeEscape(); 
-
-                    }
-                    break;
-                case 3 :
-                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:578:9: OctalEscape
-                    {
-                    mOctalEscape(); 
-
-                    }
-                    break;
+                } else {
+                    MismatchedSetException mse = new MismatchedSetException(null, input);
+                    recover(mse);
+                    throw mse;
+                }
 
             }
-        }
-        finally {
+                break;
+            case 2:
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:570:9: UnicodeEscape
+            {
+                mUnicodeEscape();
+
+            }
+                break;
+            case 3:
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:571:9: OctalEscape
+            {
+                mOctalEscape();
+
+            }
+                break;
+
+            }
+        } finally {
         }
     }
+
     // $ANTLR end "EscapeSequence"
 
     // $ANTLR start "OctalEscape"
     public final void mOctalEscape() throws RecognitionException {
         try {
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:583:5: ( '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) )
-            int alt6=3;
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:576:5: ( '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7'
+            // ) | '\\\\' ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) )
+            int alt6 = 3;
             int LA6_0 = input.LA(1);
 
-            if ( (LA6_0=='\\') ) {
+            if ((LA6_0 == '\\')) {
                 int LA6_1 = input.LA(2);
 
-                if ( ((LA6_1>='0' && LA6_1<='3')) ) {
+                if (((LA6_1 >= '0' && LA6_1 <= '3'))) {
                     int LA6_2 = input.LA(3);
 
-                    if ( ((LA6_2>='0' && LA6_2<='7')) ) {
+                    if (((LA6_2 >= '0' && LA6_2 <= '7'))) {
                         int LA6_4 = input.LA(4);
 
-                        if ( ((LA6_4>='0' && LA6_4<='7')) ) {
-                            alt6=1;
+                        if (((LA6_4 >= '0' && LA6_4 <= '7'))) {
+                            alt6 = 1;
+                        } else {
+                            alt6 = 2;
                         }
-                        else {
-                            alt6=2;}
+                    } else {
+                        alt6 = 3;
                     }
-                    else {
-                        alt6=3;}
-                }
-                else if ( ((LA6_1>='4' && LA6_1<='7')) ) {
+                } else if (((LA6_1 >= '4' && LA6_1 <= '7'))) {
                     int LA6_3 = input.LA(3);
 
-                    if ( ((LA6_3>='0' && LA6_3<='7')) ) {
-                        alt6=2;
+                    if (((LA6_3 >= '0' && LA6_3 <= '7'))) {
+                        alt6 = 2;
+                    } else {
+                        alt6 = 3;
                     }
-                    else {
-                        alt6=3;}
-                }
-                else {
-                    NoViableAltException nvae =
-                        new NoViableAltException("", 6, 1, input);
+                } else {
+                    NoViableAltException nvae = new NoViableAltException("", 6, 1, input);
 
                     throw nvae;
                 }
-            }
-            else {
-                NoViableAltException nvae =
-                    new NoViableAltException("", 6, 0, input);
+            } else {
+                NoViableAltException nvae = new NoViableAltException("", 6, 0, input);
 
                 throw nvae;
             }
             switch (alt6) {
-                case 1 :
-                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:583:9: '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' )
-                    {
-                    match('\\'); 
-                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:583:14: ( '0' .. '3' )
-                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:583:15: '0' .. '3'
-                    {
-                    matchRange('0','3'); 
+            case 1:
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:576:9: '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' )
+            {
+                match('\\');
+                // src/org/eclipse/internal/xpand2/parser/Xpand.g:576:14: ( '0' .. '3' )
+                // src/org/eclipse/internal/xpand2/parser/Xpand.g:576:15: '0' .. '3'
+                {
+                    matchRange('0', '3');
 
-                    }
+                }
 
-                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:583:25: ( '0' .. '7' )
-                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:583:26: '0' .. '7'
-                    {
-                    matchRange('0','7'); 
+                // src/org/eclipse/internal/xpand2/parser/Xpand.g:576:25: ( '0' .. '7' )
+                // src/org/eclipse/internal/xpand2/parser/Xpand.g:576:26: '0' .. '7'
+                {
+                    matchRange('0', '7');
 
-                    }
+                }
 
-                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:583:36: ( '0' .. '7' )
-                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:583:37: '0' .. '7'
-                    {
-                    matchRange('0','7'); 
+                // src/org/eclipse/internal/xpand2/parser/Xpand.g:576:36: ( '0' .. '7' )
+                // src/org/eclipse/internal/xpand2/parser/Xpand.g:576:37: '0' .. '7'
+                {
+                    matchRange('0', '7');
 
-                    }
-
-
-                    }
-                    break;
-                case 2 :
-                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:584:9: '\\\\' ( '0' .. '7' ) ( '0' .. '7' )
-                    {
-                    match('\\'); 
-                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:584:14: ( '0' .. '7' )
-                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:584:15: '0' .. '7'
-                    {
-                    matchRange('0','7'); 
-
-                    }
-
-                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:584:25: ( '0' .. '7' )
-                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:584:26: '0' .. '7'
-                    {
-                    matchRange('0','7'); 
-
-                    }
-
-
-                    }
-                    break;
-                case 3 :
-                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:585:9: '\\\\' ( '0' .. '7' )
-                    {
-                    match('\\'); 
-                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:585:14: ( '0' .. '7' )
-                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:585:15: '0' .. '7'
-                    {
-                    matchRange('0','7'); 
-
-                    }
-
-
-                    }
-                    break;
+                }
 
             }
-        }
-        finally {
+                break;
+            case 2:
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:577:9: '\\\\' ( '0' .. '7' ) ( '0' .. '7' )
+            {
+                match('\\');
+                // src/org/eclipse/internal/xpand2/parser/Xpand.g:577:14: ( '0' .. '7' )
+                // src/org/eclipse/internal/xpand2/parser/Xpand.g:577:15: '0' .. '7'
+                {
+                    matchRange('0', '7');
+
+                }
+
+                // src/org/eclipse/internal/xpand2/parser/Xpand.g:577:25: ( '0' .. '7' )
+                // src/org/eclipse/internal/xpand2/parser/Xpand.g:577:26: '0' .. '7'
+                {
+                    matchRange('0', '7');
+
+                }
+
+            }
+                break;
+            case 3:
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:578:9: '\\\\' ( '0' .. '7' )
+            {
+                match('\\');
+                // src/org/eclipse/internal/xpand2/parser/Xpand.g:578:14: ( '0' .. '7' )
+                // src/org/eclipse/internal/xpand2/parser/Xpand.g:578:15: '0' .. '7'
+                {
+                    matchRange('0', '7');
+
+                }
+
+            }
+                break;
+
+            }
+        } finally {
         }
     }
+
     // $ANTLR end "OctalEscape"
 
     // $ANTLR start "UnicodeEscape"
     public final void mUnicodeEscape() throws RecognitionException {
         try {
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:590:5: ( '\\\\' 'u' HexDigit HexDigit HexDigit HexDigit )
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:590:9: '\\\\' 'u' HexDigit HexDigit HexDigit HexDigit
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:583:5: ( '\\\\' 'u' HexDigit HexDigit HexDigit HexDigit )
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:583:9: '\\\\' 'u' HexDigit HexDigit HexDigit HexDigit
             {
-            match('\\'); 
-            match('u'); 
-            mHexDigit(); 
-            mHexDigit(); 
-            mHexDigit(); 
-            mHexDigit(); 
+                match('\\');
+                match('u');
+                mHexDigit();
+                mHexDigit();
+                mHexDigit();
+                mHexDigit();
 
             }
 
-        }
-        finally {
+        } finally {
         }
     }
+
     // $ANTLR end "UnicodeEscape"
 
     // $ANTLR start "HexDigit"
     public final void mHexDigit() throws RecognitionException {
         try {
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:593:10: ( ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' ) )
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:593:12: ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' )
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:586:10: ( ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' ) )
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:586:12: ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' )
             {
-            if ( (input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='A' && input.LA(1)<='F')||(input.LA(1)>='a' && input.LA(1)<='f') ) {
-                input.consume();
+                if ((input.LA(1) >= '0' && input.LA(1) <= '9') || (input.LA(1) >= 'A' && input.LA(1) <= 'F') || (input.LA(1) >= 'a' && input.LA(1) <= 'f')) {
+                    input.consume();
 
-            }
-            else {
-                MismatchedSetException mse = new MismatchedSetException(null,input);
-                recover(mse);
-                throw mse;}
-
+                } else {
+                    MismatchedSetException mse = new MismatchedSetException(null, input);
+                    recover(mse);
+                    throw mse;
+                }
 
             }
 
-        }
-        finally {
+        } finally {
         }
     }
+
     // $ANTLR end "HexDigit"
 
     // $ANTLR start "Identifier"
@@ -2251,118 +2174,138 @@
         try {
             int _type = Identifier;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:596:5: ( ( '^' )? Letter ( Letter | JavaIDDigit )* )
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:596:9: ( '^' )? Letter ( Letter | JavaIDDigit )*
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:589:5: ( ( '^' )? Letter ( Letter | JavaIDDigit )* )
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:589:9: ( '^' )? Letter ( Letter | JavaIDDigit )*
             {
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:596:9: ( '^' )?
-            int alt7=2;
-            int LA7_0 = input.LA(1);
+                // src/org/eclipse/internal/xpand2/parser/Xpand.g:589:9: ( '^' )?
+                int alt7 = 2;
+                int LA7_0 = input.LA(1);
 
-            if ( (LA7_0=='^') ) {
-                alt7=1;
-            }
-            switch (alt7) {
-                case 1 :
-                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:596:10: '^'
-                    {
-                    match('^'); 
+                if ((LA7_0 == '^')) {
+                    alt7 = 1;
+                }
+                switch (alt7) {
+                case 1:
+                // src/org/eclipse/internal/xpand2/parser/Xpand.g:589:10: '^'
+                {
+                    match('^');
 
-                    }
+                }
                     break;
 
-            }
-
-            mLetter(); 
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:596:23: ( Letter | JavaIDDigit )*
-            loop8:
-            do {
-                int alt8=2;
-                int LA8_0 = input.LA(1);
-
-                if ( (LA8_0=='$'||(LA8_0>='0' && LA8_0<='9')||(LA8_0>='A' && LA8_0<='Z')||LA8_0=='_'||(LA8_0>='a' && LA8_0<='z')||(LA8_0>='\u00C0' && LA8_0<='\u00D6')||(LA8_0>='\u00D8' && LA8_0<='\u00F6')||(LA8_0>='\u00F8' && LA8_0<='\u1FFF')||(LA8_0>='\u3040' && LA8_0<='\u318F')||(LA8_0>='\u3300' && LA8_0<='\u337F')||(LA8_0>='\u3400' && LA8_0<='\u3D2D')||(LA8_0>='\u4E00' && LA8_0<='\u9FFF')||(LA8_0>='\uF900' && LA8_0<='\uFAFF')) ) {
-                    alt8=1;
                 }
 
+                mLetter();
+                // src/org/eclipse/internal/xpand2/parser/Xpand.g:589:23: ( Letter | JavaIDDigit )*
+                loop8: do {
+                    int alt8 = 2;
+                    int LA8_0 = input.LA(1);
 
-                switch (alt8) {
-            	case 1 :
-            	    // src/org/eclipse/internal/xpand2/parser/Xpand.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.LA(1)>='\u00C0' && input.LA(1)<='\u00D6')||(input.LA(1)>='\u00D8' && input.LA(1)<='\u00F6')||(input.LA(1)>='\u00F8' && input.LA(1)<='\u1FFF')||(input.LA(1)>='\u3040' && input.LA(1)<='\u318F')||(input.LA(1)>='\u3300' && input.LA(1)<='\u337F')||(input.LA(1)>='\u3400' && input.LA(1)<='\u3D2D')||(input.LA(1)>='\u4E00' && input.LA(1)<='\u9FFF')||(input.LA(1)>='\uF900' && input.LA(1)<='\uFAFF') ) {
-            	        input.consume();
+                    if ((LA8_0 == '$' || (LA8_0 >= '0' && LA8_0 <= '9') || (LA8_0 >= 'A' && LA8_0 <= 'Z') || LA8_0 == '_' || (LA8_0 >= 'a' && LA8_0 <= 'z')
+                            || (LA8_0 >= '\u00C0' && LA8_0 <= '\u00D6') || (LA8_0 >= '\u00D8' && LA8_0 <= '\u00F6') || (LA8_0 >= '\u00F8' && LA8_0 <= '\u1FFF')
+                            || (LA8_0 >= '\u3040' && LA8_0 <= '\u318F') || (LA8_0 >= '\u3300' && LA8_0 <= '\u337F') || (LA8_0 >= '\u3400' && LA8_0 <= '\u3D2D')
+                            || (LA8_0 >= '\u4E00' && LA8_0 <= '\u9FFF') || (LA8_0 >= '\uF900' && LA8_0 <= '\uFAFF'))) {
+                        alt8 = 1;
+                    }
 
-            	    }
-            	    else {
-            	        MismatchedSetException mse = new MismatchedSetException(null,input);
-            	        recover(mse);
-            	        throw mse;}
+                    switch (alt8) {
+                    case 1:
+                    // src/org/eclipse/internal/xpand2/parser/Xpand.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.LA(1) >= '\u00C0' && input.LA(1) <= '\u00D6')
+                                || (input.LA(1) >= '\u00D8' && input.LA(1) <= '\u00F6') || (input.LA(1) >= '\u00F8' && input.LA(1) <= '\u1FFF')
+                                || (input.LA(1) >= '\u3040' && input.LA(1) <= '\u318F') || (input.LA(1) >= '\u3300' && input.LA(1) <= '\u337F')
+                                || (input.LA(1) >= '\u3400' && input.LA(1) <= '\u3D2D') || (input.LA(1) >= '\u4E00' && input.LA(1) <= '\u9FFF')
+                                || (input.LA(1) >= '\uF900' && input.LA(1) <= '\uFAFF')) {
+                            input.consume();
 
+                        } else {
+                            MismatchedSetException mse = new MismatchedSetException(null, input);
+                            recover(mse);
+                            throw mse;
+                        }
 
-            	    }
-            	    break;
+                    }
+                        break;
 
-            	default :
-            	    break loop8;
-                }
-            } while (true);
-
+                    default:
+                        break loop8;
+                    }
+                } while (true);
 
             }
 
             state.type = _type;
             state.channel = _channel;
-        }
-        finally {
+        } finally {
         }
     }
+
     // $ANTLR end "Identifier"
 
     // $ANTLR start "Letter"
     public final void mLetter() throws RecognitionException {
         try {
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:601:5: ( '\\u0024' | '\\u0041' .. '\\u005a' | '\\u005f' | '\\u0061' .. '\\u007a' | '\\u00c0' .. '\\u00d6' | '\\u00d8' .. '\\u00f6' | '\\u00f8' .. '\\u00ff' | '\\u0100' .. '\\u1fff' | '\\u3040' .. '\\u318f' | '\\u3300' .. '\\u337f' | '\\u3400' .. '\\u3d2d' | '\\u4e00' .. '\\u9fff' | '\\uf900' .. '\\ufaff' )
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:594:5: ( '\\u0024' | '\\u0041' .. '\\u005a' | '\\u005f' |
+            // '\\u0061' .. '\\u007a' | '\\u00c0' .. '\\u00d6' | '\\u00d8' .. '\\u00f6' | '\\u00f8' .. '\\u00ff' |
+            // '\\u0100' .. '\\u1fff' | '\\u3040' .. '\\u318f' | '\\u3300' .. '\\u337f' | '\\u3400' .. '\\u3d2d' |
+            // '\\u4e00' .. '\\u9fff' | '\\uf900' .. '\\ufaff' )
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:
             {
-            if ( input.LA(1)=='$'||(input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z')||(input.LA(1)>='\u00C0' && input.LA(1)<='\u00D6')||(input.LA(1)>='\u00D8' && input.LA(1)<='\u00F6')||(input.LA(1)>='\u00F8' && input.LA(1)<='\u1FFF')||(input.LA(1)>='\u3040' && input.LA(1)<='\u318F')||(input.LA(1)>='\u3300' && input.LA(1)<='\u337F')||(input.LA(1)>='\u3400' && input.LA(1)<='\u3D2D')||(input.LA(1)>='\u4E00' && input.LA(1)<='\u9FFF')||(input.LA(1)>='\uF900' && input.LA(1)<='\uFAFF') ) {
-                input.consume();
+                if (input.LA(1) == '$' || (input.LA(1) >= 'A' && input.LA(1) <= 'Z') || input.LA(1) == '_' || (input.LA(1) >= 'a' && input.LA(1) <= 'z')
+                        || (input.LA(1) >= '\u00C0' && input.LA(1) <= '\u00D6') || (input.LA(1) >= '\u00D8' && input.LA(1) <= '\u00F6')
+                        || (input.LA(1) >= '\u00F8' && input.LA(1) <= '\u1FFF') || (input.LA(1) >= '\u3040' && input.LA(1) <= '\u318F')
+                        || (input.LA(1) >= '\u3300' && input.LA(1) <= '\u337F') || (input.LA(1) >= '\u3400' && input.LA(1) <= '\u3D2D')
+                        || (input.LA(1) >= '\u4E00' && input.LA(1) <= '\u9FFF') || (input.LA(1) >= '\uF900' && input.LA(1) <= '\uFAFF')) {
+                    input.consume();
 
-            }
-            else {
-                MismatchedSetException mse = new MismatchedSetException(null,input);
-                recover(mse);
-                throw mse;}
-
+                } else {
+                    MismatchedSetException mse = new MismatchedSetException(null, input);
+                    recover(mse);
+                    throw mse;
+                }
 
             }
 
-        }
-        finally {
+        } finally {
         }
     }
+
     // $ANTLR end "Letter"
 
     // $ANTLR start "JavaIDDigit"
     public final void mJavaIDDigit() throws RecognitionException {
         try {
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:618:5: ( '\\u0030' .. '\\u0039' | '\\u0660' .. '\\u0669' | '\\u06f0' .. '\\u06f9' | '\\u0966' .. '\\u096f' | '\\u09e6' .. '\\u09ef' | '\\u0a66' .. '\\u0a6f' | '\\u0ae6' .. '\\u0aef' | '\\u0b66' .. '\\u0b6f' | '\\u0be7' .. '\\u0bef' | '\\u0c66' .. '\\u0c6f' | '\\u0ce6' .. '\\u0cef' | '\\u0d66' .. '\\u0d6f' | '\\u0e50' .. '\\u0e59' | '\\u0ed0' .. '\\u0ed9' | '\\u1040' .. '\\u1049' )
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:611:5: ( '\\u0030' .. '\\u0039' | '\\u0660' .. '\\u0669' |
+            // '\\u06f0' .. '\\u06f9' | '\\u0966' .. '\\u096f' | '\\u09e6' .. '\\u09ef' | '\\u0a66' .. '\\u0a6f' |
+            // '\\u0ae6' .. '\\u0aef' | '\\u0b66' .. '\\u0b6f' | '\\u0be7' .. '\\u0bef' | '\\u0c66' .. '\\u0c6f' |
+            // '\\u0ce6' .. '\\u0cef' | '\\u0d66' .. '\\u0d6f' | '\\u0e50' .. '\\u0e59' | '\\u0ed0' .. '\\u0ed9' |
+            // '\\u1040' .. '\\u1049' )
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:
             {
-            if ( (input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='\u0660' && input.LA(1)<='\u0669')||(input.LA(1)>='\u06F0' && input.LA(1)<='\u06F9')||(input.LA(1)>='\u0966' && input.LA(1)<='\u096F')||(input.LA(1)>='\u09E6' && input.LA(1)<='\u09EF')||(input.LA(1)>='\u0A66' && input.LA(1)<='\u0A6F')||(input.LA(1)>='\u0AE6' && input.LA(1)<='\u0AEF')||(input.LA(1)>='\u0B66' && input.LA(1)<='\u0B6F')||(input.LA(1)>='\u0BE7' && input.LA(1)<='\u0BEF')||(input.LA(1)>='\u0C66' && input.LA(1)<='\u0C6F')||(input.LA(1)>='\u0CE6' && input.LA(1)<='\u0CEF')||(input.LA(1)>='\u0D66' && input.LA(1)<='\u0D6F')||(input.LA(1)>='\u0E50' && input.LA(1)<='\u0E59')||(input.LA(1)>='\u0ED0' && input.LA(1)<='\u0ED9')||(input.LA(1)>='\u1040' && input.LA(1)<='\u1049') ) {
-                input.consume();
+                if ((input.LA(1) >= '0' && input.LA(1) <= '9') || (input.LA(1) >= '\u0660' && input.LA(1) <= '\u0669')
+                        || (input.LA(1) >= '\u06F0' && input.LA(1) <= '\u06F9') || (input.LA(1) >= '\u0966' && input.LA(1) <= '\u096F')
+                        || (input.LA(1) >= '\u09E6' && input.LA(1) <= '\u09EF') || (input.LA(1) >= '\u0A66' && input.LA(1) <= '\u0A6F')
+                        || (input.LA(1) >= '\u0AE6' && input.LA(1) <= '\u0AEF') || (input.LA(1) >= '\u0B66' && input.LA(1) <= '\u0B6F')
+                        || (input.LA(1) >= '\u0BE7' && input.LA(1) <= '\u0BEF') || (input.LA(1) >= '\u0C66' && input.LA(1) <= '\u0C6F')
+                        || (input.LA(1) >= '\u0CE6' && input.LA(1) <= '\u0CEF') || (input.LA(1) >= '\u0D66' && input.LA(1) <= '\u0D6F')
+                        || (input.LA(1) >= '\u0E50' && input.LA(1) <= '\u0E59') || (input.LA(1) >= '\u0ED0' && input.LA(1) <= '\u0ED9')
+                        || (input.LA(1) >= '\u1040' && input.LA(1) <= '\u1049')) {
+                    input.consume();
 
-            }
-            else {
-                MismatchedSetException mse = new MismatchedSetException(null,input);
-                recover(mse);
-                throw mse;}
-
+                } else {
+                    MismatchedSetException mse = new MismatchedSetException(null, input);
+                    recover(mse);
+                    throw mse;
+                }
 
             }
 
-        }
-        finally {
+        } finally {
         }
     }
+
     // $ANTLR end "JavaIDDigit"
 
     // $ANTLR start "WS"
@@ -2370,28 +2313,28 @@
         try {
             int _type = WS;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:635:5: ( ( ' ' | '\\r' | '\\t' | '\\u000C' | '\\n' ) )
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:635:8: ( ' ' | '\\r' | '\\t' | '\\u000C' | '\\n' )
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:628:5: ( ( ' ' | '\\r' | '\\t' | '\ ' | '\\n' ) )
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:628:8: ( ' ' | '\\r' | '\\t' | '\ ' | '\\n' )
             {
-            if ( (input.LA(1)>='\t' && input.LA(1)<='\n')||(input.LA(1)>='\f' && input.LA(1)<='\r')||input.LA(1)==' ' ) {
-                input.consume();
+                if ((input.LA(1) >= '\t' && input.LA(1) <= '\n') || (input.LA(1) >= '\f' && input.LA(1) <= '\r') || input.LA(1) == ' ') {
+                    input.consume();
 
-            }
-            else {
-                MismatchedSetException mse = new MismatchedSetException(null,input);
-                recover(mse);
-                throw mse;}
+                } else {
+                    MismatchedSetException mse = new MismatchedSetException(null, input);
+                    recover(mse);
+                    throw mse;
+                }
 
-            _channel=HIDDEN;
+                _channel = HIDDEN;
 
             }
 
             state.type = _type;
             state.channel = _channel;
-        }
-        finally {
+        } finally {
         }
     }
+
     // $ANTLR end "WS"
 
     // $ANTLR start "ML_COMMENT"
@@ -2399,60 +2342,55 @@
         try {
             int _type = ML_COMMENT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:639:5: ( '/*' ( options {greedy=false; } : . )* '*/' )
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:639:9: '/*' ( options {greedy=false; } : . )* '*/'
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:632:5: ( '/*' ( options {greedy=false; } : . )* '*/' )
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:632:9: '/*' ( options {greedy=false; } : . )* '*/'
             {
-            match("/*"); 
+                match("/*");
 
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:639:14: ( options {greedy=false; } : . )*
-            loop9:
-            do {
-                int alt9=2;
-                int LA9_0 = input.LA(1);
+                // src/org/eclipse/internal/xpand2/parser/Xpand.g:632:14: ( options {greedy=false; } : . )*
+                loop9: do {
+                    int alt9 = 2;
+                    int LA9_0 = input.LA(1);
 
-                if ( (LA9_0=='*') ) {
-                    int LA9_1 = input.LA(2);
+                    if ((LA9_0 == '*')) {
+                        int LA9_1 = input.LA(2);
 
-                    if ( (LA9_1=='/') ) {
-                        alt9=2;
-                    }
-                    else if ( ((LA9_1>='\u0000' && LA9_1<='.')||(LA9_1>='0' && LA9_1<='\uFFFF')) ) {
-                        alt9=1;
+                        if ((LA9_1 == '/')) {
+                            alt9 = 2;
+                        } else if (((LA9_1 >= '\u0000' && LA9_1 <= '.') || (LA9_1 >= '0' && LA9_1 <= '\uFFFF'))) {
+                            alt9 = 1;
+                        }
+
+                    } else if (((LA9_0 >= '\u0000' && LA9_0 <= ')') || (LA9_0 >= '+' && LA9_0 <= '\uFFFF'))) {
+                        alt9 = 1;
                     }
 
+                    switch (alt9) {
+                    case 1:
+                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:632:42: .
+                    {
+                        matchAny();
 
-                }
-                else if ( ((LA9_0>='\u0000' && LA9_0<=')')||(LA9_0>='+' && LA9_0<='\uFFFF')) ) {
-                    alt9=1;
-                }
+                    }
+                        break;
 
+                    default:
+                        break loop9;
+                    }
+                } while (true);
 
-                switch (alt9) {
-            	case 1 :
-            	    // src/org/eclipse/internal/xpand2/parser/Xpand.g:639:42: .
-            	    {
-            	    matchAny(); 
+                match("*/");
 
-            	    }
-            	    break;
-
-            	default :
-            	    break loop9;
-                }
-            } while (true);
-
-            match("*/"); 
-
-            _channel=HIDDEN;
+                _channel = HIDDEN;
 
             }
 
             state.type = _type;
             state.channel = _channel;
-        }
-        finally {
+        } finally {
         }
     }
+
     // $ANTLR end "ML_COMMENT"
 
     // $ANTLR start "LINE_COMMENT"
@@ -2460,73 +2398,71 @@
         try {
             int _type = LINE_COMMENT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:643:5: ( '//' (~ ( '\\n' | '\\r' ) )* ( '\\r' )? '\\n' )
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:643:7: '//' (~ ( '\\n' | '\\r' ) )* ( '\\r' )? '\\n'
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:636:5: ( '//' (~ ( '\\n' | '\\r' ) )* ( '\\r' )? '\\n' )
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:636:7: '//' (~ ( '\\n' | '\\r' ) )* ( '\\r' )? '\\n'
             {
-            match("//"); 
+                match("//");
 
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:643:12: (~ ( '\\n' | '\\r' ) )*
-            loop10:
-            do {
-                int alt10=2;
-                int LA10_0 = input.LA(1);
+                // src/org/eclipse/internal/xpand2/parser/Xpand.g:636:12: (~ ( '\\n' | '\\r' ) )*
+                loop10: do {
+                    int alt10 = 2;
+                    int LA10_0 = input.LA(1);
 
-                if ( ((LA10_0>='\u0000' && LA10_0<='\t')||(LA10_0>='\u000B' && LA10_0<='\f')||(LA10_0>='\u000E' && LA10_0<='\uFFFF')) ) {
-                    alt10=1;
-                }
+                    if (((LA10_0 >= '\u0000' && LA10_0 <= '\t') || (LA10_0 >= '\u000B' && LA10_0 <= '\f') || (LA10_0 >= '\u000E' && LA10_0 <= '\uFFFF'))) {
+                        alt10 = 1;
+                    }
 
-
-                switch (alt10) {
-            	case 1 :
-            	    // src/org/eclipse/internal/xpand2/parser/Xpand.g:643:12: ~ ( '\\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 loop10;
-                }
-            } while (true);
-
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:643:26: ( '\\r' )?
-            int alt11=2;
-            int LA11_0 = input.LA(1);
-
-            if ( (LA11_0=='\r') ) {
-                alt11=1;
-            }
-            switch (alt11) {
-                case 1 :
-                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:643:26: '\\r'
+                    switch (alt10) {
+                    case 1:
+                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:636:12: ~ ( '\\n' | '\\r' )
                     {
-                    match('\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 loop10;
+                    }
+                } while (true);
+
+                // src/org/eclipse/internal/xpand2/parser/Xpand.g:636:26: ( '\\r' )?
+                int alt11 = 2;
+                int LA11_0 = input.LA(1);
+
+                if ((LA11_0 == '\r')) {
+                    alt11 = 1;
+                }
+                switch (alt11) {
+                case 1:
+                // src/org/eclipse/internal/xpand2/parser/Xpand.g:636:26: '\\r'
+                {
+                    match('\r');
+
+                }
                     break;
 
-            }
+                }
 
-            match('\n'); 
-            _channel=HIDDEN;
+                match('\n');
+                _channel = HIDDEN;
 
             }
 
             state.type = _type;
             state.channel = _channel;
-        }
-        finally {
+        } finally {
         }
     }
+
     // $ANTLR end "LINE_COMMENT"
 
     // $ANTLR start "LG"
@@ -2534,35 +2470,35 @@
         try {
             int _type = LG;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:646:5: ( '\\u00AB' )
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:646:7: '\\u00AB'
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:639:5: ( '\\u00AB' )
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:639:7: '\\u00AB'
             {
-            match('\u00AB'); 
+                match('\u00AB');
 
             }
 
             state.type = _type;
             state.channel = _channel;
-        }
-        finally {
+        } finally {
         }
     }
+
     // $ANTLR end "LG"
 
     // $ANTLR start "RG"
     public final void mRG() throws RecognitionException {
         try {
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:648:3: ( '\\u00BB' )
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:648:5: '\\u00BB'
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:641:3: ( '\\u00BB' )
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:641:5: '\\u00BB'
             {
-            match('\u00BB'); 
+                match('\u00BB');
 
             }
 
-        }
-        finally {
+        } finally {
         }
     }
+
     // $ANTLR end "RG"
 
     // $ANTLR start "COMMENT"
@@ -2570,105 +2506,91 @@
         try {
             int _type = COMMENT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:651:9: ( 'REM' RG ( options {greedy=false; } : . )* '\\u00ABENDREM' )
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:652:2: 'REM' RG ( options {greedy=false; } : . )* '\\u00ABENDREM'
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:644:9: ( 'REM' RG ( options {greedy=false; } : . )*
+            // '\\u00ABENDREM' )
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:645:2: 'REM' RG ( options {greedy=false; } : . )*
+            // '\\u00ABENDREM'
             {
-            match("REM"); 
+                match("REM");
 
-            mRG(); 
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:652:11: ( options {greedy=false; } : . )*
-            loop12:
-            do {
-                int alt12=2;
-                int LA12_0 = input.LA(1);
+                mRG();
+                // src/org/eclipse/internal/xpand2/parser/Xpand.g:645:11: ( options {greedy=false; } : . )*
+                loop12: do {
+                    int alt12 = 2;
+                    int LA12_0 = input.LA(1);
 
-                if ( (LA12_0=='\u00AB') ) {
-                    int LA12_1 = input.LA(2);
+                    if ((LA12_0 == '\u00AB')) {
+                        int LA12_1 = input.LA(2);
 
-                    if ( (LA12_1=='E') ) {
-                        int LA12_3 = input.LA(3);
+                        if ((LA12_1 == 'E')) {
+                            int LA12_3 = input.LA(3);
 
-                        if ( (LA12_3=='N') ) {
-                            int LA12_4 = input.LA(4);
+                            if ((LA12_3 == 'N')) {
+                                int LA12_4 = input.LA(4);
 
-                            if ( (LA12_4=='D') ) {
-                                int LA12_5 = input.LA(5);
+                                if ((LA12_4 == 'D')) {
+                                    int LA12_5 = input.LA(5);
 
-                                if ( (LA12_5=='R') ) {
-                                    int LA12_6 = input.LA(6);
+                                    if ((LA12_5 == 'R')) {
+                                        int LA12_6 = input.LA(6);
 
-                                    if ( (LA12_6=='E') ) {
-                                        int LA12_7 = input.LA(7);
+                                        if ((LA12_6 == 'E')) {
+                                            int LA12_7 = input.LA(7);
 
-                                        if ( (LA12_7=='M') ) {
-                                            alt12=2;
-                                        }
-                                        else if ( ((LA12_7>='\u0000' && LA12_7<='L')||(LA12_7>='N' && LA12_7<='\uFFFF')) ) {
-                                            alt12=1;
+                                            if ((LA12_7 == 'M')) {
+                                                alt12 = 2;
+                                            } else if (((LA12_7 >= '\u0000' && LA12_7 <= 'L') || (LA12_7 >= 'N' && LA12_7 <= '\uFFFF'))) {
+                                                alt12 = 1;
+                                            }
+
+                                        } else if (((LA12_6 >= '\u0000' && LA12_6 <= 'D') || (LA12_6 >= 'F' && LA12_6 <= '\uFFFF'))) {
+                                            alt12 = 1;
                                         }
 
-
-                                    }
-                                    else if ( ((LA12_6>='\u0000' && LA12_6<='D')||(LA12_6>='F' && LA12_6<='\uFFFF')) ) {
-                                        alt12=1;
+                                    } else if (((LA12_5 >= '\u0000' && LA12_5 <= 'Q') || (LA12_5 >= 'S' && LA12_5 <= '\uFFFF'))) {
+                                        alt12 = 1;
                                     }
 
-
-                                }
-                                else if ( ((LA12_5>='\u0000' && LA12_5<='Q')||(LA12_5>='S' && LA12_5<='\uFFFF')) ) {
-                                    alt12=1;
+                                } else if (((LA12_4 >= '\u0000' && LA12_4 <= 'C') || (LA12_4 >= 'E' && LA12_4 <= '\uFFFF'))) {
+                                    alt12 = 1;
                                 }
 
-
-                            }
-                            else if ( ((LA12_4>='\u0000' && LA12_4<='C')||(LA12_4>='E' && LA12_4<='\uFFFF')) ) {
-                                alt12=1;
+                            } else if (((LA12_3 >= '\u0000' && LA12_3 <= 'M') || (LA12_3 >= 'O' && LA12_3 <= '\uFFFF'))) {
+                                alt12 = 1;
                             }
 
-
-                        }
-                        else if ( ((LA12_3>='\u0000' && LA12_3<='M')||(LA12_3>='O' && LA12_3<='\uFFFF')) ) {
-                            alt12=1;
+                        } else if (((LA12_1 >= '\u0000' && LA12_1 <= 'D') || (LA12_1 >= 'F' && LA12_1 <= '\uFFFF'))) {
+                            alt12 = 1;
                         }
 
-
-                    }
-                    else if ( ((LA12_1>='\u0000' && LA12_1<='D')||(LA12_1>='F' && LA12_1<='\uFFFF')) ) {
-                        alt12=1;
+                    } else if (((LA12_0 >= '\u0000' && LA12_0 <= '\u00AA') || (LA12_0 >= '\u00AC' && LA12_0 <= '\uFFFF'))) {
+                        alt12 = 1;
                     }
 
+                    switch (alt12) {
+                    case 1:
+                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:645:39: .
+                    {
+                        matchAny();
 
-                }
-                else if ( ((LA12_0>='\u0000' && LA12_0<='\u00AA')||(LA12_0>='\u00AC' && LA12_0<='\uFFFF')) ) {
-                    alt12=1;
-                }
+                    }
+                        break;
 
+                    default:
+                        break loop12;
+                    }
+                } while (true);
 
-                switch (alt12) {
-            	case 1 :
-            	    // src/org/eclipse/internal/xpand2/parser/Xpand.g:652:39: .
-            	    {
-            	    matchAny(); 
-
-            	    }
-            	    break;
-
-            	default :
-            	    break loop12;
-                }
-            } while (true);
-
-            match("\u00ABENDREM"); 
-
+                match("\u00ABENDREM");
 
             }
 
             state.type = _type;
             state.channel = _channel;
-        }
-        finally {
+        } finally {
         }
     }
+
     // $ANTLR end "COMMENT"
 
     // $ANTLR start "TEXT"
@@ -2676,828 +2598,775 @@
         try {
             int _type = TEXT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:655:6: ( RG (~ ( LG ) )* ( LG )? )
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:656:3: RG (~ ( LG ) )* ( LG )?
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:648:6: ( RG (~ ( LG ) )* ( LG )? )
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:649:3: RG (~ ( LG ) )* ( LG )?
             {
-            mRG(); 
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:656:6: (~ ( LG ) )*
-            loop13:
-            do {
-                int alt13=2;
-                int LA13_0 = input.LA(1);
+                mRG();
+                // src/org/eclipse/internal/xpand2/parser/Xpand.g:649:6: (~ ( LG ) )*
+                loop13: do {
+                    int alt13 = 2;
+                    int LA13_0 = input.LA(1);
 
-                if ( ((LA13_0>='\u0000' && LA13_0<='\u00AA')||(LA13_0>='\u00AC' && LA13_0<='\uFFFF')) ) {
-                    alt13=1;
-                }
+                    if (((LA13_0 >= '\u0000' && LA13_0 <= '\u00AA') || (LA13_0 >= '\u00AC' && LA13_0 <= '\uFFFF'))) {
+                        alt13 = 1;
+                    }
 
-
-                switch (alt13) {
-            	case 1 :
-            	    // src/org/eclipse/internal/xpand2/parser/Xpand.g:656:6: ~ ( LG )
-            	    {
-            	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='\u00AA')||(input.LA(1)>='\u00AC' && input.LA(1)<='\uFFFF') ) {
-            	        input.consume();
-
-            	    }
-            	    else {
-            	        MismatchedSetException mse = new MismatchedSetException(null,input);
-            	        recover(mse);
-            	        throw mse;}
-
-
-            	    }
-            	    break;
-
-            	default :
-            	    break loop13;
-                }
-            } while (true);
-
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:656:13: ( LG )?
-            int alt14=2;
-            int LA14_0 = input.LA(1);
-
-            if ( (LA14_0=='\u00AB') ) {
-                alt14=1;
-            }
-            switch (alt14) {
-                case 1 :
-                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:656:14: LG
+                    switch (alt13) {
+                    case 1:
+                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:649:6: ~ ( LG )
                     {
-                    mLG(); 
+                        if ((input.LA(1) >= '\u0000' && input.LA(1) <= '\u00AA') || (input.LA(1) >= '\u00AC' && input.LA(1) <= '\uFFFF')) {
+                            input.consume();
+
+                        } else {
+                            MismatchedSetException mse = new MismatchedSetException(null, input);
+                            recover(mse);
+                            throw mse;
+                        }
 
                     }
+                        break;
+
+                    default:
+                        break loop13;
+                    }
+                } while (true);
+
+                // src/org/eclipse/internal/xpand2/parser/Xpand.g:649:13: ( LG )?
+                int alt14 = 2;
+                int LA14_0 = input.LA(1);
+
+                if ((LA14_0 == '\u00AB')) {
+                    alt14 = 1;
+                }
+                switch (alt14) {
+                case 1:
+                // src/org/eclipse/internal/xpand2/parser/Xpand.g:649:14: LG
+                {
+                    mLG();
+
+                }
                     break;
 
-            }
-
+                }
 
             }
 
             state.type = _type;
             state.channel = _channel;
-        }
-        finally {
+        } finally {
         }
     }
+
     // $ANTLR end "TEXT"
 
     public void mTokens() throws RecognitionException {
-        // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:8: ( 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 | IntLiteral | StringLiteral | Identifier | WS | ML_COMMENT | LINE_COMMENT | LG | COMMENT | TEXT )
-        int alt15=90;
+        // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:8: ( 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 | IntLiteral | StringLiteral | Identifier | WS | ML_COMMENT
+        // | LINE_COMMENT | LG | COMMENT | TEXT )
+        int alt15 = 90;
         alt15 = dfa15.predict(input);
         switch (alt15) {
-            case 1 :
-                // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:10: T__20
-                {
-                mT__20(); 
+        case 1:
+        // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:10: T__20
+        {
+            mT__20();
 
-                }
-                break;
-            case 2 :
-                // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:16: T__21
-                {
-                mT__21(); 
+        }
+            break;
+        case 2:
+        // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:16: T__21
+        {
+            mT__21();
 
-                }
-                break;
-            case 3 :
-                // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:22: T__22
-                {
-                mT__22(); 
+        }
+            break;
+        case 3:
+        // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:22: T__22
+        {
+            mT__22();
 
-                }
-                break;
-            case 4 :
-                // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:28: T__23
-                {
-                mT__23(); 
+        }
+            break;
+        case 4:
+        // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:28: T__23
+        {
+            mT__23();
 
-                }
-                break;
-            case 5 :
-                // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:34: T__24
-                {
-                mT__24(); 
+        }
+            break;
+        case 5:
+        // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:34: T__24
+        {
+            mT__24();
 
-                }
-                break;
-            case 6 :
-                // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:40: T__25
-                {
-                mT__25(); 
+        }
+            break;
+        case 6:
+        // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:40: T__25
+        {
+            mT__25();
 
-                }
-                break;
-            case 7 :
-                // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:46: T__26
-                {
-                mT__26(); 
+        }
+            break;
+        case 7:
+        // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:46: T__26
+        {
+            mT__26();
 
-                }
-                break;
-            case 8 :
-                // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:52: T__27
-                {
-                mT__27(); 
+        }
+            break;
+        case 8:
+        // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:52: T__27
+        {
+            mT__27();
 
-                }
-                break;
-            case 9 :
-                // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:58: T__28
-                {
-                mT__28(); 
+        }
+            break;
+        case 9:
+        // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:58: T__28
+        {
+            mT__28();
 
-                }
-                break;
-            case 10 :
-                // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:64: T__29
-                {
-                mT__29(); 
+        }
+            break;
+        case 10:
+        // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:64: T__29
+        {
+            mT__29();
 
-                }
-                break;
-            case 11 :
-                // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:70: T__30
-                {
-                mT__30(); 
+        }
+            break;
+        case 11:
+        // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:70: T__30
+        {
+            mT__30();
 
-                }
-                break;
-            case 12 :
-                // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:76: T__31
-                {
-                mT__31(); 
+        }
+            break;
+        case 12:
+        // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:76: T__31
+        {
+            mT__31();
 
-                }
-                break;
-            case 13 :
-                // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:82: T__32
-                {
-                mT__32(); 
+        }
+            break;
+        case 13:
+        // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:82: T__32
+        {
+            mT__32();
 
-                }
-                break;
-            case 14 :
-                // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:88: T__33
-                {
-                mT__33(); 
+        }
+            break;
+        case 14:
+        // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:88: T__33
+        {
+            mT__33();
 
-                }
-                break;
-            case 15 :
-                // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:94: T__34
-                {
-                mT__34(); 
+        }
+            break;
+        case 15:
+        // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:94: T__34
+        {
+            mT__34();
 
-                }
-                break;
-            case 16 :
-                // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:100: T__35
-                {
-                mT__35(); 
+        }
+            break;
+        case 16:
+        // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:100: T__35
+        {
+            mT__35();
 
-                }
-                break;
-            case 17 :
-                // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:106: T__36
-                {
-                mT__36(); 
+        }
+            break;
+        case 17:
+        // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:106: T__36
+        {
+            mT__36();
 
-                }
-                break;
-            case 18 :
-                // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:112: T__37
-                {
-                mT__37(); 
+        }
+            break;
+        case 18:
+        // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:112: T__37
+        {
+            mT__37();
 
-                }
-                break;
-            case 19 :
-                // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:118: T__38
-                {
-                mT__38(); 
+        }
+            break;
+        case 19:
+        // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:118: T__38
+        {
+            mT__38();
 
-                }
-                break;
-            case 20 :
-                // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:124: T__39
-                {
-                mT__39(); 
+        }
+            break;
+        case 20:
+        // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:124: T__39
+        {
+            mT__39();
 
-                }
-                break;
-            case 21 :
-                // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:130: T__40
-                {
-                mT__40(); 
+        }
+            break;
+        case 21:
+        // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:130: T__40
+        {
+            mT__40();
 
-                }
-                break;
-            case 22 :
-                // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:136: T__41
-                {
-                mT__41(); 
+        }
+            break;
+        case 22:
+        // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:136: T__41
+        {
+            mT__41();
 
-                }
-                break;
-            case 23 :
-                // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:142: T__42
-                {
-                mT__42(); 
+        }
+            break;
+        case 23:
+        // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:142: T__42
+        {
+            mT__42();
 
-                }
-                break;
-            case 24 :
-                // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:148: T__43
-                {
-                mT__43(); 
+        }
+            break;
+        case 24:
+        // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:148: T__43
+        {
+            mT__43();
 
-                }
-                break;
-            case 25 :
-                // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:154: T__44
-                {
-                mT__44(); 
+        }
+            break;
+        case 25:
+        // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:154: T__44
+        {
+            mT__44();
 
-                }
-                break;
-            case 26 :
-                // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:160: T__45
-                {
-                mT__45(); 
+        }
+            break;
+        case 26:
+        // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:160: T__45
+        {
+            mT__45();
 
-                }
-                break;
-            case 27 :
-                // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:166: T__46
-                {
-                mT__46(); 
+        }
+            break;
+        case 27:
+        // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:166: T__46
+        {
+            mT__46();
 
-                }
-                break;
-            case 28 :
-                // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:172: T__47
-                {
-                mT__47(); 
+        }
+            break;
+        case 28:
+        // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:172: T__47
+        {
+            mT__47();
 
-                }
-                break;
-            case 29 :
-                // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:178: T__48
-                {
-                mT__48(); 
+        }
+            break;
+        case 29:
+        // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:178: T__48
+        {
+            mT__48();
 
-                }
-                break;
-            case 30 :
-                // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:184: T__49
-                {
-                mT__49(); 
+        }
+            break;
+        case 30:
+        // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:184: T__49
+        {
+            mT__49();
 
-                }
-                break;
-            case 31 :
-                // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:190: T__50
-                {
-                mT__50(); 
+        }
+            break;
+        case 31:
+        // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:190: T__50
+        {
+            mT__50();
 
-                }
-                break;
-            case 32 :
-                // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:196: T__51
-                {
-                mT__51(); 
+        }
+            break;
+        case 32:
+        // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:196: T__51
+        {
+            mT__51();
 
-                }
-                break;
-            case 33 :
-                // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:202: T__52
-                {
-                mT__52(); 
+        }
+            break;
+        case 33:
+        // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:202: T__52
+        {
+            mT__52();
 
-                }
-                break;
-            case 34 :
-                // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:208: T__53
-                {
-                mT__53(); 
+        }
+            break;
+        case 34:
+        // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:208: T__53
+        {
+            mT__53();
 
-                }
-                break;
-            case 35 :
-                // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:214: T__54
-                {
-                mT__54(); 
+        }
+            break;
+        case 35:
+        // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:214: T__54
+        {
+            mT__54();
 
-                }
-                break;
-            case 36 :
-                // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:220: T__55
-                {
-                mT__55(); 
+        }
+            break;
+        case 36:
+        // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:220: T__55
+        {
+            mT__55();
 
-                }
-                break;
-            case 37 :
-                // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:226: T__56
-                {
-                mT__56(); 
+        }
+            break;
+        case 37:
+        // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:226: T__56
+        {
+            mT__56();
 
-                }
-                break;
-            case 38 :
-                // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:232: T__57
-                {
-                mT__57(); 
+        }
+            break;
+        case 38:
+        // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:232: T__57
+        {
+            mT__57();
 
-                }
-                break;
-            case 39 :
-                // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:238: T__58
-                {
-                mT__58(); 
+        }
+            break;
+        case 39:
+        // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:238: T__58
+        {
+            mT__58();
 
-                }
-                break;
-            case 40 :
-                // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:244: T__59
-                {
-                mT__59(); 
+        }
+            break;
+        case 40:
+        // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:244: T__59
+        {
+            mT__59();
 
-                }
-                break;
-            case 41 :
-                // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:250: T__60
-                {
-                mT__60(); 
+        }
+            break;
+        case 41:
+        // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:250: T__60
+        {
+            mT__60();
 
-                }
-                break;
-            case 42 :
-                // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:256: T__61
-                {
-                mT__61(); 
+        }
+            break;
+        case 42:
+        // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:256: T__61
+        {
+            mT__61();
 
-                }
-                break;
-            case 43 :
-                // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:262: T__62
-                {
-                mT__62(); 
+        }
+            break;
+        case 43:
+        // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:262: T__62
+        {
+            mT__62();
 
-                }
-                break;
-            case 44 :
-                // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:268: T__63
-                {
-                mT__63(); 
+        }
+            break;
+        case 44:
+        // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:268: T__63
+        {
+            mT__63();
 
-                }
-                break;
-            case 45 :
-                // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:274: T__64
-                {
-                mT__64(); 
+        }
+            break;
+        case 45:
+        // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:274: T__64
+        {
+            mT__64();
 
-                }
-                break;
-            case 46 :
-                // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:280: T__65
-                {
-                mT__65(); 
+        }
+            break;
+        case 46:
+        // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:280: T__65
+        {
+            mT__65();
 
-                }
-                break;
-            case 47 :
-                // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:286: T__66
-                {
-                mT__66(); 
+        }
+            break;
+        case 47:
+        // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:286: T__66
+        {
+            mT__66();
 
-                }
-                break;
-            case 48 :
-                // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:292: T__67
-                {
-                mT__67(); 
+        }
+            break;
+        case 48:
+        // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:292: T__67
+        {
+            mT__67();
 
-                }
-                break;
-            case 49 :
-                // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:298: T__68
-                {
-                mT__68(); 
+        }
+            break;
+        case 49:
+        // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:298: T__68
+        {
+            mT__68();
 
-                }
-                break;
-            case 50 :
-                // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:304: T__69
-                {
-                mT__69(); 
+        }
+            break;
+        case 50:
+        // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:304: T__69
+        {
+            mT__69();
 
-                }
-                break;
-            case 51 :
-                // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:310: T__70
-                {
-                mT__70(); 
+        }
+            break;
+        case 51:
+        // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:310: T__70
+        {
+            mT__70();
 
-                }
-                break;
-            case 52 :
-                // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:316: T__71
-                {
-                mT__71(); 
+        }
+            break;
+        case 52:
+        // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:316: T__71
+        {
+            mT__71();
 
-                }
-                break;
-            case 53 :
-                // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:322: T__72
-                {
-                mT__72(); 
+        }
+            break;
+        case 53:
+        // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:322: T__72
+        {
+            mT__72();
 
-                }
-                break;
-            case 54 :
-                // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:328: T__73
-                {
-                mT__73(); 
+        }
+            break;
+        case 54:
+        // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:328: T__73
+        {
+            mT__73();
 
-                }
-                break;
-            case 55 :
-                // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:334: T__74
-                {
-                mT__74(); 
+        }
+            break;
+        case 55:
+        // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:334: T__74
+        {
+            mT__74();
 
-                }
-                break;
-            case 56 :
-                // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:340: T__75
-                {
-                mT__75(); 
+        }
+            break;
+        case 56:
+        // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:340: T__75
+        {
+            mT__75();
 
-                }
-                break;
-            case 57 :
-                // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:346: T__76
-                {
-                mT__76(); 
+        }
+            break;
+        case 57:
+        // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:346: T__76
+        {
+            mT__76();
 
-                }
-                break;
-            case 58 :
-                // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:352: T__77
-                {
-                mT__77(); 
+        }
+            break;
+        case 58:
+        // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:352: T__77
+        {
+            mT__77();
 
-                }
-                break;
-            case 59 :
-                // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:358: T__78
-                {
-                mT__78(); 
+        }
+            break;
+        case 59:
+        // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:358: T__78
+        {
+            mT__78();
 
-                }
-                break;
-            case 60 :
-                // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:364: T__79
-                {
-                mT__79(); 
+        }
+            break;
+        case 60:
+        // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:364: T__79
+        {
+            mT__79();
 
-                }
-                break;
-            case 61 :
-                // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:370: T__80
-                {
-                mT__80(); 
+        }
+            break;
+        case 61:
+        // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:370: T__80
+        {
+            mT__80();
 
-                }
-                break;
-            case 62 :
-                // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:376: T__81
-                {
-                mT__81(); 
+        }
+            break;
+        case 62:
+        // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:376: T__81
+        {
+            mT__81();
 
-                }
-                break;
-            case 63 :
-                // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:382: T__82
-                {
-                mT__82(); 
+        }
+            break;
+        case 63:
+        // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:382: T__82
+        {
+            mT__82();
 
-                }
-                break;
-            case 64 :
-                // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:388: T__83
-                {
-                mT__83(); 
+        }
+            break;
+        case 64:
+        // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:388: T__83
+        {
+            mT__83();
 
-                }
-                break;
-            case 65 :
-                // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:394: T__84
-                {
-                mT__84(); 
+        }
+            break;
+        case 65:
+        // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:394: T__84
+        {
+            mT__84();
 
-                }
-                break;
-            case 66 :
-                // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:400: T__85
-                {
-                mT__85(); 
+        }
+            break;
+        case 66:
+        // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:400: T__85
+        {
+            mT__85();
 
-                }
-                break;
-            case 67 :
-                // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:406: T__86
-                {
-                mT__86(); 
+        }
+            break;
+        case 67:
+        // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:406: T__86
+        {
+            mT__86();
 
-                }
-                break;
-            case 68 :
-                // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:412: T__87
-                {
-                mT__87(); 
+        }
+            break;
+        case 68:
+        // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:412: T__87
+        {
+            mT__87();
 
-                }
-                break;
-            case 69 :
-                // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:418: T__88
-                {
-                mT__88(); 
+        }
+            break;
+        case 69:
+        // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:418: T__88
+        {
+            mT__88();
 
-                }
-                break;
-            case 70 :
-                // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:424: T__89
-                {
-                mT__89(); 
+        }
+            break;
+        case 70:
+        // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:424: T__89
+        {
+            mT__89();
 
-                }
-                break;
-            case 71 :
-                // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:430: T__90
-                {
-                mT__90(); 
+        }
+            break;
+        case 71:
+        // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:430: T__90
+        {
+            mT__90();
 
-                }
-                break;
-            case 72 :
-                // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:436: T__91
-                {
-                mT__91(); 
+        }
+            break;
+        case 72:
+        // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:436: T__91
+        {
+            mT__91();
 
-                }
-                break;
-            case 73 :
-                // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:442: T__92
-                {
-                mT__92(); 
+        }
+            break;
+        case 73:
+        // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:442: T__92
+        {
+            mT__92();
 
-                }
-                break;
-            case 74 :
-                // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:448: T__93
-                {
-                mT__93(); 
+        }
+            break;
+        case 74:
+        // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:448: T__93
+        {
+            mT__93();
 
-                }
-                break;
-            case 75 :
-                // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:454: T__94
-                {
-                mT__94(); 
+        }
+            break;
+        case 75:
+        // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:454: T__94
+        {
+            mT__94();
 
-                }
-                break;
-            case 76 :
-                // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:460: T__95
-                {
-                mT__95(); 
+        }
+            break;
+        case 76:
+        // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:460: T__95
+        {
+            mT__95();
 
-                }
-                break;
-            case 77 :
-                // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:466: T__96
-                {
-                mT__96(); 
+        }
+            break;
+        case 77:
+        // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:466: T__96
+        {
+            mT__96();
 
-                }
-                break;
-            case 78 :
-                // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:472: T__97
-                {
-                mT__97(); 
+        }
+            break;
+        case 78:
+        // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:472: T__97
+        {
+            mT__97();
 
-                }
-                break;
-            case 79 :
-                // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:478: T__98
-                {
-                mT__98(); 
+        }
+            break;
+        case 79:
+        // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:478: T__98
+        {
+            mT__98();
 
-                }
-                break;
-            case 80 :
-                // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:484: T__99
-                {
-                mT__99(); 
+        }
+            break;
+        case 80:
+        // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:484: T__99
+        {
+            mT__99();
 
-                }
-                break;
-            case 81 :
-                // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:490: T__100
-                {
-                mT__100(); 
+        }
+            break;
+        case 81:
+        // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:490: T__100
+        {
+            mT__100();
 
-                }
-                break;
-            case 82 :
-                // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:497: IntLiteral
-                {
-                mIntLiteral(); 
+        }
+            break;
+        case 82:
+        // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:497: IntLiteral
+        {
+            mIntLiteral();
 
-                }
-                break;
-            case 83 :
-                // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:508: StringLiteral
-                {
-                mStringLiteral(); 
+        }
+            break;
+        case 83:
+        // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:508: StringLiteral
+        {
+            mStringLiteral();
 
-                }
-                break;
-            case 84 :
-                // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:522: Identifier
-                {
-                mIdentifier(); 
+        }
+            break;
+        case 84:
+        // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:522: Identifier
+        {
+            mIdentifier();
 
-                }
-                break;
-            case 85 :
-                // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:533: WS
-                {
-                mWS(); 
+        }
+            break;
+        case 85:
+        // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:533: WS
+        {
+            mWS();
 
-                }
-                break;
-            case 86 :
-                // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:536: ML_COMMENT
-                {
-                mML_COMMENT(); 
+        }
+            break;
+        case 86:
+        // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:536: ML_COMMENT
+        {
+            mML_COMMENT();
 
-                }
-                break;
-            case 87 :
-                // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:547: LINE_COMMENT
-                {
-                mLINE_COMMENT(); 
+        }
+            break;
+        case 87:
+        // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:547: LINE_COMMENT
+        {
+            mLINE_COMMENT();
 
-                }
-                break;
-            case 88 :
-                // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:560: LG
-                {
-                mLG(); 
+        }
+            break;
+        case 88:
+        // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:560: LG
+        {
+            mLG();
 
-                }
-                break;
-            case 89 :
-                // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:563: COMMENT
-                {
-                mCOMMENT(); 
+        }
+            break;
+        case 89:
+        // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:563: COMMENT
+        {
+            mCOMMENT();
 
-                }
-                break;
-            case 90 :
-                // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:571: TEXT
-                {
-                mTEXT(); 
+        }
+            break;
+        case 90:
+        // src/org/eclipse/internal/xpand2/parser/Xpand.g:1:571: TEXT
+        {
+            mTEXT();
 
-                }
-                break;
+        }
+            break;
 
         }
 
     }
 
-
     protected DFA15 dfa15 = new DFA15(this);
-    static final String DFA15_eotS =
-        "\1\uffff\3\54\4\uffff\1\54\1\76\1\54\1\102\6\54\1\116\1\uffff\4"+
-        "\54\1\uffff\2\54\1\uffff\1\135\1\uffff\1\137\1\141\1\143\1\uffff"+
-        "\1\146\1\uffff\4\54\5\uffff\1\54\3\uffff\2\54\1\161\1\162\5\54\1"+
-        "\171\2\54\2\uffff\2\54\2\uffff\12\54\2\uffff\1\u0088\14\54\13\uffff"+
-        "\12\54\2\uffff\6\54\1\uffff\1\u00ab\4\54\1\u00b0\1\54\1\u00b2\5"+
-        "\54\1\u00b8\1\uffff\15\54\1\u00c6\21\54\1\u00da\2\54\1\uffff\1\u00dd"+
-        "\3\54\1\uffff\1\54\1\uffff\1\u00e2\2\54\1\u00e5\1\54\1\uffff\1\54"+
-        "\1\u00e8\1\u00e9\1\54\1\u00eb\4\54\1\u00f0\3\54\1\uffff\1\u00f4"+
-        "\4\54\1\uffff\10\54\1\u0101\2\54\1\u0104\1\54\1\uffff\2\54\1\uffff"+
-        "\4\54\1\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\4\54\1\uffff"+
-        "\3\54\1\uffff\1\54\1\u0119\2\54\1\u011c\2\54\1\u011f\4\54\1\uffff"+
-        "\1\u0124\1\54\1\uffff\1\u0126\1\u0127\1\54\1\u0129\4\54\1\u012e"+
-        "\3\54\1\u0132\1\u0133\1\u0135\1\u0136\4\54\1\uffff\1\u013b\1\u013c"+
-        "\1\uffff\2\54\1\uffff\2\54\1\u0141\1\54\1\uffff\1\54\2\uffff\1\u0144"+
-        "\1\uffff\1\u0145\2\54\1\u0148\1\uffff\1\54\1\u014a\1\54\2\uffff"+
-        "\1\54\2\uffff\1\u014d\1\u014e\2\54\2\uffff\1\u0151\3\54\1\uffff"+
-        "\2\54\2\uffff\2\54\1\uffff\1\54\1\uffff\2\54\2\uffff\2\54\1\uffff"+
-        "\1\u015e\1\u015f\1\u0160\2\54\1\u0163\4\54\1\u0168\1\u0169\3\uffff"+
-        "\1\u016a\1\u016b\1\uffff\1\54\1\u016d\1\u016e\1\54\4\uffff\1\u0170"+
-        "\2\uffff\1\u0171\2\uffff";
-    static final String DFA15_eofS =
-        "\u0172\uffff";
-    static final String DFA15_minS =
-        "\1\11\1\104\1\114\1\122\4\uffff\1\111\1\72\1\105\1\76\1\105\1\116"+
-        "\1\105\1\122\1\105\1\145\1\75\1\uffff\1\146\1\150\1\154\1\145\1"+
-        "\uffff\1\141\1\145\1\uffff\1\174\1\uffff\3\75\1\uffff\1\52\1\uffff"+
-        "\1\114\1\145\1\141\1\145\5\uffff\1\105\3\uffff\1\120\1\105\2\44"+
-        "\1\120\1\104\1\122\1\123\1\117\1\44\1\122\1\114\2\uffff\1\106\1"+
-        "\123\2\uffff\1\120\1\164\1\106\1\124\1\163\1\117\1\124\1\116\1\154"+
-        "\1\164\2\uffff\1\44\1\160\1\145\1\165\1\160\1\163\2\151\1\154\1"+
-        "\162\1\163\1\154\1\146\13\uffff\1\117\1\167\1\154\1\164\1\154\1"+
-        "\162\1\152\1\115\1\117\1\122\2\uffff\1\105\2\101\1\117\1\105\1\125"+
-        "\1\uffff\1\44\1\105\1\111\2\101\1\44\1\111\1\44\1\164\1\124\1\101"+
-        "\1\104\1\154\1\44\1\uffff\1\154\1\156\3\145\1\163\1\164\1\145\1"+
-        "\164\1\145\1\154\1\141\1\102\1\44\1\154\1\105\1\163\1\101\1\145"+
-        "\1\u00bb\1\122\1\101\2\116\1\122\1\105\1\111\1\106\1\105\2\122\1"+
-        "\44\1\116\1\101\1\uffff\1\44\1\116\1\102\1\122\1\uffff\1\114\1\uffff"+
-        "\1\44\1\105\1\122\1\44\1\145\1\uffff\1\151\2\44\1\123\1\44\1\164"+
-        "\2\143\1\102\1\44\1\145\1\165\1\101\1\uffff\1\44\1\170\1\145\1\154"+
-        "\1\143\1\uffff\2\124\1\123\1\104\1\117\1\106\1\114\1\122\1\44\1"+
-        "\124\1\117\1\44\1\106\1\uffff\1\104\1\103\1\uffff\1\105\1\114\1"+
-        "\101\1\105\1\uffff\1\103\1\124\1\uffff\1\143\1\145\2\uffff\1\145"+
-        "\1\uffff\1\163\1\150\1\164\1\171\1\uffff\1\143\1\154\1\114\1\uffff"+
-        "\1\151\1\44\1\154\1\164\1\44\1\117\1\111\1\44\1\125\1\111\2\105"+
-        "\1\uffff\1\44\1\124\1\uffff\2\44\1\110\1\44\1\105\1\124\1\103\1"+
-        "\124\1\44\1\164\1\163\1\154\4\44\2\164\1\126\1\163\1\uffff\2\44"+
-        "\1\uffff\1\122\1\117\1\uffff\2\116\1\44\1\101\1\uffff\1\105\2\uffff"+
-        "\1\44\1\uffff\1\44\1\117\1\114\1\44\1\uffff\1\151\1\44\1\145\2\uffff"+
-        "\1\151\2\uffff\2\44\1\101\1\164\2\uffff\1\44\1\116\1\104\1\105\1"+
-        "\uffff\2\103\2\uffff\1\122\1\117\1\uffff\1\157\1\uffff\1\143\1\162"+
-        "\2\uffff\1\122\1\163\1\uffff\3\44\1\110\1\124\1\44\1\123\1\156\1"+
-        "\164\1\163\2\44\3\uffff\2\44\1\uffff\1\105\2\44\1\164\4\uffff\1"+
-        "\44\2\uffff\1\44\2\uffff";
-    static final String DFA15_maxS =
-        "\1\ufaff\1\124\1\130\1\123\4\uffff\1\117\1\72\1\111\1\76\1\145\1"+
-        "\116\1\151\1\122\1\157\1\145\1\75\1\uffff\1\155\1\171\1\170\1\167"+
-        "\1\uffff\1\157\1\145\1\uffff\1\174\1\uffff\3\75\1\uffff\1\57\1\uffff"+
-        "\1\114\1\165\1\157\1\145\5\uffff\1\105\3\uffff\1\120\1\105\2\ufaff"+
-        "\1\124\1\104\1\122\1\123\1\117\1\ufaff\1\122\1\114\2\uffff\1\106"+
-        "\1\123\2\uffff\1\120\1\164\1\106\1\124\1\163\1\117\1\124\1\116\1"+
-        "\154\1\164\2\uffff\1\ufaff\1\160\1\145\1\165\1\160\1\163\2\151\1"+
-        "\154\1\162\1\163\1\154\1\146\13\uffff\1\117\1\167\1\154\1\164\1"+
-        "\154\1\162\1\152\1\115\1\117\1\122\2\uffff\1\105\1\101\1\120\1\117"+
-        "\1\105\1\125\1\uffff\1\ufaff\1\105\1\111\2\101\1\ufaff\1\111\1\ufaff"+
-        "\1\164\1\124\1\101\1\104\1\154\1\ufaff\1\uffff\1\154\1\156\3\145"+
-        "\1\163\1\164\1\145\1\164\1\145\1\154\1\141\1\102\1\ufaff\1\154\1"+
-        "\105\1\163\1\101\1\145\1\u00bb\1\122\1\101\2\116\1\122\1\105\1\117"+
-        "\1\106\1\105\2\122\1\ufaff\1\116\1\101\1\uffff\1\ufaff\1\116\1\102"+
-        "\1\122\1\uffff\1\114\1\uffff\1\ufaff\1\105\1\122\1\ufaff\1\145\1"+
-        "\uffff\1\151\2\ufaff\1\123\1\ufaff\1\164\2\143\1\102\1\ufaff\1\145"+
-        "\1\165\1\101\1\uffff\1\ufaff\1\170\1\145\1\154\1\143\1\uffff\2\124"+
-        "\1\123\1\104\1\117\1\106\1\114\1\122\1\ufaff\1\124\1\117\1\ufaff"+
-        "\1\106\1\uffff\1\104\1\103\1\uffff\1\105\1\114\1\101\1\105\1\uffff"+
-        "\1\103\1\124\1\uffff\1\143\1\145\2\uffff\1\145\1\uffff\1\163\1\150"+
-        "\1\164\1\171\1\uffff\1\143\1\154\1\114\1\uffff\1\151\1\ufaff\1\154"+
-        "\1\164\1\ufaff\1\117\1\111\1\ufaff\1\125\1\111\2\105\1\uffff\1\ufaff"+
-        "\1\124\1\uffff\2\ufaff\1\110\1\ufaff\1\105\1\124\1\103\1\124\1\ufaff"+
-        "\1\164\1\163\1\154\4\ufaff\2\164\1\126\1\163\1\uffff\2\ufaff\1\uffff"+
-        "\1\122\1\117\1\uffff\2\116\1\ufaff\1\101\1\uffff\1\105\2\uffff\1"+
-        "\ufaff\1\uffff\1\ufaff\1\117\1\114\1\ufaff\1\uffff\1\151\1\ufaff"+
-        "\1\145\2\uffff\1\151\2\uffff\2\ufaff\1\101\1\164\2\uffff\1\ufaff"+
-        "\1\116\1\104\1\105\1\uffff\2\103\2\uffff\1\122\1\117\1\uffff\1\157"+
-        "\1\uffff\1\143\1\162\2\uffff\1\122\1\163\1\uffff\3\ufaff\1\110\1"+
-        "\124\1\ufaff\1\123\1\156\1\164\1\163\2\ufaff\3\uffff\2\ufaff\1\uffff"+
-        "\1\105\2\ufaff\1\164\4\uffff\1\ufaff\2\uffff\1\ufaff\2\uffff";
-    static final String DFA15_acceptS =
-        "\4\uffff\1\4\1\5\1\6\1\7\13\uffff\1\50\4\uffff\1\55\2\uffff\1\60"+
-        "\1\uffff\1\62\3\uffff\1\72\1\uffff\1\75\4\uffff\1\120\1\121\1\122"+
-        "\1\123\1\124\1\uffff\1\125\1\130\1\132\14\uffff\1\12\1\46\2\uffff"+
-        "\1\47\1\15\12\uffff\1\64\1\45\15\uffff\1\61\1\114\1\65\1\74\1\66"+
-        "\1\70\1\67\1\71\1\126\1\127\1\73\12\uffff\1\30\1\41\6\uffff\1\25"+
-        "\16\uffff\1\51\42\uffff\1\10\4\uffff\1\117\1\uffff\1\34\5\uffff"+
-        "\1\44\15\uffff\1\77\5\uffff\1\131\15\uffff\1\33\2\uffff\1\23\4\uffff"+
-        "\1\116\2\uffff\1\40\2\uffff\1\52\1\101\1\uffff\1\53\4\uffff\1\56"+
-        "\3\uffff\1\102\14\uffff\1\31\2\uffff\1\16\24\uffff\1\100\2\uffff"+
-        "\1\1\2\uffff\1\17\4\uffff\1\35\1\uffff\1\32\1\3\1\uffff\1\13\4\uffff"+
-        "\1\37\3\uffff\1\110\1\54\1\uffff\1\105\1\112\4\uffff\1\113\1\107"+
-        "\4\uffff\1\24\2\uffff\1\20\1\42\2\uffff\1\36\1\uffff\1\63\2\uffff"+
-        "\1\104\1\57\2\uffff\1\26\14\uffff\1\2\1\11\1\14\2\uffff\1\21\4\uffff"+
-        "\1\76\1\111\1\27\1\43\1\uffff\1\115\1\103\1\uffff\1\22\1\106";
-    static final String DFA15_specialS =
-        "\u0172\uffff}>";
+    static final String DFA15_eotS = "\1\uffff\3\54\4\uffff\1\54\1\76\1\54\1\102\6\54\1\116\1\uffff\4"
+            + "\54\1\uffff\2\54\1\uffff\1\135\1\uffff\1\137\1\141\1\143\1\uffff" + "\1\146\1\uffff\4\54\5\uffff\1\54\3\uffff\2\54\1\161\1\162\5\54\1"
+            + "\171\2\54\2\uffff\2\54\2\uffff\12\54\2\uffff\1\u0088\14\54\13\uffff" + "\12\54\2\uffff\6\54\1\uffff\1\u00ab\4\54\1\u00b0\1\54\1\u00b2\5"
+            + "\54\1\u00b8\1\uffff\15\54\1\u00c6\21\54\1\u00da\2\54\1\uffff\1\u00dd" + "\3\54\1\uffff\1\54\1\uffff\1\u00e2\2\54\1\u00e5\1\54\1\uffff\1\54"
+            + "\1\u00e8\1\u00e9\1\54\1\u00eb\4\54\1\u00f0\3\54\1\uffff\1\u00f4" + "\4\54\1\uffff\10\54\1\u0101\2\54\1\u0104\1\54\1\uffff\2\54\1\uffff"
+            + "\4\54\1\uffff\2\54\1\uffff\2\54\2\uffff\1\54\1\uffff\4\54\1\uffff" + "\3\54\1\uffff\1\54\1\u0119\2\54\1\u011c\2\54\1\u011f\4\54\1\uffff"
+            + "\1\u0124\1\54\1\uffff\1\u0126\1\u0127\1\54\1\u0129\4\54\1\u012e" + "\3\54\1\u0132\1\u0133\1\u0135\1\u0136\4\54\1\uffff\1\u013b\1\u013c"
+            + "\1\uffff\2\54\1\uffff\2\54\1\u0141\1\54\1\uffff\1\54\2\uffff\1\u0144" + "\1\uffff\1\u0145\2\54\1\u0148\1\uffff\1\54\1\u014a\1\54\2\uffff"
+            + "\1\54\2\uffff\1\u014d\1\u014e\2\54\2\uffff\1\u0151\3\54\1\uffff" + "\2\54\2\uffff\2\54\1\uffff\1\54\1\uffff\2\54\2\uffff\2\54\1\uffff"
+            + "\1\u015e\1\u015f\1\u0160\2\54\1\u0163\4\54\1\u0168\1\u0169\3\uffff" + "\1\u016a\1\u016b\1\uffff\1\54\1\u016d\1\u016e\1\54\4\uffff\1\u0170"
+            + "\2\uffff\1\u0171\2\uffff";
+    static final String DFA15_eofS = "\u0172\uffff";
+    static final String DFA15_minS = "\1\11\1\104\1\114\1\122\4\uffff\1\111\1\72\1\105\1\76\1\105\1\116"
+            + "\1\105\1\122\1\105\1\145\1\75\1\uffff\1\146\1\150\1\154\1\145\1" + "\uffff\1\141\1\145\1\uffff\1\174\1\uffff\3\75\1\uffff\1\52\1\uffff"
+            + "\1\114\1\145\1\141\1\145\5\uffff\1\105\3\uffff\1\120\1\105\2\44" + "\1\120\1\104\1\122\1\123\1\117\1\44\1\122\1\114\2\uffff\1\106\1"
+            + "\123\2\uffff\1\120\1\164\1\106\1\124\1\163\1\117\1\124\1\116\1\154" + "\1\164\2\uffff\1\44\1\160\1\145\1\165\1\160\1\163\2\151\1\154\1"
+            + "\162\1\163\1\154\1\146\13\uffff\1\117\1\167\1\154\1\164\1\154\1" + "\162\1\152\1\115\1\117\1\122\2\uffff\1\105\2\101\1\117\1\105\1\125"
+            + "\1\uffff\1\44\1\105\1\111\2\101\1\44\1\111\1\44\1\164\1\124\1\101" + "\1\104\1\154\1\44\1\uffff\1\154\1\156\3\145\1\163\1\164\1\145\1"
+            + "\164\1\145\1\154\1\141\1\102\1\44\1\154\1\105\1\163\1\101\1\145" + "\1\u00bb\1\122\1\101\2\116\1\122\1\105\1\111\1\106\1\105\2\122\1"
+            + "\44\1\116\1\101\1\uffff\1\44\1\116\1\102\1\122\1\uffff\1\114\1\uffff" + "\1\44\1\105\1\122\1\44\1\145\1\uffff\1\151\2\44\1\123\1\44\1\164"
+            + "\2\143\1\102\1\44\1\145\1\165\1\101\1\uffff\1\44\1\170\1\145\1\154" + "\1\143\1\uffff\2\124\1\123\1\104\1\117\1\106\1\114\1\122\1\44\1"
+            + "\124\1\117\1\44\1\106\1\uffff\1\104\1\103\1\uffff\1\105\1\114\1" + "\101\1\105\1\uffff\1\103\1\124\1\uffff\1\143\1\145\2\uffff\1\145"
+            + "\1\uffff\1\163\1\150\1\164\1\171\1\uffff\1\143\1\154\1\114\1\uffff" + "\1\151\1\44\1\154\1\164\1\44\1\117\1\111\1\44\1\125\1\111\2\105"
+            + "\1\uffff\1\44\1\124\1\uffff\2\44\1\110\1\44\1\105\1\124\1\103\1" + "\124\1\44\1\164\1\163\1\154\4\44\2\164\1\126\1\163\1\uffff\2\44"
+            + "\1\uffff\1\122\1\117\1\uffff\2\116\1\44\1\101\1\uffff\1\105\2\uffff" + "\1\44\1\uffff\1\44\1\117\1\114\1\44\1\uffff\1\151\1\44\1\145\2\uffff"
+            + "\1\151\2\uffff\2\44\1\101\1\164\2\uffff\1\44\1\116\1\104\1\105\1" + "\uffff\2\103\2\uffff\1\122\1\117\1\uffff\1\157\1\uffff\1\143\1\162"
+            + "\2\uffff\1\122\1\163\1\uffff\3\44\1\110\1\124\1\44\1\123\1\156\1" + "\164\1\163\2\44\3\uffff\2\44\1\uffff\1\105\2\44\1\164\4\uffff\1"
+            + "\44\2\uffff\1\44\2\uffff";
+    static final String DFA15_maxS = "\1\ufaff\1\124\1\130\1\123\4\uffff\1\117\1\72\1\111\1\76\1\145\1"
+            + "\116\1\151\1\122\1\157\1\145\1\75\1\uffff\1\155\1\171\1\170\1\167" + "\1\uffff\1\157\1\145\1\uffff\1\174\1\uffff\3\75\1\uffff\1\57\1\uffff"
+            + "\1\114\1\165\1\157\1\145\5\uffff\1\105\3\uffff\1\120\1\105\2\ufaff" + "\1\124\1\104\1\122\1\123\1\117\1\ufaff\1\122\1\114\2\uffff\1\106"
+            + "\1\123\2\uffff\1\120\1\164\1\106\1\124\1\163\1\117\1\124\1\116\1" + "\154\1\164\2\uffff\1\ufaff\1\160\1\145\1\165\1\160\1\163\2\151\1"
+            + "\154\1\162\1\163\1\154\1\146\13\uffff\1\117\1\167\1\154\1\164\1" + "\154\1\162\1\152\1\115\1\117\1\122\2\uffff\1\105\1\101\1\120\1\117"
+            + "\1\105\1\125\1\uffff\1\ufaff\1\105\1\111\2\101\1\ufaff\1\111\1\ufaff" + "\1\164\1\124\1\101\1\104\1\154\1\ufaff\1\uffff\1\154\1\156\3\145"
+            + "\1\163\1\164\1\145\1\164\1\145\1\154\1\141\1\102\1\ufaff\1\154\1" + "\105\1\163\1\101\1\145\1\u00bb\1\122\1\101\2\116\1\122\1\105\1\117"
+            + "\1\106\1\105\2\122\1\ufaff\1\116\1\101\1\uffff\1\ufaff\1\116\1\102" + "\1\122\1\uffff\1\114\1\uffff\1\ufaff\1\105\1\122\1\ufaff\1\145\1"
+            + "\uffff\1\151\2\ufaff\1\123\1\ufaff\1\164\2\143\1\102\1\ufaff\1\145" + "\1\165\1\101\1\uffff\1\ufaff\1\170\1\145\1\154\1\143\1\uffff\2\124"
+            + "\1\123\1\104\1\117\1\106\1\114\1\122\1\ufaff\1\124\1\117\1\ufaff" + "\1\106\1\uffff\1\104\1\103\1\uffff\1\105\1\114\1\101\1\105\1\uffff"
+            + "\1\103\1\124\1\uffff\1\143\1\145\2\uffff\1\145\1\uffff\1\163\1\150" + "\1\164\1\171\1\uffff\1\143\1\154\1\114\1\uffff\1\151\1\ufaff\1\154"
+            + "\1\164\1\ufaff\1\117\1\111\1\ufaff\1\125\1\111\2\105\1\uffff\1\ufaff" + "\1\124\1\uffff\2\ufaff\1\110\1\ufaff\1\105\1\124\1\103\1\124\1\ufaff"
+            + "\1\164\1\163\1\154\4\ufaff\2\164\1\126\1\163\1\uffff\2\ufaff\1\uffff" + "\1\122\1\117\1\uffff\2\116\1\ufaff\1\101\1\uffff\1\105\2\uffff\1"
+            + "\ufaff\1\uffff\1\ufaff\1\117\1\114\1\ufaff\1\uffff\1\151\1\ufaff" + "\1\145\2\uffff\1\151\2\uffff\2\ufaff\1\101\1\164\2\uffff\1\ufaff"
+            + "\1\116\1\104\1\105\1\uffff\2\103\2\uffff\1\122\1\117\1\uffff\1\157" + "\1\uffff\1\143\1\162\2\uffff\1\122\1\163\1\uffff\3\ufaff\1\110\1"
+            + "\124\1\ufaff\1\123\1\156\1\164\1\163\2\ufaff\3\uffff\2\ufaff\1\uffff" + "\1\105\2\ufaff\1\164\4\uffff\1\ufaff\2\uffff\1\ufaff\2\uffff";
+    static final String DFA15_acceptS = "\4\uffff\1\4\1\5\1\6\1\7\13\uffff\1\50\4\uffff\1\55\2\uffff\1\60"
+            + "\1\uffff\1\62\3\uffff\1\72\1\uffff\1\75\4\uffff\1\120\1\121\1\122" + "\1\123\1\124\1\uffff\1\125\1\130\1\132\14\uffff\1\12\1\46\2\uffff"
+            + "\1\47\1\15\12\uffff\1\64\1\45\15\uffff\1\61\1\114\1\65\1\74\1\66" + "\1\70\1\67\1\71\1\126\1\127\1\73\12\uffff\1\30\1\41\6\uffff\1\25"
+            + "\16\uffff\1\51\42\uffff\1\10\4\uffff\1\117\1\uffff\1\34\5\uffff" + "\1\44\15\uffff\1\77\5\uffff\1\131\15\uffff\1\33\2\uffff\1\23\4\uffff"
+            + "\1\116\2\uffff\1\40\2\uffff\1\52\1\101\1\uffff\1\53\4\uffff\1\56" + "\3\uffff\1\102\14\uffff\1\31\2\uffff\1\16\24\uffff\1\100\2\uffff"
+            + "\1\1\2\uffff\1\17\4\uffff\1\35\1\uffff\1\32\1\3\1\uffff\1\13\4\uffff" + "\1\37\3\uffff\1\110\1\54\1\uffff\1\105\1\112\4\uffff\1\113\1\107"
+            + "\4\uffff\1\24\2\uffff\1\20\1\42\2\uffff\1\36\1\uffff\1\63\2\uffff" + "\1\104\1\57\2\uffff\1\26\14\uffff\1\2\1\11\1\14\2\uffff\1\21\4\uffff"
+            + "\1\76\1\111\1\27\1\43\1\uffff\1\115\1\103\1\uffff\1\22\1\106";
+    static final String DFA15_specialS = "\u0172\uffff}>";
     static final String[] DFA15_transitionS = {
-            "\2\56\1\uffff\2\56\22\uffff\1\56\1\36\1\53\1\uffff\1\54\1\uffff"+
-            "\1\35\1\53\1\4\1\7\1\6\1\41\1\5\1\13\1\43\1\42\12\52\1\11\1"+
-            "\uffff\1\40\1\22\1\37\1\23\1\uffff\1\3\1\54\1\20\1\12\1\2\1"+
-            "\10\1\44\1\54\1\1\2\54\1\16\2\54\1\15\1\17\1\54\1\55\1\14\7"+
-            "\54\1\50\1\uffff\1\51\2\54\1\uffff\2\54\1\31\1\32\1\26\1\46"+
-            "\2\54\1\24\2\54\1\21\1\54\1\45\3\54\1\47\1\27\1\25\6\54\1\30"+
-            "\1\34\1\33\55\uffff\1\57\17\uffff\1\60\4\uffff\27\54\1\uffff"+
-            "\37\54\1\uffff\u1f08\54\u1040\uffff\u0150\54\u0170\uffff\u0080"+
-            "\54\u0080\uffff\u092e\54\u10d2\uffff\u5200\54\u5900\uffff\u0200"+
-            "\54",
+            "\2\56\1\uffff\2\56\22\uffff\1\56\1\36\1\53\1\uffff\1\54\1\uffff" + "\1\35\1\53\1\4\1\7\1\6\1\41\1\5\1\13\1\43\1\42\12\52\1\11\1"
+                    + "\uffff\1\40\1\22\1\37\1\23\1\uffff\1\3\1\54\1\20\1\12\1\2\1" + "\10\1\44\1\54\1\1\2\54\1\16\2\54\1\15\1\17\1\54\1\55\1\14\7"
+                    + "\54\1\50\1\uffff\1\51\2\54\1\uffff\2\54\1\31\1\32\1\26\1\46" + "\2\54\1\24\2\54\1\21\1\54\1\45\3\54\1\47\1\27\1\25\6\54\1\30"
+                    + "\1\34\1\33\55\uffff\1\57\17\uffff\1\60\4\uffff\27\54\1\uffff" + "\37\54\1\uffff\u1f08\54\u1040\uffff\u0150\54\u0170\uffff\u0080"
+                    + "\54\u0080\uffff\u092e\54\u10d2\uffff\u5200\54\u5900\uffff\u0200" + "\54",
             "\1\64\1\uffff\1\63\6\uffff\1\61\6\uffff\1\62",
             "\1\70\1\uffff\1\66\3\uffff\1\67\5\uffff\1\65",
             "\1\71\1\72",
@@ -3548,23 +3417,17 @@
             "",
             "\1\157",
             "\1\160",
-            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32"+
-            "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"+
-            "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff"+
-            "\u5200\54\u5900\uffff\u0200\54",
-            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32"+
-            "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"+
-            "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff"+
-            "\u5200\54\u5900\uffff\u0200\54",
+            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"
+                    + "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",
+            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"
+                    + "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",
             "\1\164\3\uffff\1\163",
             "\1\165",
             "\1\166",
             "\1\167",
             "\1\170",
-            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32"+
-            "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"+
-            "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff"+
-            "\u5200\54\u5900\uffff\u0200\54",
+            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"
+                    + "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",
             "\1\172",
             "\1\173",
             "",
@@ -3585,10 +3448,8 @@
             "\1\u0087",
             "",
             "",
-            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32"+
-            "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"+
-            "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff"+
-            "\u5200\54\u5900\uffff\u0200\54",
+            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"
+                    + "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",
             "\1\u0089",
             "\1\u008a",
             "\1\u008b",
@@ -3626,38 +3487,29 @@
             "",
             "\1\u009f",
             "\1\u00a0",
-            "\1\u00a1\2\uffff\1\u00a2\1\uffff\1\u00a3\2\uffff\1\u00a4\2"+
-            "\uffff\1\u00a5\3\uffff\1\u00a6",
+            "\1\u00a1\2\uffff\1\u00a2\1\uffff\1\u00a3\2\uffff\1\u00a4\2" + "\uffff\1\u00a5\3\uffff\1\u00a6",
             "\1\u00a7",
             "\1\u00a8",
             "\1\u00a9",
             "",
-            "\1\54\13\uffff\12\54\7\uffff\4\54\1\u00aa\25\54\4\uffff\1\54"+
-            "\1\uffff\32\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54"+
-            "\u1040\uffff\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e"+
-            "\54\u10d2\uffff\u5200\54\u5900\uffff\u0200\54",
+            "\1\54\13\uffff\12\54\7\uffff\4\54\1\u00aa\25\54\4\uffff\1\54" + "\1\uffff\32\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54"
+                    + "\u1040\uffff\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e" + "\54\u10d2\uffff\u5200\54\u5900\uffff\u0200\54",
             "\1\u00ac",
             "\1\u00ad",
             "\1\u00ae",
             "\1\u00af",
-            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32"+
-            "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"+
-            "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff"+
-            "\u5200\54\u5900\uffff\u0200\54",
+            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"
+                    + "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",
             "\1\u00b1",
-            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32"+
-            "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"+
-            "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff"+
-            "\u5200\54\u5900\uffff\u0200\54",
+            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"
+                    + "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",
             "\1\u00b3",
             "\1\u00b4",
             "\1\u00b5",
             "\1\u00b6",
             "\1\u00b7",
-            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32"+
-            "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"+
-            "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff"+
-            "\u5200\54\u5900\uffff\u0200\54",
+            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"
+                    + "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",
             "",
             "\1\u00b9",
             "\1\u00ba",
@@ -3672,10 +3524,8 @@
             "\1\u00c3",
             "\1\u00c4",
             "\1\u00c5",
-            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32"+
-            "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"+
-            "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff"+
-            "\u5200\54\u5900\uffff\u0200\54",
+            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"
+                    + "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",
             "\1\u00c7",
             "\1\u00c8",
             "\1\u00c9",
@@ -3693,65 +3543,47 @@
             "\1\u00d6",
             "\1\u00d7",
             "\1\u00d8",
-            "\1\54\13\uffff\12\54\7\uffff\10\54\1\u00d9\21\54\4\uffff\1"+
-            "\54\1\uffff\32\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08"+
-            "\54\u1040\uffff\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e"+
-            "\54\u10d2\uffff\u5200\54\u5900\uffff\u0200\54",
+            "\1\54\13\uffff\12\54\7\uffff\10\54\1\u00d9\21\54\4\uffff\1" + "\54\1\uffff\32\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08"
+                    + "\54\u1040\uffff\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e" + "\54\u10d2\uffff\u5200\54\u5900\uffff\u0200\54",
             "\1\u00db",
             "\1\u00dc",
             "",
-            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32"+
-            "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"+
-            "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff"+
-            "\u5200\54\u5900\uffff\u0200\54",
+            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"
+                    + "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",
             "\1\u00de",
             "\1\u00df",
             "\1\u00e0",
             "",
             "\1\u00e1",
             "",
-            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32"+
-            "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"+
-            "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff"+
-            "\u5200\54\u5900\uffff\u0200\54",
+            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"
+                    + "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",
             "\1\u00e3",
             "\1\u00e4",
-            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32"+
-            "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"+
-            "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff"+
-            "\u5200\54\u5900\uffff\u0200\54",
+            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"
+                    + "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",
             "\1\u00e6",
             "",
             "\1\u00e7",
-            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32"+
-            "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"+
-            "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff"+
-            "\u5200\54\u5900\uffff\u0200\54",
-            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32"+
-            "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"+
-            "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff"+
-            "\u5200\54\u5900\uffff\u0200\54",
+            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"
+                    + "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",
+            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"
+                    + "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",
             "\1\u00ea",
-            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32"+
-            "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"+
-            "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff"+
-            "\u5200\54\u5900\uffff\u0200\54",
+            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"
+                    + "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",
             "\1\u00ec",
             "\1\u00ed",
             "\1\u00ee",
             "\1\u00ef",
-            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32"+
-            "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"+
-            "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff"+
-            "\u5200\54\u5900\uffff\u0200\54",
+            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"
+                    + "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",
             "\1\u00f1",
             "\1\u00f2",
             "\1\u00f3",
             "",
-            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32"+
-            "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"+
-            "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff"+
-            "\u5200\54\u5900\uffff\u0200\54",
+            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"
+                    + "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",
             "\1\u00f5",
             "\1\u00f6",
             "\1\u00f7",
@@ -3765,16 +3597,12 @@
             "\1\u00fe",
             "\1\u00ff",
             "\1\u0100",
-            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32"+
-            "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"+
-            "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff"+
-            "\u5200\54\u5900\uffff\u0200\54",
+            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"
+                    + "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",
             "\1\u0102",
             "\1\u0103",
-            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32"+
-            "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"+
-            "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff"+
-            "\u5200\54\u5900\uffff\u0200\54",
+            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"
+                    + "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",
             "\1\u0105",
             "",
             "\1\u0106",
@@ -3804,144 +3632,100 @@
             "\1\u0117",
             "",
             "\1\u0118",
-            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32"+
-            "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"+
-            "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff"+
-            "\u5200\54\u5900\uffff\u0200\54",
+            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"
+                    + "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",
             "\1\u011a",
             "\1\u011b",
-            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32"+
-            "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"+
-            "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff"+
-            "\u5200\54\u5900\uffff\u0200\54",
+            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"
+                    + "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",
             "\1\u011d",
             "\1\u011e",
-            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32"+
-            "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"+
-            "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff"+
-            "\u5200\54\u5900\uffff\u0200\54",
+            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"
+                    + "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",
             "\1\u0120",
             "\1\u0121",
             "\1\u0122",
             "\1\u0123",
             "",
-            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32"+
-            "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"+
-            "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff"+
-            "\u5200\54\u5900\uffff\u0200\54",
+            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"
+                    + "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",
             "\1\u0125",
             "",
-            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32"+
-            "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"+
-            "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff"+
-            "\u5200\54\u5900\uffff\u0200\54",
-            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32"+
-            "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"+
-            "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff"+
-            "\u5200\54\u5900\uffff\u0200\54",
+            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"
+                    + "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",
+            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"
+                    + "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",
             "\1\u0128",
-            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32"+
-            "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"+
-            "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff"+
-            "\u5200\54\u5900\uffff\u0200\54",
+            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"
+                    + "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",
             "\1\u012a",
             "\1\u012b",
             "\1\u012c",
             "\1\u012d",
-            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32"+
-            "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"+
-            "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff"+
-            "\u5200\54\u5900\uffff\u0200\54",
+            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"
+                    + "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",
             "\1\u012f",
             "\1\u0130",
             "\1\u0131",
-            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32"+
-            "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"+
-            "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff"+
-            "\u5200\54\u5900\uffff\u0200\54",
-            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32"+
-            "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"+
-            "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff"+
-            "\u5200\54\u5900\uffff\u0200\54",
-            "\1\54\13\uffff\12\54\7\uffff\5\54\1\u0134\24\54\4\uffff\1\54"+
-            "\1\uffff\32\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54"+
-            "\u1040\uffff\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e"+
-            "\54\u10d2\uffff\u5200\54\u5900\uffff\u0200\54",
-            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32"+
-            "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"+
-            "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff"+
-            "\u5200\54\u5900\uffff\u0200\54",
+            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"
+                    + "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",
+            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"
+                    + "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",
+            "\1\54\13\uffff\12\54\7\uffff\5\54\1\u0134\24\54\4\uffff\1\54" + "\1\uffff\32\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54"
+                    + "\u1040\uffff\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e" + "\54\u10d2\uffff\u5200\54\u5900\uffff\u0200\54",
+            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"
+                    + "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",
             "\1\u0137",
             "\1\u0138",
             "\1\u0139",
             "\1\u013a",
             "",
-            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32"+
-            "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"+
-            "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff"+
-            "\u5200\54\u5900\uffff\u0200\54",
-            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32"+
-            "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"+
-            "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff"+
-            "\u5200\54\u5900\uffff\u0200\54",
+            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"
+                    + "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",
+            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"
+                    + "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",
             "",
             "\1\u013d",
             "\1\u013e",
             "",
             "\1\u013f",
             "\1\u0140",
-            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32"+
-            "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"+
-            "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff"+
-            "\u5200\54\u5900\uffff\u0200\54",
+            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"
+                    + "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",
             "\1\u0142",
             "",
             "\1\u0143",
             "",
             "",
-            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32"+
-            "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"+
-            "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff"+
-            "\u5200\54\u5900\uffff\u0200\54",
+            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"
+                    + "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",
             "",
-            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32"+
-            "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"+
-            "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff"+
-            "\u5200\54\u5900\uffff\u0200\54",
+            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"
+                    + "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",
             "\1\u0146",
             "\1\u0147",
-            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32"+
-            "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"+
-            "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff"+
-            "\u5200\54\u5900\uffff\u0200\54",
+            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"
+                    + "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",
             "",
             "\1\u0149",
-            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32"+
-            "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"+
-            "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff"+
-            "\u5200\54\u5900\uffff\u0200\54",
+            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"
+                    + "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",
             "\1\u014b",
             "",
             "",
             "\1\u014c",
             "",
             "",
-            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32"+
-            "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"+
-            "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff"+
-            "\u5200\54\u5900\uffff\u0200\54",
-            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32"+
-            "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"+
-            "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff"+
-            "\u5200\54\u5900\uffff\u0200\54",
+            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"
+                    + "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",
+            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"
+                    + "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",
             "\1\u014f",
             "\1\u0150",
             "",
             "",
-            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32"+
-            "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"+
-            "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff"+
-            "\u5200\54\u5900\uffff\u0200\54",
+            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"
+                    + "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",
             "\1\u0152",
             "\1\u0153",
             "\1\u0154",
@@ -3962,75 +3746,48 @@
             "\1\u015c",
             "\1\u015d",
             "",
-            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32"+
-            "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"+
-            "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff"+
-            "\u5200\54\u5900\uffff\u0200\54",
-            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32"+
-            "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"+
-            "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff"+
-            "\u5200\54\u5900\uffff\u0200\54",
-            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32"+
-            "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"+
-            "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff"+
-            "\u5200\54\u5900\uffff\u0200\54",
+            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"
+                    + "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",
+            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"
+                    + "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",
+            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"
+                    + "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",
             "\1\u0161",
             "\1\u0162",
-            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32"+
-            "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"+
-            "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff"+
-            "\u5200\54\u5900\uffff\u0200\54",
+            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"
+                    + "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",
             "\1\u0164",
             "\1\u0165",
             "\1\u0166",
             "\1\u0167",
-            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32"+
-            "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"+
-            "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff"+
-            "\u5200\54\u5900\uffff\u0200\54",
-            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32"+
-            "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"+
-            "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff"+
-            "\u5200\54\u5900\uffff\u0200\54",
+            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"
+                    + "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",
+            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"
+                    + "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",
             "",
             "",
             "",
-            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32"+
-            "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"+
-            "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff"+
-            "\u5200\54\u5900\uffff\u0200\54",
-            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32"+
-            "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"+
-            "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff"+
-            "\u5200\54\u5900\uffff\u0200\54",
+            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"
+                    + "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",
+            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"
+                    + "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",
             "",
             "\1\u016c",
-            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32"+
-            "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"+
-            "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff"+
-            "\u5200\54\u5900\uffff\u0200\54",
-            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32"+
-            "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"+
-            "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff"+
-            "\u5200\54\u5900\uffff\u0200\54",
+            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"
+                    + "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",
+            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"
+                    + "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",
             "\1\u016f",
             "",
             "",
             "",
             "",
-            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32"+
-            "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"+
-            "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff"+
-            "\u5200\54\u5900\uffff\u0200\54",
+            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"
+                    + "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",
             "",
             "",
-            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32"+
-            "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"+
-            "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff"+
-            "\u5200\54\u5900\uffff\u0200\54",
-            "",
-            ""
-    };
+            "\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"
+                    + "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54", "", "" };
 
     static final short[] DFA15_eot = DFA.unpackEncodedString(DFA15_eotS);
     static final short[] DFA15_eof = DFA.unpackEncodedString(DFA15_eofS);
@@ -4043,7 +3800,7 @@
     static {
         int numStates = DFA15_transitionS.length;
         DFA15_transition = new short[numStates][];
-        for (int i=0; i<numStates; i++) {
+        for (int i = 0; i < numStates; i++) {
             DFA15_transition[i] = DFA.unpackEncodedString(DFA15_transitionS[i]);
         }
     }
@@ -4061,10 +3818,10 @@
             this.special = DFA15_special;
             this.transition = DFA15_transition;
         }
+
         public String getDescription() {
             return "1:1: Tokens : ( 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 | IntLiteral | StringLiteral | Identifier | WS | ML_COMMENT | LINE_COMMENT | LG | COMMENT | TEXT );";
         }
     }
- 
 
 }
\ No newline at end of file
diff --git a/plugins/org.eclipse.xpand/src/org/eclipse/internal/xpand2/parser/XpandParser.java b/plugins/org.eclipse.xpand/src/org/eclipse/internal/xpand2/parser/XpandParser.java
index 152ce22..c8786c2 100644
--- a/plugins/org.eclipse.xpand/src/org/eclipse/internal/xpand2/parser/XpandParser.java
+++ b/plugins/org.eclipse.xpand/src/org/eclipse/internal/xpand2/parser/XpandParser.java
@@ -1,196 +1,179 @@
-// $ANTLR 3.2 Sep 23, 2009 12:02:23 src/org/eclipse/internal/xpand2/parser/Xpand.g 2013-04-12 02:55:16
- 	
-package org.eclipse.internal.xpand2.parser; 
+// $ANTLR 3.2 Sep 23, 2009 12:02:23 src/org/eclipse/internal/xpand2/parser/Xpand.g 2015-11-18 22:36:05
 
-import java.util.List;
+package org.eclipse.internal.xpand2.parser;
 
-import org.antlr.runtime.BaseRecognizer;
-import org.antlr.runtime.BitSet;
-import org.antlr.runtime.CommonToken;
-import org.antlr.runtime.DFA;
-import org.antlr.runtime.IntStream;
-import org.antlr.runtime.MismatchedSetException;
-import org.antlr.runtime.NoViableAltException;
-import org.antlr.runtime.Parser;
-import org.antlr.runtime.RecognitionException;
-import org.antlr.runtime.RecognizerSharedState;
-import org.antlr.runtime.Token;
-import org.antlr.runtime.TokenStream;
+import org.eclipse.internal.xtend.expression.ast.*;
+import org.eclipse.internal.xpand2.ast.*;
 import org.eclipse.emf.common.util.BasicEList;
-import org.eclipse.internal.xpand2.ast.Advice;
-import org.eclipse.internal.xpand2.ast.Definition;
-import org.eclipse.internal.xpand2.ast.ErrorStatement;
-import org.eclipse.internal.xpand2.ast.ExpandStatement;
-import org.eclipse.internal.xpand2.ast.ExpressionStatement;
-import org.eclipse.internal.xpand2.ast.ExtensionImportDeclaration;
-import org.eclipse.internal.xpand2.ast.FileStatement;
-import org.eclipse.internal.xpand2.ast.ForEachStatement;
-import org.eclipse.internal.xpand2.ast.IfStatement;
-import org.eclipse.internal.xpand2.ast.ImportDeclaration;
-import org.eclipse.internal.xpand2.ast.LetStatement;
-import org.eclipse.internal.xpand2.ast.ProtectStatement;
-import org.eclipse.internal.xpand2.ast.Statement;
-import org.eclipse.internal.xpand2.ast.Template;
-import org.eclipse.internal.xtend.expression.ast.Case;
-import org.eclipse.internal.xtend.expression.ast.DeclaredParameter;
-import org.eclipse.internal.xtend.expression.ast.Expression;
-import org.eclipse.internal.xtend.expression.ast.FeatureCall;
-import org.eclipse.internal.xtend.expression.ast.GlobalVarExpression;
-import org.eclipse.internal.xtend.expression.ast.Identifier;
-import org.eclipse.internal.xtend.expression.ast.SyntaxElement;
+
+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 XpandParser extends Parser {
-    public static final String[] tokenNames = new String[] {
-        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "LG", "COMMENT", "TEXT", "StringLiteral", "IntLiteral", "Identifier", "EscapeSequence", "UnicodeEscape", "OctalEscape", "HexDigit", "Letter", "JavaIDDigit", "WS", "ML_COMMENT", "LINE_COMMENT", "RG", "'IMPORT'", "'EXTENSION'", "'AROUND'", "'('", "','", "'*'", "')'", "'FOR'", "'ENDAROUND'", "'::'", "'DEFINE'", "'ENDDEFINE'", "'-'", "'ERROR'", "'EXPAND'", "'FOREACH'", "'SEPARATOR'", "'ONFILECLOSE'", "'FILE'", "'ENDFILE'", "'AS'", "'ITERATOR'", "'ENDFOREACH'", "'IF'", "'ENDIF'", "'ELSEIF'", "'ELSE'", "'LET'", "'ENDLET'", "'PROTECT'", "'CSTART'", "'CEND'", "'ID'", "'DISABLE'", "'ENDPROTECT'", "'let'", "'='", "':'", "'->'", "'?'", "'if'", "'then'", "'else'", "'switch'", "'{'", "'case'", "'default'", "'}'", "'||'", "'&&'", "'implies'", "'=='", "'!='", "'>='", "'<='", "'>'", "'<'", "'+'", "'/'", "'!'", "'.'", "'GLOBALVAR'", "'new'", "'false'", "'true'", "'null'", "'typeSelect'", "'collect'", "'select'", "'selectFirst'", "'reject'", "'exists'", "'notExists'", "'sortBy'", "'forAll'", "'|'", "'Collection'", "'List'", "'Set'", "'['", "']'"
-    };
-    public static final int T__29=29;
-    public static final int T__28=28;
-    public static final int T__27=27;
-    public static final int T__26=26;
-    public static final int T__25=25;
-    public static final int T__24=24;
-    public static final int T__23=23;
-    public static final int T__22=22;
-    public static final int T__21=21;
-    public static final int T__20=20;
-    public static final int EOF=-1;
-    public static final int Identifier=9;
-    public static final int T__93=93;
-    public static final int T__94=94;
-    public static final int T__91=91;
-    public static final int T__92=92;
-    public static final int T__90=90;
-    public static final int COMMENT=5;
-    public static final int T__99=99;
-    public static final int T__98=98;
-    public static final int T__97=97;
-    public static final int T__96=96;
-    public static final int T__95=95;
-    public static final int T__80=80;
-    public static final int T__81=81;
-    public static final int T__82=82;
-    public static final int T__83=83;
-    public static final int LINE_COMMENT=18;
-    public static final int T__85=85;
-    public static final int T__84=84;
-    public static final int T__87=87;
-    public static final int T__86=86;
-    public static final int T__89=89;
-    public static final int T__88=88;
-    public static final int WS=16;
-    public static final int T__71=71;
-    public static final int T__72=72;
-    public static final int T__70=70;
-    public static final int JavaIDDigit=15;
-    public static final int T__76=76;
-    public static final int T__75=75;
-    public static final int T__74=74;
-    public static final int Letter=14;
-    public static final int T__73=73;
-    public static final int EscapeSequence=10;
-    public static final int T__79=79;
-    public static final int T__78=78;
-    public static final int T__77=77;
-    public static final int T__68=68;
-    public static final int T__69=69;
-    public static final int RG=19;
-    public static final int T__66=66;
-    public static final int T__67=67;
-    public static final int T__64=64;
-    public static final int T__65=65;
-    public static final int T__62=62;
-    public static final int T__63=63;
-    public static final int T__61=61;
-    public static final int T__60=60;
-    public static final int HexDigit=13;
-    public static final int T__55=55;
-    public static final int ML_COMMENT=17;
-    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__59=59;
-    public static final int T__50=50;
-    public static final int T__42=42;
-    public static final int T__43=43;
-    public static final int T__40=40;
-    public static final int T__41=41;
-    public static final int T__46=46;
-    public static final int T__47=47;
-    public static final int T__44=44;
-    public static final int T__45=45;
-    public static final int T__48=48;
-    public static final int IntLiteral=8;
-    public static final int T__49=49;
-    public static final int T__100=100;
-    public static final int TEXT=6;
-    public static final int StringLiteral=7;
-    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__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__37=37;
-    public static final int T__38=38;
-    public static final int T__39=39;
-    public static final int UnicodeEscape=11;
-    public static final int OctalEscape=12;
-    public static final int LG=4;
+    public static final String[] tokenNames = new String[] { "<invalid>", "<EOR>", "<DOWN>", "<UP>", "LG", "COMMENT", "TEXT", "StringLiteral", "IntLiteral",
+            "Identifier", "EscapeSequence", "UnicodeEscape", "OctalEscape", "HexDigit", "Letter", "JavaIDDigit", "WS", "ML_COMMENT", "LINE_COMMENT", "RG",
+            "'IMPORT'", "'EXTENSION'", "'AROUND'", "'('", "','", "'*'", "')'", "'FOR'", "'ENDAROUND'", "'::'", "'DEFINE'", "'ENDDEFINE'", "'-'", "'ERROR'",
+            "'EXPAND'", "'FOREACH'", "'SEPARATOR'", "'ONFILECLOSE'", "'FILE'", "'ENDFILE'", "'AS'", "'ITERATOR'", "'ENDFOREACH'", "'IF'", "'ENDIF'",
+            "'ELSEIF'", "'ELSE'", "'LET'", "'ENDLET'", "'PROTECT'", "'CSTART'", "'CEND'", "'ID'", "'DISABLE'", "'ENDPROTECT'", "'let'", "'='", "':'", "'->'",
+            "'?'", "'if'", "'then'", "'else'", "'switch'", "'{'", "'case'", "'default'", "'}'", "'||'", "'&&'", "'implies'", "'=='", "'!='", "'>='", "'<='",
+            "'>'", "'<'", "'+'", "'/'", "'!'", "'.'", "'GLOBALVAR'", "'new'", "'false'", "'true'", "'null'", "'typeSelect'", "'collect'", "'select'",
+            "'selectFirst'", "'reject'", "'exists'", "'notExists'", "'sortBy'", "'forAll'", "'|'", "'Collection'", "'List'", "'Set'", "'['", "']'" };
+    public static final int T__50 = 50;
+    public static final int TEXT = 6;
+    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 HexDigit = 13;
+    public static final int Letter = 14;
+    public static final int LINE_COMMENT = 18;
+    public static final int StringLiteral = 7;
+    public static final int RG = 19;
+    public static final int T__66 = 66;
+    public static final int T__67 = 67;
+    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 OctalEscape = 12;
+    public static final int JavaIDDigit = 15;
+    public static final int T__63 = 63;
+    public static final int T__64 = 64;
+    public static final int T__65 = 65;
+    public static final int COMMENT = 5;
+    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 UnicodeEscape = 11;
+    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 LG = 4;
+    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__94 = 94;
+    public static final int T__90 = 90;
+    public static final int Identifier = 9;
+    public static final int T__99 = 99;
+    public static final int IntLiteral = 8;
+    public static final int T__95 = 95;
+    public static final int T__96 = 96;
+    public static final int T__97 = 97;
+    public static final int T__98 = 98;
+    public static final int T__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__70 = 70;
+    public static final int T__71 = 71;
+    public static final int T__72 = 72;
+    public static final int T__77 = 77;
+    public static final int T__78 = 78;
+    public static final int T__79 = 79;
+    public static final int T__73 = 73;
+    public static final int WS = 16;
+    public static final int EOF = -1;
+    public static final int T__74 = 74;
+    public static final int T__75 = 75;
+    public static final int T__76 = 76;
+    public static final int T__80 = 80;
+    public static final int T__81 = 81;
+    public static final int T__82 = 82;
+    public static final int T__83 = 83;
+    public static final int EscapeSequence = 10;
+    public static final int ML_COMMENT = 17;
+    public static final int T__88 = 88;
+    public static final int T__89 = 89;
+    public static final int T__84 = 84;
+    public static final int T__85 = 85;
+    public static final int T__86 = 86;
+    public static final int T__87 = 87;
 
     // delegates
     // delegators
 
+    public XpandParser(TokenStream input) {
+        this(input, new RecognizerSharedState());
+    }
 
-        public XpandParser(TokenStream input) {
-            this(input, new RecognizerSharedState());
+    public XpandParser(TokenStream input, RecognizerSharedState state) {
+        super(input, state);
+
+    }
+
+    public String[] getTokenNames() {
+        return XpandParser.tokenNames;
+    }
+
+    public String getGrammarFileName() {
+        return "src/org/eclipse/internal/xpand2/parser/Xpand.g";
+    }
+
+    private XpandFactory factory;
+
+    public XpandParser(final TokenStream stream, final XpandFactory factory) {
+        this(stream);
+        this.factory = factory != null ? factory : new XpandFactory("nofile");
+        ;
+    }
+
+    protected Identifier id(final Token t) {
+        if (t == null)
+            return null;
+        final CommonToken ct = (CommonToken) t;
+        final Identifier id = new Identifier(t.getText());
+        id.setStart(ct.getStartIndex());
+        id.setEnd(ct.getStopIndex());
+        id.setLine(ct.getLine());
+        return id;
+    }
+
+    private static final <T extends SyntaxElement> void addLocation(final T ele, final CommonToken start, final CommonToken end) {
+        if (ele != null) {
+            ele.setStart(start != null ? start.getStartIndex() : 0);
+            ele.setLine(start != null ? start.getLine() : 0);
+            ele.setEnd(end != null ? (end.getStopIndex() + 1) : -1);
         }
-        public XpandParser(TokenStream input, RecognizerSharedState state) {
-            super(input, state);
-             
-        }
-        
-
-    public String[] getTokenNames() { return XpandParser.tokenNames; }
-    public String getGrammarFileName() { return "src/org/eclipse/internal/xpand2/parser/Xpand.g"; }
-
-
-    	private XpandFactory factory;
-    	
-    	public XpandParser(final TokenStream stream, final XpandFactory factory) {
-    		this(stream);
-    		this.factory = factory != null ? factory : new XpandFactory("nofile");;
-    	}
-    	
-    	protected Identifier id(final Token t) {
-    		if (t == null)
-    			return null;
-    		final CommonToken ct = (CommonToken) t;
-    		final Identifier id = new Identifier(t.getText());
-    		id.setStart(ct.getStartIndex());
-    		id.setEnd(ct.getStopIndex());
-    		id.setLine(ct.getLine());
-    		return id;
-    	}
-
-        private static final <T extends SyntaxElement> void addLocation(final T ele, final CommonToken start, final CommonToken end) {
-            if (ele != null) {
-                ele.setStart(start != null ? start.getStartIndex() : 0);
-                ele.setLine(start != null ? start.getLine() : 0);
-                ele.setEnd(end != null ? (end.getStopIndex() + 1) : -1);
-            }
-        }
-
-
-
+    }
 
     // $ANTLR start "template"
-    // src/org/eclipse/internal/xpand2/parser/Xpand.g:53:1: template returns [Template t] : ( LG ( COMMENT txt= text )* ( (imp= anImport | extimp= anExtensionImport ) txt= text ( COMMENT txt= text )* )* ( (d= define | a= around ) txt= text ( COMMENT txt= text )* )* | );
+    // src/org/eclipse/internal/xpand2/parser/Xpand.g:53:1: template returns [Template t] : ( LG ( COMMENT txt= text )*
+    // ( (imp= anImport | extimp= anExtensionImport ) txt= text ( COMMENT txt= text )* )* ( (d= define | a= around )
+    // txt= text ( COMMENT txt= text )* )* | );
     public final Template template() throws RecognitionException {
         Template t = null;
 
@@ -204,396 +187,414 @@
 
         Advice a = null;
 
-
-         final CommonToken startToken = (CommonToken) input.LT(1);
+        final CommonToken startToken = (CommonToken) input.LT(1);
         final List<ImportDeclaration> imports = new BasicEList<ImportDeclaration>();
         final List<ExtensionImportDeclaration> extensions = new BasicEList<ExtensionImportDeclaration>();
         final List<Definition> defines = new BasicEList<Definition>();
         final List<Advice> advices = new BasicEList<Advice>();
 
         try {
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:61:5: ( LG ( COMMENT txt= text )* ( (imp= anImport | extimp= anExtensionImport ) txt= text ( COMMENT txt= text )* )* ( (d= define | a= around ) txt= text ( COMMENT txt= text )* )* | )
-            int alt8=2;
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:61:5: ( LG ( COMMENT txt= text )* ( (imp= anImport |
+            // extimp= anExtensionImport ) txt= text ( COMMENT txt= text )* )* ( (d= define | a= around ) txt= text (
+            // COMMENT txt= text )* )* | )
+            int alt8 = 2;
             int LA8_0 = input.LA(1);
 
-            if ( (LA8_0==LG) ) {
-                alt8=1;
-            }
-            else if ( (LA8_0==EOF) ) {
-                alt8=2;
-            }
-            else {
-                if (state.backtracking>0) {state.failed=true; return t;}
-                NoViableAltException nvae =
-                    new NoViableAltException("", 8, 0, input);
+            if ((LA8_0 == LG)) {
+                alt8 = 1;
+            } else if ((LA8_0 == EOF)) {
+                alt8 = 2;
+            } else {
+                if (state.backtracking > 0) {
+                    state.failed = true;
+                    return t;
+                }
+                NoViableAltException nvae = new NoViableAltException("", 8, 0, input);
 
                 throw nvae;
             }
             switch (alt8) {
-                case 1 :
-                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:62:2: LG ( COMMENT txt= text )* ( (imp= anImport | extimp= anExtensionImport ) txt= text ( COMMENT txt= text )* )* ( (d= define | a= around ) txt= text ( COMMENT txt= text )* )*
+            case 1:
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:62:2: LG ( COMMENT txt= text )* ( (imp= anImport | extimp=
+            // anExtensionImport ) txt= text ( COMMENT txt= text )* )* ( (d= define | a= around ) txt= text ( COMMENT
+            // txt= text )* )*
+            {
+                match(input, LG, FOLLOW_LG_in_template55);
+                if (state.failed)
+                    return t;
+                // src/org/eclipse/internal/xpand2/parser/Xpand.g:63:3: ( COMMENT txt= text )*
+                loop1: do {
+                    int alt1 = 2;
+                    int LA1_0 = input.LA(1);
+
+                    if ((LA1_0 == COMMENT)) {
+                        alt1 = 1;
+                    }
+
+                    switch (alt1) {
+                    case 1:
+                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:63:4: COMMENT txt= text
                     {
-                    match(input,LG,FOLLOW_LG_in_template55); if (state.failed) return t;
-                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:63:3: ( COMMENT txt= text )*
-                    loop1:
-                    do {
-                        int alt1=2;
-                        int LA1_0 = input.LA(1);
+                        match(input, COMMENT, FOLLOW_COMMENT_in_template60);
+                        if (state.failed)
+                            return t;
+                        pushFollow(FOLLOW_text_in_template64);
+                        txt = text();
 
-                        if ( (LA1_0==COMMENT) ) {
-                            alt1=1;
-                        }
-
-
-                        switch (alt1) {
-                    	case 1 :
-                    	    // src/org/eclipse/internal/xpand2/parser/Xpand.g:63:4: COMMENT txt= text
-                    	    {
-                    	    match(input,COMMENT,FOLLOW_COMMENT_in_template60); if (state.failed) return t;
-                    	    pushFollow(FOLLOW_text_in_template64);
-                    	    txt=text();
-
-                    	    state._fsp--;
-                    	    if (state.failed) return t;
-
-                    	    }
-                    	    break;
-
-                    	default :
-                    	    break loop1;
-                        }
-                    } while (true);
-
-                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:64:3: ( (imp= anImport | extimp= anExtensionImport ) txt= text ( COMMENT txt= text )* )*
-                    loop4:
-                    do {
-                        int alt4=2;
-                        int LA4_0 = input.LA(1);
-
-                        if ( ((LA4_0>=20 && LA4_0<=21)) ) {
-                            alt4=1;
-                        }
-
-
-                        switch (alt4) {
-                    	case 1 :
-                    	    // src/org/eclipse/internal/xpand2/parser/Xpand.g:64:4: (imp= anImport | extimp= anExtensionImport ) txt= text ( COMMENT txt= text )*
-                    	    {
-                    	    // src/org/eclipse/internal/xpand2/parser/Xpand.g:64:4: (imp= anImport | extimp= anExtensionImport )
-                    	    int alt2=2;
-                    	    int LA2_0 = input.LA(1);
-
-                    	    if ( (LA2_0==20) ) {
-                    	        alt2=1;
-                    	    }
-                    	    else if ( (LA2_0==21) ) {
-                    	        alt2=2;
-                    	    }
-                    	    else {
-                    	        if (state.backtracking>0) {state.failed=true; return t;}
-                    	        NoViableAltException nvae =
-                    	            new NoViableAltException("", 2, 0, input);
-
-                    	        throw nvae;
-                    	    }
-                    	    switch (alt2) {
-                    	        case 1 :
-                    	            // src/org/eclipse/internal/xpand2/parser/Xpand.g:64:5: imp= anImport
-                    	            {
-                    	            pushFollow(FOLLOW_anImport_in_template74);
-                    	            imp=anImport();
-
-                    	            state._fsp--;
-                    	            if (state.failed) return t;
-                    	            if ( state.backtracking==0 ) {
-                    	              if (imp!=null)imports.add(imp);
-                    	            }
-
-                    	            }
-                    	            break;
-                    	        case 2 :
-                    	            // src/org/eclipse/internal/xpand2/parser/Xpand.g:64:55: extimp= anExtensionImport
-                    	            {
-                    	            pushFollow(FOLLOW_anExtensionImport_in_template83);
-                    	            extimp=anExtensionImport();
-
-                    	            state._fsp--;
-                    	            if (state.failed) return t;
-                    	            if ( state.backtracking==0 ) {
-                    	              if (extimp!=null) extensions.add(extimp);
-                    	            }
-
-                    	            }
-                    	            break;
-
-                    	    }
-
-                    	    pushFollow(FOLLOW_text_in_template90);
-                    	    txt=text();
-
-                    	    state._fsp--;
-                    	    if (state.failed) return t;
-                    	    // src/org/eclipse/internal/xpand2/parser/Xpand.g:64:134: ( COMMENT txt= text )*
-                    	    loop3:
-                    	    do {
-                    	        int alt3=2;
-                    	        int LA3_0 = input.LA(1);
-
-                    	        if ( (LA3_0==COMMENT) ) {
-                    	            alt3=1;
-                    	        }
-
-
-                    	        switch (alt3) {
-                    	    	case 1 :
-                    	    	    // src/org/eclipse/internal/xpand2/parser/Xpand.g:64:135: COMMENT txt= text
-                    	    	    {
-                    	    	    match(input,COMMENT,FOLLOW_COMMENT_in_template93); if (state.failed) return t;
-                    	    	    pushFollow(FOLLOW_text_in_template97);
-                    	    	    txt=text();
-
-                    	    	    state._fsp--;
-                    	    	    if (state.failed) return t;
-
-                    	    	    }
-                    	    	    break;
-
-                    	    	default :
-                    	    	    break loop3;
-                    	        }
-                    	    } while (true);
-
-
-                    	    }
-                    	    break;
-
-                    	default :
-                    	    break loop4;
-                        }
-                    } while (true);
-
-                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:65:3: ( (d= define | a= around ) txt= text ( COMMENT txt= text )* )*
-                    loop7:
-                    do {
-                        int alt7=2;
-                        int LA7_0 = input.LA(1);
-
-                        if ( (LA7_0==22||LA7_0==30) ) {
-                            alt7=1;
-                        }
-
-
-                        switch (alt7) {
-                    	case 1 :
-                    	    // src/org/eclipse/internal/xpand2/parser/Xpand.g:65:4: (d= define | a= around ) txt= text ( COMMENT txt= text )*
-                    	    {
-                    	    // src/org/eclipse/internal/xpand2/parser/Xpand.g:65:4: (d= define | a= around )
-                    	    int alt5=2;
-                    	    int LA5_0 = input.LA(1);
-
-                    	    if ( (LA5_0==30) ) {
-                    	        alt5=1;
-                    	    }
-                    	    else if ( (LA5_0==22) ) {
-                    	        alt5=2;
-                    	    }
-                    	    else {
-                    	        if (state.backtracking>0) {state.failed=true; return t;}
-                    	        NoViableAltException nvae =
-                    	            new NoViableAltException("", 5, 0, input);
-
-                    	        throw nvae;
-                    	    }
-                    	    switch (alt5) {
-                    	        case 1 :
-                    	            // src/org/eclipse/internal/xpand2/parser/Xpand.g:65:5: d= define
-                    	            {
-                    	            pushFollow(FOLLOW_define_in_template109);
-                    	            d=define();
-
-                    	            state._fsp--;
-                    	            if (state.failed) return t;
-                    	            if ( state.backtracking==0 ) {
-                    	              if (d!=null) defines.add(d);
-                    	            }
-
-                    	            }
-                    	            break;
-                    	        case 2 :
-                    	            // src/org/eclipse/internal/xpand2/parser/Xpand.g:65:46: a= around
-                    	            {
-                    	            pushFollow(FOLLOW_around_in_template116);
-                    	            a=around();
-
-                    	            state._fsp--;
-                    	            if (state.failed) return t;
-                    	            if ( state.backtracking==0 ) {
-                    	              if (a!=null) advices.add(a);
-                    	            }
-
-                    	            }
-                    	            break;
-
-                    	    }
-
-                    	    pushFollow(FOLLOW_text_in_template122);
-                    	    txt=text();
-
-                    	    state._fsp--;
-                    	    if (state.failed) return t;
-                    	    // src/org/eclipse/internal/xpand2/parser/Xpand.g:65:95: ( COMMENT txt= text )*
-                    	    loop6:
-                    	    do {
-                    	        int alt6=2;
-                    	        int LA6_0 = input.LA(1);
-
-                    	        if ( (LA6_0==COMMENT) ) {
-                    	            alt6=1;
-                    	        }
-
-
-                    	        switch (alt6) {
-                    	    	case 1 :
-                    	    	    // src/org/eclipse/internal/xpand2/parser/Xpand.g:65:96: COMMENT txt= text
-                    	    	    {
-                    	    	    match(input,COMMENT,FOLLOW_COMMENT_in_template125); if (state.failed) return t;
-                    	    	    pushFollow(FOLLOW_text_in_template129);
-                    	    	    txt=text();
-
-                    	    	    state._fsp--;
-                    	    	    if (state.failed) return t;
-
-                    	    	    }
-                    	    	    break;
-
-                    	    	default :
-                    	    	    break loop6;
-                    	        }
-                    	    } while (true);
-
-
-                    	    }
-                    	    break;
-
-                    	default :
-                    	    break loop7;
-                        }
-                    } while (true);
-
-                    if ( state.backtracking==0 ) {
-                      t = factory.createTemplate(imports,extensions,defines,advices);
-                    }
+                        state._fsp--;
+                        if (state.failed)
+                            return t;
 
                     }
-                    break;
-                case 2 :
-                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:68:1: 
+                        break;
+
+                    default:
+                        break loop1;
+                    }
+                } while (true);
+
+                // src/org/eclipse/internal/xpand2/parser/Xpand.g:64:3: ( (imp= anImport | extimp= anExtensionImport )
+                // txt= text ( COMMENT txt= text )* )*
+                loop4: do {
+                    int alt4 = 2;
+                    int LA4_0 = input.LA(1);
+
+                    if (((LA4_0 >= 20 && LA4_0 <= 21))) {
+                        alt4 = 1;
+                    }
+
+                    switch (alt4) {
+                    case 1:
+                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:64:4: (imp= anImport | extimp= anExtensionImport )
+                    // txt= text ( COMMENT txt= text )*
                     {
+                        // src/org/eclipse/internal/xpand2/parser/Xpand.g:64:4: (imp= anImport | extimp=
+                        // anExtensionImport )
+                        int alt2 = 2;
+                        int LA2_0 = input.LA(1);
+
+                        if ((LA2_0 == 20)) {
+                            alt2 = 1;
+                        } else if ((LA2_0 == 21)) {
+                            alt2 = 2;
+                        } else {
+                            if (state.backtracking > 0) {
+                                state.failed = true;
+                                return t;
+                            }
+                            NoViableAltException nvae = new NoViableAltException("", 2, 0, input);
+
+                            throw nvae;
+                        }
+                        switch (alt2) {
+                        case 1:
+                        // src/org/eclipse/internal/xpand2/parser/Xpand.g:64:5: imp= anImport
+                        {
+                            pushFollow(FOLLOW_anImport_in_template74);
+                            imp = anImport();
+
+                            state._fsp--;
+                            if (state.failed)
+                                return t;
+                            if (state.backtracking == 0) {
+                                if (imp != null)
+                                    imports.add(imp);
+                            }
+
+                        }
+                            break;
+                        case 2:
+                        // src/org/eclipse/internal/xpand2/parser/Xpand.g:64:55: extimp= anExtensionImport
+                        {
+                            pushFollow(FOLLOW_anExtensionImport_in_template83);
+                            extimp = anExtensionImport();
+
+                            state._fsp--;
+                            if (state.failed)
+                                return t;
+                            if (state.backtracking == 0) {
+                                if (extimp != null)
+                                    extensions.add(extimp);
+                            }
+
+                        }
+                            break;
+
+                        }
+
+                        pushFollow(FOLLOW_text_in_template90);
+                        txt = text();
+
+                        state._fsp--;
+                        if (state.failed)
+                            return t;
+                        // src/org/eclipse/internal/xpand2/parser/Xpand.g:64:134: ( COMMENT txt= text )*
+                        loop3: do {
+                            int alt3 = 2;
+                            int LA3_0 = input.LA(1);
+
+                            if ((LA3_0 == COMMENT)) {
+                                alt3 = 1;
+                            }
+
+                            switch (alt3) {
+                            case 1:
+                            // src/org/eclipse/internal/xpand2/parser/Xpand.g:64:135: COMMENT txt= text
+                            {
+                                match(input, COMMENT, FOLLOW_COMMENT_in_template93);
+                                if (state.failed)
+                                    return t;
+                                pushFollow(FOLLOW_text_in_template97);
+                                txt = text();
+
+                                state._fsp--;
+                                if (state.failed)
+                                    return t;
+
+                            }
+                                break;
+
+                            default:
+                                break loop3;
+                            }
+                        } while (true);
+
                     }
-                    break;
+                        break;
+
+                    default:
+                        break loop4;
+                    }
+                } while (true);
+
+                // src/org/eclipse/internal/xpand2/parser/Xpand.g:65:3: ( (d= define | a= around ) txt= text ( COMMENT
+                // txt= text )* )*
+                loop7: do {
+                    int alt7 = 2;
+                    int LA7_0 = input.LA(1);
+
+                    if ((LA7_0 == 22 || LA7_0 == 30)) {
+                        alt7 = 1;
+                    }
+
+                    switch (alt7) {
+                    case 1:
+                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:65:4: (d= define | a= around ) txt= text ( COMMENT
+                    // txt= text )*
+                    {
+                        // src/org/eclipse/internal/xpand2/parser/Xpand.g:65:4: (d= define | a= around )
+                        int alt5 = 2;
+                        int LA5_0 = input.LA(1);
+
+                        if ((LA5_0 == 30)) {
+                            alt5 = 1;
+                        } else if ((LA5_0 == 22)) {
+                            alt5 = 2;
+                        } else {
+                            if (state.backtracking > 0) {
+                                state.failed = true;
+                                return t;
+                            }
+                            NoViableAltException nvae = new NoViableAltException("", 5, 0, input);
+
+                            throw nvae;
+                        }
+                        switch (alt5) {
+                        case 1:
+                        // src/org/eclipse/internal/xpand2/parser/Xpand.g:65:5: d= define
+                        {
+                            pushFollow(FOLLOW_define_in_template109);
+                            d = define();
+
+                            state._fsp--;
+                            if (state.failed)
+                                return t;
+                            if (state.backtracking == 0) {
+                                if (d != null)
+                                    defines.add(d);
+                            }
+
+                        }
+                            break;
+                        case 2:
+                        // src/org/eclipse/internal/xpand2/parser/Xpand.g:65:46: a= around
+                        {
+                            pushFollow(FOLLOW_around_in_template116);
+                            a = around();
+
+                            state._fsp--;
+                            if (state.failed)
+                                return t;
+                            if (state.backtracking == 0) {
+                                if (a != null)
+                                    advices.add(a);
+                            }
+
+                        }
+                            break;
+
+                        }
+
+                        pushFollow(FOLLOW_text_in_template122);
+                        txt = text();
+
+                        state._fsp--;
+                        if (state.failed)
+                            return t;
+                        // src/org/eclipse/internal/xpand2/parser/Xpand.g:65:95: ( COMMENT txt= text )*
+                        loop6: do {
+                            int alt6 = 2;
+                            int LA6_0 = input.LA(1);
+
+                            if ((LA6_0 == COMMENT)) {
+                                alt6 = 1;
+                            }
+
+                            switch (alt6) {
+                            case 1:
+                            // src/org/eclipse/internal/xpand2/parser/Xpand.g:65:96: COMMENT txt= text
+                            {
+                                match(input, COMMENT, FOLLOW_COMMENT_in_template125);
+                                if (state.failed)
+                                    return t;
+                                pushFollow(FOLLOW_text_in_template129);
+                                txt = text();
+
+                                state._fsp--;
+                                if (state.failed)
+                                    return t;
+
+                            }
+                                break;
+
+                            default:
+                                break loop6;
+                            }
+                        } while (true);
+
+                    }
+                        break;
+
+                    default:
+                        break loop7;
+                    }
+                } while (true);
+
+                if (state.backtracking == 0) {
+                    t = factory.createTemplate(imports, extensions, defines, advices);
+                }
 
             }
-            if ( state.backtracking==0 ) {
-               addLocation(t, startToken, /*endToken*/ (CommonToken) input.LT(-1)); 
+                break;
+            case 2:
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:68:1:
+            {
             }
-        }
-        catch (RecognitionException re) {
+                break;
+
+            }
+            if (state.backtracking == 0) {
+                addLocation(t, startToken, /* endToken */(CommonToken) input.LT(-1));
+            }
+        } catch (RecognitionException re) {
             reportError(re);
-            recover(input,re);
-        }
-        finally {
+            recover(input, re);
+        } finally {
         }
         return t;
     }
+
     // $ANTLR end "template"
 
-
     // $ANTLR start "anImport"
-    // src/org/eclipse/internal/xpand2/parser/Xpand.g:71:1: anImport returns [ImportDeclaration imp] : 'IMPORT' id= simpleType ;
+    // src/org/eclipse/internal/xpand2/parser/Xpand.g:71:1: anImport returns [ImportDeclaration imp] : 'IMPORT' id=
+    // simpleType ;
     public final ImportDeclaration anImport() throws RecognitionException {
         ImportDeclaration imp = null;
 
         Identifier id = null;
 
-
-         final CommonToken startToken = (CommonToken) input.LT(1); 
+        final CommonToken startToken = (CommonToken) input.LT(1);
         try {
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:74:1: ( 'IMPORT' id= simpleType )
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:75:2: 'IMPORT' id= simpleType
             {
-            match(input,20,FOLLOW_20_in_anImport165); if (state.failed) return imp;
-            pushFollow(FOLLOW_simpleType_in_anImport169);
-            id=simpleType();
+                match(input, 20, FOLLOW_20_in_anImport165);
+                if (state.failed)
+                    return imp;
+                pushFollow(FOLLOW_simpleType_in_anImport169);
+                id = simpleType();
 
-            state._fsp--;
-            if (state.failed) return imp;
-            if ( state.backtracking==0 ) {
-              imp = factory.createImportDeclaration(id);
-            }
+                state._fsp--;
+                if (state.failed)
+                    return imp;
+                if (state.backtracking == 0) {
+                    imp = factory.createImportDeclaration(id);
+                }
 
             }
 
-            if ( state.backtracking==0 ) {
-               addLocation(imp, startToken, /*endToken*/ (CommonToken) input.LT(-1)); 
+            if (state.backtracking == 0) {
+                addLocation(imp, startToken, /* endToken */(CommonToken) input.LT(-1));
             }
-        }
-        catch (RecognitionException re) {
+        } catch (RecognitionException re) {
             reportError(re);
-            recover(input,re);
-        }
-        finally {
+            recover(input, re);
+        } finally {
         }
         return imp;
     }
+
     // $ANTLR end "anImport"
 
-
     // $ANTLR start "anExtensionImport"
-    // src/org/eclipse/internal/xpand2/parser/Xpand.g:79:1: anExtensionImport returns [ExtensionImportDeclaration imp] : 'EXTENSION' id= simpleType ;
+    // src/org/eclipse/internal/xpand2/parser/Xpand.g:79:1: anExtensionImport returns [ExtensionImportDeclaration imp] :
+    // 'EXTENSION' id= simpleType ;
     public final ExtensionImportDeclaration anExtensionImport() throws RecognitionException {
         ExtensionImportDeclaration imp = null;
 
         Identifier id = null;
 
-
-         final CommonToken startToken = (CommonToken) input.LT(1); 
+        final CommonToken startToken = (CommonToken) input.LT(1);
         try {
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:82:1: ( 'EXTENSION' id= simpleType )
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:83:2: 'EXTENSION' id= simpleType
             {
-            match(input,21,FOLLOW_21_in_anExtensionImport194); if (state.failed) return imp;
-            pushFollow(FOLLOW_simpleType_in_anExtensionImport198);
-            id=simpleType();
+                match(input, 21, FOLLOW_21_in_anExtensionImport194);
+                if (state.failed)
+                    return imp;
+                pushFollow(FOLLOW_simpleType_in_anExtensionImport198);
+                id = simpleType();
 
-            state._fsp--;
-            if (state.failed) return imp;
-            if ( state.backtracking==0 ) {
-              imp = factory.createExtensionImportDeclaration(id);
-            }
+                state._fsp--;
+                if (state.failed)
+                    return imp;
+                if (state.backtracking == 0) {
+                    imp = factory.createExtensionImportDeclaration(id);
+                }
 
             }
 
-            if ( state.backtracking==0 ) {
-               addLocation(imp, startToken, /*endToken*/ (CommonToken) input.LT(-1)); 
+            if (state.backtracking == 0) {
+                addLocation(imp, startToken, /* endToken */(CommonToken) input.LT(-1));
             }
-        }
-        catch (RecognitionException re) {
+        } catch (RecognitionException re) {
             reportError(re);
-            recover(input,re);
-        }
-        finally {
+            recover(input, re);
+        } finally {
         }
         return imp;
     }
+
     // $ANTLR end "anExtensionImport"
 
-
     // $ANTLR start "around"
-    // src/org/eclipse/internal/xpand2/parser/Xpand.g:87:1: around returns [Advice a] : 'AROUND' pc= pointcut ( '(' (p= declaredParameterList ( ',' wildparams= '*' )? | wildparams= '*' ) ')' )? 'FOR' t= type s= sequence 'ENDAROUND' ;
+    // src/org/eclipse/internal/xpand2/parser/Xpand.g:87:1: around returns [Advice a] : 'AROUND' pc= pointcut ( '(' (p=
+    // declaredParameterList ( ',' wildparams= '*' )? | wildparams= '*' ) ')' )? 'FOR' t= type s= sequence 'ENDAROUND' ;
     public final Advice around() throws RecognitionException {
         Advice a = null;
 
-        Token wildparams=null;
+        Token wildparams = null;
         Identifier pc = null;
 
         List<DeclaredParameter> p = null;
@@ -602,275 +603,303 @@
 
         List<Statement> s = null;
 
-
-         final CommonToken startToken = (CommonToken) input.LT(1); 
+        final CommonToken startToken = (CommonToken) input.LT(1);
         try {
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:90:1: ( 'AROUND' pc= pointcut ( '(' (p= declaredParameterList ( ',' wildparams= '*' )? | wildparams= '*' ) ')' )? 'FOR' t= type s= sequence 'ENDAROUND' )
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:91:4: 'AROUND' pc= pointcut ( '(' (p= declaredParameterList ( ',' wildparams= '*' )? | wildparams= '*' ) ')' )? 'FOR' t= type s= sequence 'ENDAROUND'
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:90:1: ( 'AROUND' pc= pointcut ( '(' (p=
+            // declaredParameterList ( ',' wildparams= '*' )? | wildparams= '*' ) ')' )? 'FOR' t= type s= sequence
+            // 'ENDAROUND' )
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:91:4: 'AROUND' pc= pointcut ( '(' (p=
+            // declaredParameterList ( ',' wildparams= '*' )? | wildparams= '*' ) ')' )? 'FOR' t= type s= sequence
+            // 'ENDAROUND'
             {
-            match(input,22,FOLLOW_22_in_around225); if (state.failed) return a;
-            pushFollow(FOLLOW_pointcut_in_around229);
-            pc=pointcut();
+                match(input, 22, FOLLOW_22_in_around225);
+                if (state.failed)
+                    return a;
+                pushFollow(FOLLOW_pointcut_in_around229);
+                pc = pointcut();
 
-            state._fsp--;
-            if (state.failed) return a;
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:92:4: ( '(' (p= declaredParameterList ( ',' wildparams= '*' )? | wildparams= '*' ) ')' )?
-            int alt11=2;
-            int LA11_0 = input.LA(1);
+                state._fsp--;
+                if (state.failed)
+                    return a;
+                // src/org/eclipse/internal/xpand2/parser/Xpand.g:92:4: ( '(' (p= declaredParameterList ( ','
+                // wildparams= '*' )? | wildparams= '*' ) ')' )?
+                int alt11 = 2;
+                int LA11_0 = input.LA(1);
 
-            if ( (LA11_0==23) ) {
-                alt11=1;
-            }
-            switch (alt11) {
-                case 1 :
-                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:92:5: '(' (p= declaredParameterList ( ',' wildparams= '*' )? | wildparams= '*' ) ')'
-                    {
-                    match(input,23,FOLLOW_23_in_around235); if (state.failed) return a;
-                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:92:9: (p= declaredParameterList ( ',' wildparams= '*' )? | wildparams= '*' )
-                    int alt10=2;
+                if ((LA11_0 == 23)) {
+                    alt11 = 1;
+                }
+                switch (alt11) {
+                case 1:
+                // src/org/eclipse/internal/xpand2/parser/Xpand.g:92:5: '(' (p= declaredParameterList ( ',' wildparams=
+                // '*' )? | wildparams= '*' ) ')'
+                {
+                    match(input, 23, FOLLOW_23_in_around235);
+                    if (state.failed)
+                        return a;
+                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:92:9: (p= declaredParameterList ( ',' wildparams=
+                    // '*' )? | wildparams= '*' )
+                    int alt10 = 2;
                     int LA10_0 = input.LA(1);
 
-                    if ( (LA10_0==Identifier||(LA10_0>=96 && LA10_0<=98)) ) {
-                        alt10=1;
-                    }
-                    else if ( (LA10_0==25) ) {
-                        alt10=2;
-                    }
-                    else {
-                        if (state.backtracking>0) {state.failed=true; return a;}
-                        NoViableAltException nvae =
-                            new NoViableAltException("", 10, 0, input);
+                    if ((LA10_0 == Identifier || (LA10_0 >= 96 && LA10_0 <= 98))) {
+                        alt10 = 1;
+                    } else if ((LA10_0 == 25)) {
+                        alt10 = 2;
+                    } else {
+                        if (state.backtracking > 0) {
+                            state.failed = true;
+                            return a;
+                        }
+                        NoViableAltException nvae = new NoViableAltException("", 10, 0, input);
 
                         throw nvae;
                     }
                     switch (alt10) {
-                        case 1 :
-                            // src/org/eclipse/internal/xpand2/parser/Xpand.g:92:10: p= declaredParameterList ( ',' wildparams= '*' )?
-                            {
-                            pushFollow(FOLLOW_declaredParameterList_in_around240);
-                            p=declaredParameterList();
+                    case 1:
+                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:92:10: p= declaredParameterList ( ',' wildparams=
+                    // '*' )?
+                    {
+                        pushFollow(FOLLOW_declaredParameterList_in_around240);
+                        p = declaredParameterList();
 
-                            state._fsp--;
-                            if (state.failed) return a;
-                            // src/org/eclipse/internal/xpand2/parser/Xpand.g:92:34: ( ',' wildparams= '*' )?
-                            int alt9=2;
-                            int LA9_0 = input.LA(1);
+                        state._fsp--;
+                        if (state.failed)
+                            return a;
+                        // src/org/eclipse/internal/xpand2/parser/Xpand.g:92:34: ( ',' wildparams= '*' )?
+                        int alt9 = 2;
+                        int LA9_0 = input.LA(1);
 
-                            if ( (LA9_0==24) ) {
-                                alt9=1;
-                            }
-                            switch (alt9) {
-                                case 1 :
-                                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:92:35: ',' wildparams= '*'
-                                    {
-                                    match(input,24,FOLLOW_24_in_around243); if (state.failed) return a;
-                                    wildparams=(Token)match(input,25,FOLLOW_25_in_around247); if (state.failed) return a;
+                        if ((LA9_0 == 24)) {
+                            alt9 = 1;
+                        }
+                        switch (alt9) {
+                        case 1:
+                        // src/org/eclipse/internal/xpand2/parser/Xpand.g:92:35: ',' wildparams= '*'
+                        {
+                            match(input, 24, FOLLOW_24_in_around243);
+                            if (state.failed)
+                                return a;
+                            wildparams = (Token) match(input, 25, FOLLOW_25_in_around247);
+                            if (state.failed)
+                                return a;
 
-                                    }
-                                    break;
-
-                            }
-
-
-                            }
+                        }
                             break;
-                        case 2 :
-                            // src/org/eclipse/internal/xpand2/parser/Xpand.g:92:59: wildparams= '*'
-                            {
-                            wildparams=(Token)match(input,25,FOLLOW_25_in_around256); if (state.failed) return a;
 
-                            }
-                            break;
+                        }
+
+                    }
+                        break;
+                    case 2:
+                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:92:59: wildparams= '*'
+                    {
+                        wildparams = (Token) match(input, 25, FOLLOW_25_in_around256);
+                        if (state.failed)
+                            return a;
+
+                    }
+                        break;
 
                     }
 
-                    match(input,26,FOLLOW_26_in_around260); if (state.failed) return a;
+                    match(input, 26, FOLLOW_26_in_around260);
+                    if (state.failed)
+                        return a;
 
-                    }
+                }
                     break;
 
-            }
+                }
 
-            match(input,27,FOLLOW_27_in_around264); if (state.failed) return a;
-            pushFollow(FOLLOW_type_in_around268);
-            t=type();
+                match(input, 27, FOLLOW_27_in_around264);
+                if (state.failed)
+                    return a;
+                pushFollow(FOLLOW_type_in_around268);
+                t = type();
 
-            state._fsp--;
-            if (state.failed) return a;
-            pushFollow(FOLLOW_sequence_in_around276);
-            s=sequence();
+                state._fsp--;
+                if (state.failed)
+                    return a;
+                pushFollow(FOLLOW_sequence_in_around276);
+                s = sequence();
 
-            state._fsp--;
-            if (state.failed) return a;
-            match(input,28,FOLLOW_28_in_around281); if (state.failed) return a;
-            if ( state.backtracking==0 ) {
-               a = factory.createAround(pc,p,wildparams!=null,t,s);
-            }
+                state._fsp--;
+                if (state.failed)
+                    return a;
+                match(input, 28, FOLLOW_28_in_around281);
+                if (state.failed)
+                    return a;
+                if (state.backtracking == 0) {
+                    a = factory.createAround(pc, p, wildparams != null, t, s);
+                }
 
             }
 
-            if ( state.backtracking==0 ) {
-               addLocation(a, startToken, /*endToken*/ (CommonToken) input.LT(-1)); 
+            if (state.backtracking == 0) {
+                addLocation(a, startToken, /* endToken */(CommonToken) input.LT(-1));
             }
-        }
-        catch (RecognitionException re) {
+        } catch (RecognitionException re) {
             reportError(re);
-            recover(input,re);
-        }
-        finally {
+            recover(input, re);
+        } finally {
         }
         return a;
     }
+
     // $ANTLR end "around"
 
-
     // $ANTLR start "pointcut"
-    // src/org/eclipse/internal/xpand2/parser/Xpand.g:99:1: pointcut returns [Identifier i] : (x= '*' | i1= identifier ) (x1= '*' | n1= identifier | dc= '::' )* ;
+    // src/org/eclipse/internal/xpand2/parser/Xpand.g:99:1: pointcut returns [Identifier i] : (x= '*' | i1= identifier )
+    // (x1= '*' | n1= identifier | dc= '::' )* ;
     public final Identifier pointcut() throws RecognitionException {
         Identifier i = null;
 
-        Token x=null;
-        Token x1=null;
-        Token dc=null;
+        Token x = null;
+        Token x1 = null;
+        Token dc = null;
         Identifier i1 = null;
 
         Identifier n1 = null;
 
-
-         final CommonToken startToken = (CommonToken) input.LT(1); 
+        final CommonToken startToken = (CommonToken) input.LT(1);
         try {
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:102:1: ( (x= '*' | i1= identifier ) (x1= '*' | n1= identifier | dc= '::' )* )
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:103:2: (x= '*' | i1= identifier ) (x1= '*' | n1= identifier | dc= '::' )*
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:102:1: ( (x= '*' | i1= identifier ) (x1= '*' | n1=
+            // identifier | dc= '::' )* )
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:103:2: (x= '*' | i1= identifier ) (x1= '*' | n1=
+            // identifier | dc= '::' )*
             {
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:103:2: (x= '*' | i1= identifier )
-            int alt12=2;
-            int LA12_0 = input.LA(1);
+                // src/org/eclipse/internal/xpand2/parser/Xpand.g:103:2: (x= '*' | i1= identifier )
+                int alt12 = 2;
+                int LA12_0 = input.LA(1);
 
-            if ( (LA12_0==25) ) {
-                alt12=1;
-            }
-            else if ( (LA12_0==Identifier) ) {
-                alt12=2;
-            }
-            else {
-                if (state.backtracking>0) {state.failed=true; return i;}
-                NoViableAltException nvae =
-                    new NoViableAltException("", 12, 0, input);
+                if ((LA12_0 == 25)) {
+                    alt12 = 1;
+                } else if ((LA12_0 == Identifier)) {
+                    alt12 = 2;
+                } else {
+                    if (state.backtracking > 0) {
+                        state.failed = true;
+                        return i;
+                    }
+                    NoViableAltException nvae = new NoViableAltException("", 12, 0, input);
 
-                throw nvae;
-            }
-            switch (alt12) {
-                case 1 :
-                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:103:3: x= '*'
-                    {
-                    x=(Token)match(input,25,FOLLOW_25_in_pointcut312); if (state.failed) return i;
-                    if ( state.backtracking==0 ) {
-                      i = id(x);
+                    throw nvae;
+                }
+                switch (alt12) {
+                case 1:
+                // src/org/eclipse/internal/xpand2/parser/Xpand.g:103:3: x= '*'
+                {
+                    x = (Token) match(input, 25, FOLLOW_25_in_pointcut312);
+                    if (state.failed)
+                        return i;
+                    if (state.backtracking == 0) {
+                        i = id(x);
                     }
 
-                    }
+                }
                     break;
-                case 2 :
-                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:103:23: i1= identifier
-                    {
+                case 2:
+                // src/org/eclipse/internal/xpand2/parser/Xpand.g:103:23: i1= identifier
+                {
                     pushFollow(FOLLOW_identifier_in_pointcut318);
-                    i1=identifier();
+                    i1 = identifier();
 
                     state._fsp--;
-                    if (state.failed) return i;
-                    if ( state.backtracking==0 ) {
-                      i = i1;
+                    if (state.failed)
+                        return i;
+                    if (state.backtracking == 0) {
+                        i = i1;
                     }
 
-                    }
-                    break;
-
-            }
-
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:104:2: (x1= '*' | n1= identifier | dc= '::' )*
-            loop13:
-            do {
-                int alt13=4;
-                switch ( input.LA(1) ) {
-                case 25:
-                    {
-                    alt13=1;
-                    }
-                    break;
-                case Identifier:
-                    {
-                    alt13=2;
-                    }
-                    break;
-                case 29:
-                    {
-                    alt13=3;
-                    }
+                }
                     break;
 
                 }
 
-                switch (alt13) {
-            	case 1 :
-            	    // src/org/eclipse/internal/xpand2/parser/Xpand.g:104:3: x1= '*'
-            	    {
-            	    x1=(Token)match(input,25,FOLLOW_25_in_pointcut327); if (state.failed) return i;
-            	    if ( state.backtracking==0 ) {
-            	      i.append(id(x1));
-            	    }
+                // src/org/eclipse/internal/xpand2/parser/Xpand.g:104:2: (x1= '*' | n1= identifier | dc= '::' )*
+                loop13: do {
+                    int alt13 = 4;
+                    switch (input.LA(1)) {
+                    case 25: {
+                        alt13 = 1;
+                    }
+                        break;
+                    case Identifier: {
+                        alt13 = 2;
+                    }
+                        break;
+                    case 29: {
+                        alt13 = 3;
+                    }
+                        break;
 
-            	    }
-            	    break;
-            	case 2 :
-            	    // src/org/eclipse/internal/xpand2/parser/Xpand.g:104:31: n1= identifier
-            	    {
-            	    pushFollow(FOLLOW_identifier_in_pointcut333);
-            	    n1=identifier();
+                    }
 
-            	    state._fsp--;
-            	    if (state.failed) return i;
-            	    if ( state.backtracking==0 ) {
-            	      i.append(n1);
-            	    }
+                    switch (alt13) {
+                    case 1:
+                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:104:3: x1= '*'
+                    {
+                        x1 = (Token) match(input, 25, FOLLOW_25_in_pointcut327);
+                        if (state.failed)
+                            return i;
+                        if (state.backtracking == 0) {
+                            i.append(id(x1));
+                        }
 
-            	    }
-            	    break;
-            	case 3 :
-            	    // src/org/eclipse/internal/xpand2/parser/Xpand.g:104:62: dc= '::'
-            	    {
-            	    dc=(Token)match(input,29,FOLLOW_29_in_pointcut339); if (state.failed) return i;
-            	    if ( state.backtracking==0 ) {
-            	      i.append(id(dc));
-            	    }
+                    }
+                        break;
+                    case 2:
+                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:104:31: n1= identifier
+                    {
+                        pushFollow(FOLLOW_identifier_in_pointcut333);
+                        n1 = identifier();
 
-            	    }
-            	    break;
+                        state._fsp--;
+                        if (state.failed)
+                            return i;
+                        if (state.backtracking == 0) {
+                            i.append(n1);
+                        }
 
-            	default :
-            	    break loop13;
-                }
-            } while (true);
+                    }
+                        break;
+                    case 3:
+                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:104:62: dc= '::'
+                    {
+                        dc = (Token) match(input, 29, FOLLOW_29_in_pointcut339);
+                        if (state.failed)
+                            return i;
+                        if (state.backtracking == 0) {
+                            i.append(id(dc));
+                        }
 
+                    }
+                        break;
+
+                    default:
+                        break loop13;
+                    }
+                } while (true);
 
             }
 
-            if ( state.backtracking==0 ) {
-               addLocation(i, startToken, /*endToken*/ (CommonToken) input.LT(-1)); 
+            if (state.backtracking == 0) {
+                addLocation(i, startToken, /* endToken */(CommonToken) input.LT(-1));
             }
-        }
-        catch (RecognitionException re) {
+        } catch (RecognitionException re) {
             reportError(re);
-            recover(input,re);
-        }
-        finally {
+            recover(input, re);
+        } finally {
         }
         return i;
     }
+
     // $ANTLR end "pointcut"
 
-
     // $ANTLR start "define"
-    // src/org/eclipse/internal/xpand2/parser/Xpand.g:108:1: define returns [Definition d] : 'DEFINE' name= identifier ( '(' p= declaredParameterList ')' )? 'FOR' t= type s= sequence 'ENDDEFINE' ;
+    // src/org/eclipse/internal/xpand2/parser/Xpand.g:108:1: define returns [Definition d] : 'DEFINE' name= identifier (
+    // '(' p= declaredParameterList ')' )? 'FOR' t= type s= sequence 'ENDDEFINE' ;
     public final Definition define() throws RecognitionException {
         Definition d = null;
 
@@ -882,77 +911,91 @@
 
         List<Statement> s = null;
 
-
-         final CommonToken startToken = (CommonToken) input.LT(1); 
+        final CommonToken startToken = (CommonToken) input.LT(1);
         try {
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:111:1: ( 'DEFINE' name= identifier ( '(' p= declaredParameterList ')' )? 'FOR' t= type s= sequence 'ENDDEFINE' )
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:112:4: 'DEFINE' name= identifier ( '(' p= declaredParameterList ')' )? 'FOR' t= type s= sequence 'ENDDEFINE'
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:111:1: ( 'DEFINE' name= identifier ( '(' p=
+            // declaredParameterList ')' )? 'FOR' t= type s= sequence 'ENDDEFINE' )
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:112:4: 'DEFINE' name= identifier ( '(' p=
+            // declaredParameterList ')' )? 'FOR' t= type s= sequence 'ENDDEFINE'
             {
-            match(input,30,FOLLOW_30_in_define368); if (state.failed) return d;
-            pushFollow(FOLLOW_identifier_in_define372);
-            name=identifier();
+                match(input, 30, FOLLOW_30_in_define368);
+                if (state.failed)
+                    return d;
+                pushFollow(FOLLOW_identifier_in_define372);
+                name = identifier();
 
-            state._fsp--;
-            if (state.failed) return d;
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:112:29: ( '(' p= declaredParameterList ')' )?
-            int alt14=2;
-            int LA14_0 = input.LA(1);
+                state._fsp--;
+                if (state.failed)
+                    return d;
+                // src/org/eclipse/internal/xpand2/parser/Xpand.g:112:29: ( '(' p= declaredParameterList ')' )?
+                int alt14 = 2;
+                int LA14_0 = input.LA(1);
 
-            if ( (LA14_0==23) ) {
-                alt14=1;
-            }
-            switch (alt14) {
-                case 1 :
-                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:112:30: '(' p= declaredParameterList ')'
-                    {
-                    match(input,23,FOLLOW_23_in_define375); if (state.failed) return d;
+                if ((LA14_0 == 23)) {
+                    alt14 = 1;
+                }
+                switch (alt14) {
+                case 1:
+                // src/org/eclipse/internal/xpand2/parser/Xpand.g:112:30: '(' p= declaredParameterList ')'
+                {
+                    match(input, 23, FOLLOW_23_in_define375);
+                    if (state.failed)
+                        return d;
                     pushFollow(FOLLOW_declaredParameterList_in_define379);
-                    p=declaredParameterList();
+                    p = declaredParameterList();
 
                     state._fsp--;
-                    if (state.failed) return d;
-                    match(input,26,FOLLOW_26_in_define381); if (state.failed) return d;
+                    if (state.failed)
+                        return d;
+                    match(input, 26, FOLLOW_26_in_define381);
+                    if (state.failed)
+                        return d;
 
-                    }
+                }
                     break;
 
-            }
+                }
 
-            match(input,27,FOLLOW_27_in_define385); if (state.failed) return d;
-            pushFollow(FOLLOW_type_in_define389);
-            t=type();
+                match(input, 27, FOLLOW_27_in_define385);
+                if (state.failed)
+                    return d;
+                pushFollow(FOLLOW_type_in_define389);
+                t = type();
 
-            state._fsp--;
-            if (state.failed) return d;
-            pushFollow(FOLLOW_sequence_in_define397);
-            s=sequence();
+                state._fsp--;
+                if (state.failed)
+                    return d;
+                pushFollow(FOLLOW_sequence_in_define397);
+                s = sequence();
 
-            state._fsp--;
-            if (state.failed) return d;
-            match(input,31,FOLLOW_31_in_define403); if (state.failed) return d;
-            if ( state.backtracking==0 ) {
-               d = factory.createDefinition(name,p,t,s);
-            }
+                state._fsp--;
+                if (state.failed)
+                    return d;
+                match(input, 31, FOLLOW_31_in_define403);
+                if (state.failed)
+                    return d;
+                if (state.backtracking == 0) {
+                    d = factory.createDefinition(name, p, t, s);
+                }
 
             }
 
-            if ( state.backtracking==0 ) {
-               addLocation(d, startToken, /*endToken*/ (CommonToken) input.LT(-1)); 
+            if (state.backtracking == 0) {
+                addLocation(d, startToken, /* endToken */(CommonToken) input.LT(-1));
             }
-        }
-        catch (RecognitionException re) {
+        } catch (RecognitionException re) {
             reportError(re);
-            recover(input,re);
-        }
-        finally {
+            recover(input, re);
+        } finally {
         }
         return d;
     }
+
     // $ANTLR end "define"
 
-
     // $ANTLR start "sequence"
-    // src/org/eclipse/internal/xpand2/parser/Xpand.g:119:1: sequence returns [List<Statement> s=new BasicEList<Statement>()] : s1= textSequence (s2= statement s1= textSequence )* ;
+    // src/org/eclipse/internal/xpand2/parser/Xpand.g:119:1: sequence returns [List<Statement> s=new
+    // BasicEList<Statement>()] : s1= textSequence (s2= statement s1= textSequence )* ;
     public final List<Statement> sequence() throws RecognitionException {
         List<Statement> s = new BasicEList<Statement>();
 
@@ -960,76 +1003,78 @@
 
         Statement s2 = null;
 
-
         try {
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:120:1: (s1= textSequence (s2= statement s1= textSequence )* )
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:120:1: (s1= textSequence (s2= statement s1= textSequence
+            // )* )
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:121:3: s1= textSequence (s2= statement s1= textSequence )*
             {
-            pushFollow(FOLLOW_textSequence_in_sequence427);
-            s1=textSequence();
+                pushFollow(FOLLOW_textSequence_in_sequence427);
+                s1 = textSequence();
 
-            state._fsp--;
-            if (state.failed) return s;
-            if ( state.backtracking==0 ) {
-              s.addAll(s1);
-            }
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:122:3: (s2= statement s1= textSequence )*
-            loop15:
-            do {
-                int alt15=2;
-                int LA15_0 = input.LA(1);
-
-                if ( ((LA15_0>=StringLiteral && LA15_0<=Identifier)||LA15_0==23||(LA15_0>=32 && LA15_0<=35)||LA15_0==38||LA15_0==43||LA15_0==47||LA15_0==49||LA15_0==55||LA15_0==60||(LA15_0>=63 && LA15_0<=64)||LA15_0==79||(LA15_0>=81 && LA15_0<=94)||(LA15_0>=96 && LA15_0<=98)) ) {
-                    alt15=1;
+                state._fsp--;
+                if (state.failed)
+                    return s;
+                if (state.backtracking == 0) {
+                    s.addAll(s1);
                 }
+                // src/org/eclipse/internal/xpand2/parser/Xpand.g:122:3: (s2= statement s1= textSequence )*
+                loop15: do {
+                    int alt15 = 2;
+                    int LA15_0 = input.LA(1);
 
+                    if (((LA15_0 >= StringLiteral && LA15_0 <= Identifier) || LA15_0 == 23 || (LA15_0 >= 32 && LA15_0 <= 35) || LA15_0 == 38 || LA15_0 == 43
+                            || LA15_0 == 47 || LA15_0 == 49 || LA15_0 == 55 || LA15_0 == 60 || (LA15_0 >= 63 && LA15_0 <= 64) || LA15_0 == 79
+                            || (LA15_0 >= 81 && LA15_0 <= 94) || (LA15_0 >= 96 && LA15_0 <= 98))) {
+                        alt15 = 1;
+                    }
 
-                switch (alt15) {
-            	case 1 :
-            	    // src/org/eclipse/internal/xpand2/parser/Xpand.g:122:4: s2= statement s1= textSequence
-            	    {
-            	    pushFollow(FOLLOW_statement_in_sequence436);
-            	    s2=statement();
+                    switch (alt15) {
+                    case 1:
+                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:122:4: s2= statement s1= textSequence
+                    {
+                        pushFollow(FOLLOW_statement_in_sequence436);
+                        s2 = statement();
 
-            	    state._fsp--;
-            	    if (state.failed) return s;
-            	    if ( state.backtracking==0 ) {
-            	      if (s2!=null) s.add(s2);
-            	    }
-            	    pushFollow(FOLLOW_textSequence_in_sequence445);
-            	    s1=textSequence();
+                        state._fsp--;
+                        if (state.failed)
+                            return s;
+                        if (state.backtracking == 0) {
+                            if (s2 != null)
+                                s.add(s2);
+                        }
+                        pushFollow(FOLLOW_textSequence_in_sequence445);
+                        s1 = textSequence();
 
-            	    state._fsp--;
-            	    if (state.failed) return s;
-            	    if ( state.backtracking==0 ) {
-            	      s.addAll(s1);
-            	    }
+                        state._fsp--;
+                        if (state.failed)
+                            return s;
+                        if (state.backtracking == 0) {
+                            s.addAll(s1);
+                        }
 
-            	    }
-            	    break;
+                    }
+                        break;
 
-            	default :
-            	    break loop15;
-                }
-            } while (true);
-
+                    default:
+                        break loop15;
+                    }
+                } while (true);
 
             }
 
-        }
-        catch (RecognitionException re) {
+        } catch (RecognitionException re) {
             reportError(re);
-            recover(input,re);
-        }
-        finally {
+            recover(input, re);
+        } finally {
         }
         return s;
     }
+
     // $ANTLR end "sequence"
 
-
     // $ANTLR start "statement"
-    // src/org/eclipse/internal/xpand2/parser/Xpand.g:131:1: statement returns [Statement s] : (s1= simpleStatement | s2= fileStatement | s3= foreachStatement | s4= ifStatement | s5= letStatement | s6= protectStatement );
+    // src/org/eclipse/internal/xpand2/parser/Xpand.g:131:1: statement returns [Statement s] : (s1= simpleStatement |
+    // s2= fileStatement | s3= foreachStatement | s4= ifStatement | s5= letStatement | s6= protectStatement );
     public final Statement statement() throws RecognitionException {
         Statement s = null;
 
@@ -1045,12 +1090,12 @@
 
         ProtectStatement s6 = null;
 
-
-         final CommonToken startToken = (CommonToken) input.LT(1); 
+        final CommonToken startToken = (CommonToken) input.LT(1);
         try {
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:134:1: (s1= simpleStatement | s2= fileStatement | s3= foreachStatement | s4= ifStatement | s5= letStatement | s6= protectStatement )
-            int alt16=6;
-            switch ( input.LA(1) ) {
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:134:1: (s1= simpleStatement | s2= fileStatement | s3=
+            // foreachStatement | s4= ifStatement | s5= letStatement | s6= protectStatement )
+            int alt16 = 6;
+            switch (input.LA(1)) {
             case StringLiteral:
             case IntLiteral:
             case Identifier:
@@ -1079,271 +1124,276 @@
             case 94:
             case 96:
             case 97:
-            case 98:
-                {
-                alt16=1;
-                }
+            case 98: {
+                alt16 = 1;
+            }
                 break;
-            case 38:
-                {
-                alt16=2;
-                }
+            case 38: {
+                alt16 = 2;
+            }
                 break;
-            case 35:
-                {
-                alt16=3;
-                }
+            case 35: {
+                alt16 = 3;
+            }
                 break;
-            case 43:
-                {
-                alt16=4;
-                }
+            case 43: {
+                alt16 = 4;
+            }
                 break;
-            case 47:
-                {
-                alt16=5;
-                }
+            case 47: {
+                alt16 = 5;
+            }
                 break;
-            case 49:
-                {
-                alt16=6;
-                }
+            case 49: {
+                alt16 = 6;
+            }
                 break;
             default:
-                if (state.backtracking>0) {state.failed=true; return s;}
-                NoViableAltException nvae =
-                    new NoViableAltException("", 16, 0, input);
+                if (state.backtracking > 0) {
+                    state.failed = true;
+                    return s;
+                }
+                NoViableAltException nvae = new NoViableAltException("", 16, 0, input);
 
                 throw nvae;
             }
 
             switch (alt16) {
-                case 1 :
-                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:135:3: s1= simpleStatement
-                    {
-                    pushFollow(FOLLOW_simpleStatement_in_statement483);
-                    s1=simpleStatement();
+            case 1:
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:135:3: s1= simpleStatement
+            {
+                pushFollow(FOLLOW_simpleStatement_in_statement483);
+                s1 = simpleStatement();
 
-                    state._fsp--;
-                    if (state.failed) return s;
-                    if ( state.backtracking==0 ) {
-                      s =s1;
-                    }
-
-                    }
-                    break;
-                case 2 :
-                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:136:3: s2= fileStatement
-                    {
-                    pushFollow(FOLLOW_fileStatement_in_statement491);
-                    s2=fileStatement();
-
-                    state._fsp--;
-                    if (state.failed) return s;
-                    if ( state.backtracking==0 ) {
-                      s =s2;
-                    }
-
-                    }
-                    break;
-                case 3 :
-                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:137:3: s3= foreachStatement
-                    {
-                    pushFollow(FOLLOW_foreachStatement_in_statement499);
-                    s3=foreachStatement();
-
-                    state._fsp--;
-                    if (state.failed) return s;
-                    if ( state.backtracking==0 ) {
-                      s =s3;
-                    }
-
-                    }
-                    break;
-                case 4 :
-                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:138:3: s4= ifStatement
-                    {
-                    pushFollow(FOLLOW_ifStatement_in_statement507);
-                    s4=ifStatement();
-
-                    state._fsp--;
-                    if (state.failed) return s;
-                    if ( state.backtracking==0 ) {
-                      s =s4;
-                    }
-
-                    }
-                    break;
-                case 5 :
-                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:139:3: s5= letStatement
-                    {
-                    pushFollow(FOLLOW_letStatement_in_statement515);
-                    s5=letStatement();
-
-                    state._fsp--;
-                    if (state.failed) return s;
-                    if ( state.backtracking==0 ) {
-                      s =s5;
-                    }
-
-                    }
-                    break;
-                case 6 :
-                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:140:3: s6= protectStatement
-                    {
-                    pushFollow(FOLLOW_protectStatement_in_statement523);
-                    s6=protectStatement();
-
-                    state._fsp--;
-                    if (state.failed) return s;
-                    if ( state.backtracking==0 ) {
-                      s =s6;
-                    }
-
-                    }
-                    break;
+                state._fsp--;
+                if (state.failed)
+                    return s;
+                if (state.backtracking == 0) {
+                    s = s1;
+                }
 
             }
-            if ( state.backtracking==0 ) {
-               addLocation(s, startToken, /*endToken*/ (CommonToken) input.LT(-1)); 
+                break;
+            case 2:
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:136:3: s2= fileStatement
+            {
+                pushFollow(FOLLOW_fileStatement_in_statement491);
+                s2 = fileStatement();
+
+                state._fsp--;
+                if (state.failed)
+                    return s;
+                if (state.backtracking == 0) {
+                    s = s2;
+                }
+
             }
-        }
-        catch (RecognitionException re) {
+                break;
+            case 3:
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:137:3: s3= foreachStatement
+            {
+                pushFollow(FOLLOW_foreachStatement_in_statement499);
+                s3 = foreachStatement();
+
+                state._fsp--;
+                if (state.failed)
+                    return s;
+                if (state.backtracking == 0) {
+                    s = s3;
+                }
+
+            }
+                break;
+            case 4:
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:138:3: s4= ifStatement
+            {
+                pushFollow(FOLLOW_ifStatement_in_statement507);
+                s4 = ifStatement();
+
+                state._fsp--;
+                if (state.failed)
+                    return s;
+                if (state.backtracking == 0) {
+                    s = s4;
+                }
+
+            }
+                break;
+            case 5:
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:139:3: s5= letStatement
+            {
+                pushFollow(FOLLOW_letStatement_in_statement515);
+                s5 = letStatement();
+
+                state._fsp--;
+                if (state.failed)
+                    return s;
+                if (state.backtracking == 0) {
+                    s = s5;
+                }
+
+            }
+                break;
+            case 6:
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:140:3: s6= protectStatement
+            {
+                pushFollow(FOLLOW_protectStatement_in_statement523);
+                s6 = protectStatement();
+
+                state._fsp--;
+                if (state.failed)
+                    return s;
+                if (state.backtracking == 0) {
+                    s = s6;
+                }
+
+            }
+                break;
+
+            }
+            if (state.backtracking == 0) {
+                addLocation(s, startToken, /* endToken */(CommonToken) input.LT(-1));
+            }
+        } catch (RecognitionException re) {
             reportError(re);
-            recover(input,re);
-        }
-        finally {
+            recover(input, re);
+        } finally {
         }
         return s;
     }
+
     // $ANTLR end "statement"
 
-
     // $ANTLR start "textSequence"
-    // src/org/eclipse/internal/xpand2/parser/Xpand.g:143:1: textSequence returns [List<Statement> s=new BasicEList<Statement>();] : t= text ( COMMENT t1= text )* ;
+    // src/org/eclipse/internal/xpand2/parser/Xpand.g:143:1: textSequence returns [List<Statement> s=new
+    // BasicEList<Statement>();] : t= text ( COMMENT t1= text )* ;
     public final List<Statement> textSequence() throws RecognitionException {
-        List<Statement> s = new BasicEList<Statement>();;
+        List<Statement> s = new BasicEList<Statement>();
+        ;
 
         Statement t = null;
 
         Statement t1 = null;
 
-
         try {
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:144:1: (t= text ( COMMENT t1= text )* )
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:145:2: t= text ( COMMENT t1= text )*
             {
-            pushFollow(FOLLOW_text_in_textSequence542);
-            t=text();
+                pushFollow(FOLLOW_text_in_textSequence542);
+                t = text();
 
-            state._fsp--;
-            if (state.failed) return s;
-            if ( state.backtracking==0 ) {
-              if (t!=null) s.add(t);
-            }
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:146:3: ( COMMENT t1= text )*
-            loop17:
-            do {
-                int alt17=2;
-                int LA17_0 = input.LA(1);
-
-                if ( (LA17_0==COMMENT) ) {
-                    alt17=1;
+                state._fsp--;
+                if (state.failed)
+                    return s;
+                if (state.backtracking == 0) {
+                    if (t != null)
+                        s.add(t);
                 }
+                // src/org/eclipse/internal/xpand2/parser/Xpand.g:146:3: ( COMMENT t1= text )*
+                loop17: do {
+                    int alt17 = 2;
+                    int LA17_0 = input.LA(1);
 
+                    if ((LA17_0 == COMMENT)) {
+                        alt17 = 1;
+                    }
 
-                switch (alt17) {
-            	case 1 :
-            	    // src/org/eclipse/internal/xpand2/parser/Xpand.g:146:4: COMMENT t1= text
-            	    {
-            	    match(input,COMMENT,FOLLOW_COMMENT_in_textSequence549); if (state.failed) return s;
-            	    pushFollow(FOLLOW_text_in_textSequence553);
-            	    t1=text();
+                    switch (alt17) {
+                    case 1:
+                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:146:4: COMMENT t1= text
+                    {
+                        match(input, COMMENT, FOLLOW_COMMENT_in_textSequence549);
+                        if (state.failed)
+                            return s;
+                        pushFollow(FOLLOW_text_in_textSequence553);
+                        t1 = text();
 
-            	    state._fsp--;
-            	    if (state.failed) return s;
-            	    if ( state.backtracking==0 ) {
-            	      if (t1!=null) s.add(t1);
-            	    }
+                        state._fsp--;
+                        if (state.failed)
+                            return s;
+                        if (state.backtracking == 0) {
+                            if (t1 != null)
+                                s.add(t1);
+                        }
 
-            	    }
-            	    break;
+                    }
+                        break;
 
-            	default :
-            	    break loop17;
-                }
-            } while (true);
-
+                    default:
+                        break loop17;
+                    }
+                } while (true);
 
             }
 
-        }
-        catch (RecognitionException re) {
+        } catch (RecognitionException re) {
             reportError(re);
-            recover(input,re);
-        }
-        finally {
+            recover(input, re);
+        } finally {
         }
         return s;
     }
-    // $ANTLR end "textSequence"
 
+    // $ANTLR end "textSequence"
 
     // $ANTLR start "text"
     // src/org/eclipse/internal/xpand2/parser/Xpand.g:149:1: text returns [Statement s] : (m= '-' )? t= TEXT ;
     public final Statement text() throws RecognitionException {
         Statement s = null;
 
-        Token m=null;
-        Token t=null;
+        Token m = null;
+        Token t = null;
 
-         final CommonToken startToken = (CommonToken) input.LT(1); 
+        final CommonToken startToken = (CommonToken) input.LT(1);
         try {
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:152:1: ( (m= '-' )? t= TEXT )
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:153:2: (m= '-' )? t= TEXT
             {
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:153:2: (m= '-' )?
-            int alt18=2;
-            int LA18_0 = input.LA(1);
+                // src/org/eclipse/internal/xpand2/parser/Xpand.g:153:2: (m= '-' )?
+                int alt18 = 2;
+                int LA18_0 = input.LA(1);
 
-            if ( (LA18_0==32) ) {
-                alt18=1;
-            }
-            switch (alt18) {
-                case 1 :
-                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:153:3: m= '-'
-                    {
-                    m=(Token)match(input,32,FOLLOW_32_in_text582); if (state.failed) return s;
+                if ((LA18_0 == 32)) {
+                    alt18 = 1;
+                }
+                switch (alt18) {
+                case 1:
+                // src/org/eclipse/internal/xpand2/parser/Xpand.g:153:3: m= '-'
+                {
+                    m = (Token) match(input, 32, FOLLOW_32_in_text582);
+                    if (state.failed)
+                        return s;
 
-                    }
+                }
                     break;
 
-            }
+                }
 
-            t=(Token)match(input,TEXT,FOLLOW_TEXT_in_text588); if (state.failed) return s;
-            if ( state.backtracking==0 ) {
-              s = factory.createTextStatement(id(t),id(m));
-            }
+                t = (Token) match(input, TEXT, FOLLOW_TEXT_in_text588);
+                if (state.failed)
+                    return s;
+                if (state.backtracking == 0) {
+                    s = factory.createTextStatement(id(t), id(m));
+                }
 
             }
 
-            if ( state.backtracking==0 ) {
-               addLocation(s, startToken, /*endToken*/ (CommonToken) input.LT(-1)); 
+            if (state.backtracking == 0) {
+                addLocation(s, startToken, /* endToken */(CommonToken) input.LT(-1));
             }
-        }
-        catch (RecognitionException re) {
+        } catch (RecognitionException re) {
             reportError(re);
-            recover(input,re);
-        }
-        finally {
+            recover(input, re);
+        } finally {
         }
         return s;
     }
+
     // $ANTLR end "text"
 
-
     // $ANTLR start "simpleStatement"
-    // src/org/eclipse/internal/xpand2/parser/Xpand.g:156:1: simpleStatement returns [Statement s] : (s1= errorStatement | s2= expandStatement | s3= expressionStmt );
+    // src/org/eclipse/internal/xpand2/parser/Xpand.g:156:1: simpleStatement returns [Statement s] : (s1= errorStatement
+    // | s2= expandStatement | s3= expressionStmt );
     public final Statement simpleStatement() throws RecognitionException {
         Statement s = null;
 
@@ -1353,21 +1403,19 @@
 
         ExpressionStatement s3 = null;
 
-
-         final CommonToken startToken = (CommonToken) input.LT(1); 
+        final CommonToken startToken = (CommonToken) input.LT(1);
         try {
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:159:1: (s1= errorStatement | s2= expandStatement | s3= expressionStmt )
-            int alt19=3;
-            switch ( input.LA(1) ) {
-            case 33:
-                {
-                alt19=1;
-                }
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:159:1: (s1= errorStatement | s2= expandStatement | s3=
+            // expressionStmt )
+            int alt19 = 3;
+            switch (input.LA(1)) {
+            case 33: {
+                alt19 = 1;
+            }
                 break;
-            case 34:
-                {
-                alt19=2;
-                }
+            case 34: {
+                alt19 = 2;
+            }
                 break;
             case StringLiteral:
             case IntLiteral:
@@ -1395,126 +1443,131 @@
             case 94:
             case 96:
             case 97:
-            case 98:
-                {
-                alt19=3;
-                }
+            case 98: {
+                alt19 = 3;
+            }
                 break;
             default:
-                if (state.backtracking>0) {state.failed=true; return s;}
-                NoViableAltException nvae =
-                    new NoViableAltException("", 19, 0, input);
+                if (state.backtracking > 0) {
+                    state.failed = true;
+                    return s;
+                }
+                NoViableAltException nvae = new NoViableAltException("", 19, 0, input);
 
                 throw nvae;
             }
 
             switch (alt19) {
-                case 1 :
-                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:160:3: s1= errorStatement
-                    {
-                    pushFollow(FOLLOW_errorStatement_in_simpleStatement615);
-                    s1=errorStatement();
+            case 1:
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:160:3: s1= errorStatement
+            {
+                pushFollow(FOLLOW_errorStatement_in_simpleStatement615);
+                s1 = errorStatement();
 
-                    state._fsp--;
-                    if (state.failed) return s;
-                    if ( state.backtracking==0 ) {
-                      s =s1;
-                    }
-
-                    }
-                    break;
-                case 2 :
-                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:161:3: s2= expandStatement
-                    {
-                    pushFollow(FOLLOW_expandStatement_in_simpleStatement623);
-                    s2=expandStatement();
-
-                    state._fsp--;
-                    if (state.failed) return s;
-                    if ( state.backtracking==0 ) {
-                      s =s2;
-                    }
-
-                    }
-                    break;
-                case 3 :
-                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:162:3: s3= expressionStmt
-                    {
-                    pushFollow(FOLLOW_expressionStmt_in_simpleStatement631);
-                    s3=expressionStmt();
-
-                    state._fsp--;
-                    if (state.failed) return s;
-                    if ( state.backtracking==0 ) {
-                      s =s3;
-                    }
-
-                    }
-                    break;
+                state._fsp--;
+                if (state.failed)
+                    return s;
+                if (state.backtracking == 0) {
+                    s = s1;
+                }
 
             }
-            if ( state.backtracking==0 ) {
-               addLocation(s, startToken, /*endToken*/ (CommonToken) input.LT(-1)); 
+                break;
+            case 2:
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:161:3: s2= expandStatement
+            {
+                pushFollow(FOLLOW_expandStatement_in_simpleStatement623);
+                s2 = expandStatement();
+
+                state._fsp--;
+                if (state.failed)
+                    return s;
+                if (state.backtracking == 0) {
+                    s = s2;
+                }
+
             }
-        }
-        catch (RecognitionException re) {
+                break;
+            case 3:
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:162:3: s3= expressionStmt
+            {
+                pushFollow(FOLLOW_expressionStmt_in_simpleStatement631);
+                s3 = expressionStmt();
+
+                state._fsp--;
+                if (state.failed)
+                    return s;
+                if (state.backtracking == 0) {
+                    s = s3;
+                }
+
+            }
+                break;
+
+            }
+            if (state.backtracking == 0) {
+                addLocation(s, startToken, /* endToken */(CommonToken) input.LT(-1));
+            }
+        } catch (RecognitionException re) {
             reportError(re);
-            recover(input,re);
-        }
-        finally {
+            recover(input, re);
+        } finally {
         }
         return s;
     }
+
     // $ANTLR end "simpleStatement"
 
-
     // $ANTLR start "errorStatement"
-    // src/org/eclipse/internal/xpand2/parser/Xpand.g:165:1: errorStatement returns [ErrorStatement e] : 'ERROR' expr= expression ;
+    // src/org/eclipse/internal/xpand2/parser/Xpand.g:165:1: errorStatement returns [ErrorStatement e] : 'ERROR' expr=
+    // expression ;
     public final ErrorStatement errorStatement() throws RecognitionException {
         ErrorStatement e = null;
 
         Expression expr = null;
 
-
-         final CommonToken startToken = (CommonToken) input.LT(1); 
+        final CommonToken startToken = (CommonToken) input.LT(1);
         try {
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:168:1: ( 'ERROR' expr= expression )
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:169:3: 'ERROR' expr= expression
             {
-            match(input,33,FOLLOW_33_in_errorStatement656); if (state.failed) return e;
-            pushFollow(FOLLOW_expression_in_errorStatement660);
-            expr=expression();
+                match(input, 33, FOLLOW_33_in_errorStatement656);
+                if (state.failed)
+                    return e;
+                pushFollow(FOLLOW_expression_in_errorStatement660);
+                expr = expression();
 
-            state._fsp--;
-            if (state.failed) return e;
-            if ( state.backtracking==0 ) {
-               e = factory.createErrorStatement(expr); 
-            }
+                state._fsp--;
+                if (state.failed)
+                    return e;
+                if (state.backtracking == 0) {
+                    e = factory.createErrorStatement(expr);
+                }
 
             }
 
-            if ( state.backtracking==0 ) {
-               addLocation(e, startToken, /*endToken*/ (CommonToken) input.LT(-1)); 
+            if (state.backtracking == 0) {
+                addLocation(e, startToken, /* endToken */(CommonToken) input.LT(-1));
             }
-        }
-        catch (RecognitionException re) {
+        } catch (RecognitionException re) {
             reportError(re);
-            recover(input,re);
-        }
-        finally {
+            recover(input, re);
+        } finally {
         }
         return e;
     }
+
     // $ANTLR end "errorStatement"
 
-
     // $ANTLR start "expandStatement"
-    // src/org/eclipse/internal/xpand2/parser/Xpand.g:172:1: expandStatement returns [ExpandStatement e] : 'EXPAND' t= definitionName ( '(' pl= parameterList ')' )? ( ( 'FOR' expr= expression ) | (fe= 'FOREACH' expr= expression ( 'SEPARATOR' sep= expression )? ) )? (onFileClose= 'ONFILECLOSE' )? ;
+    // src/org/eclipse/internal/xpand2/parser/Xpand.g:172:1: expandStatement returns [ExpandStatement e] : 'EXPAND' t=
+    // definitionName ( '(' pl= parameterList ')' )? ( ( 'FOR' expr= expression ) | (fe= 'FOREACH' expr= expression (
+    // 'SEPARATOR' sep= expression )? ) )? (onFileClose= 'ONFILECLOSE' )? ;
     public final ExpandStatement expandStatement() throws RecognitionException {
         ExpandStatement e = null;
 
-        Token fe=null;
-        Token onFileClose=null;
+        Token fe = null;
+        Token onFileClose = null;
         Identifier t = null;
 
         List<Expression> pl = null;
@@ -1523,153 +1576,173 @@
 
         Expression sep = null;
 
-
-         final CommonToken startToken = (CommonToken) input.LT(1); 
+        final CommonToken startToken = (CommonToken) input.LT(1);
         try {
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:175:1: ( 'EXPAND' t= definitionName ( '(' pl= parameterList ')' )? ( ( 'FOR' expr= expression ) | (fe= 'FOREACH' expr= expression ( 'SEPARATOR' sep= expression )? ) )? (onFileClose= 'ONFILECLOSE' )? )
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:176:3: 'EXPAND' t= definitionName ( '(' pl= parameterList ')' )? ( ( 'FOR' expr= expression ) | (fe= 'FOREACH' expr= expression ( 'SEPARATOR' sep= expression )? ) )? (onFileClose= 'ONFILECLOSE' )?
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:175:1: ( 'EXPAND' t= definitionName ( '(' pl=
+            // parameterList ')' )? ( ( 'FOR' expr= expression ) | (fe= 'FOREACH' expr= expression ( 'SEPARATOR' sep=
+            // expression )? ) )? (onFileClose= 'ONFILECLOSE' )? )
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:176:3: 'EXPAND' t= definitionName ( '(' pl= parameterList
+            // ')' )? ( ( 'FOR' expr= expression ) | (fe= 'FOREACH' expr= expression ( 'SEPARATOR' sep= expression )? )
+            // )? (onFileClose= 'ONFILECLOSE' )?
             {
-            match(input,34,FOLLOW_34_in_expandStatement685); if (state.failed) return e;
-            pushFollow(FOLLOW_definitionName_in_expandStatement689);
-            t=definitionName();
+                match(input, 34, FOLLOW_34_in_expandStatement685);
+                if (state.failed)
+                    return e;
+                pushFollow(FOLLOW_definitionName_in_expandStatement689);
+                t = definitionName();
 
-            state._fsp--;
-            if (state.failed) return e;
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:176:29: ( '(' pl= parameterList ')' )?
-            int alt20=2;
-            int LA20_0 = input.LA(1);
+                state._fsp--;
+                if (state.failed)
+                    return e;
+                // src/org/eclipse/internal/xpand2/parser/Xpand.g:176:29: ( '(' pl= parameterList ')' )?
+                int alt20 = 2;
+                int LA20_0 = input.LA(1);
 
-            if ( (LA20_0==23) ) {
-                alt20=1;
-            }
-            switch (alt20) {
-                case 1 :
-                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:176:30: '(' pl= parameterList ')'
-                    {
-                    match(input,23,FOLLOW_23_in_expandStatement692); if (state.failed) return e;
+                if ((LA20_0 == 23)) {
+                    alt20 = 1;
+                }
+                switch (alt20) {
+                case 1:
+                // src/org/eclipse/internal/xpand2/parser/Xpand.g:176:30: '(' pl= parameterList ')'
+                {
+                    match(input, 23, FOLLOW_23_in_expandStatement692);
+                    if (state.failed)
+                        return e;
                     pushFollow(FOLLOW_parameterList_in_expandStatement696);
-                    pl=parameterList();
+                    pl = parameterList();
 
                     state._fsp--;
-                    if (state.failed) return e;
-                    match(input,26,FOLLOW_26_in_expandStatement698); if (state.failed) return e;
+                    if (state.failed)
+                        return e;
+                    match(input, 26, FOLLOW_26_in_expandStatement698);
+                    if (state.failed)
+                        return e;
 
-                    }
+                }
                     break;
 
-            }
+                }
 
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:176:57: ( ( 'FOR' expr= expression ) | (fe= 'FOREACH' expr= expression ( 'SEPARATOR' sep= expression )? ) )?
-            int alt22=3;
-            int LA22_0 = input.LA(1);
+                // src/org/eclipse/internal/xpand2/parser/Xpand.g:176:57: ( ( 'FOR' expr= expression ) | (fe= 'FOREACH'
+                // expr= expression ( 'SEPARATOR' sep= expression )? ) )?
+                int alt22 = 3;
+                int LA22_0 = input.LA(1);
 
-            if ( (LA22_0==27) ) {
-                alt22=1;
-            }
-            else if ( (LA22_0==35) ) {
-                alt22=2;
-            }
-            switch (alt22) {
-                case 1 :
-                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:176:58: ( 'FOR' expr= expression )
-                    {
+                if ((LA22_0 == 27)) {
+                    alt22 = 1;
+                } else if ((LA22_0 == 35)) {
+                    alt22 = 2;
+                }
+                switch (alt22) {
+                case 1:
+                // src/org/eclipse/internal/xpand2/parser/Xpand.g:176:58: ( 'FOR' expr= expression )
+                {
                     // src/org/eclipse/internal/xpand2/parser/Xpand.g:176:58: ( 'FOR' expr= expression )
                     // src/org/eclipse/internal/xpand2/parser/Xpand.g:176:59: 'FOR' expr= expression
                     {
-                    match(input,27,FOLLOW_27_in_expandStatement704); if (state.failed) return e;
-                    pushFollow(FOLLOW_expression_in_expandStatement708);
-                    expr=expression();
+                        match(input, 27, FOLLOW_27_in_expandStatement704);
+                        if (state.failed)
+                            return e;
+                        pushFollow(FOLLOW_expression_in_expandStatement708);
+                        expr = expression();
 
-                    state._fsp--;
-                    if (state.failed) return e;
+                        state._fsp--;
+                        if (state.failed)
+                            return e;
 
                     }
 
-
-                    }
+                }
                     break;
-                case 2 :
-                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:177:5: (fe= 'FOREACH' expr= expression ( 'SEPARATOR' sep= expression )? )
+                case 2:
+                // src/org/eclipse/internal/xpand2/parser/Xpand.g:177:5: (fe= 'FOREACH' expr= expression ( 'SEPARATOR'
+                // sep= expression )? )
+                {
+                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:177:5: (fe= 'FOREACH' expr= expression (
+                    // 'SEPARATOR' sep= expression )? )
+                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:177:6: fe= 'FOREACH' expr= expression (
+                    // 'SEPARATOR' sep= expression )?
                     {
-                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:177:5: (fe= 'FOREACH' expr= expression ( 'SEPARATOR' sep= expression )? )
-                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:177:6: fe= 'FOREACH' expr= expression ( 'SEPARATOR' sep= expression )?
-                    {
-                    fe=(Token)match(input,35,FOLLOW_35_in_expandStatement718); if (state.failed) return e;
-                    pushFollow(FOLLOW_expression_in_expandStatement722);
-                    expr=expression();
+                        fe = (Token) match(input, 35, FOLLOW_35_in_expandStatement718);
+                        if (state.failed)
+                            return e;
+                        pushFollow(FOLLOW_expression_in_expandStatement722);
+                        expr = expression();
 
-                    state._fsp--;
-                    if (state.failed) return e;
-                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:177:35: ( 'SEPARATOR' sep= expression )?
-                    int alt21=2;
-                    int LA21_0 = input.LA(1);
+                        state._fsp--;
+                        if (state.failed)
+                            return e;
+                        // src/org/eclipse/internal/xpand2/parser/Xpand.g:177:35: ( 'SEPARATOR' sep= expression )?
+                        int alt21 = 2;
+                        int LA21_0 = input.LA(1);
 
-                    if ( (LA21_0==36) ) {
-                        alt21=1;
-                    }
-                    switch (alt21) {
-                        case 1 :
-                            // src/org/eclipse/internal/xpand2/parser/Xpand.g:177:36: 'SEPARATOR' sep= expression
-                            {
-                            match(input,36,FOLLOW_36_in_expandStatement725); if (state.failed) return e;
+                        if ((LA21_0 == 36)) {
+                            alt21 = 1;
+                        }
+                        switch (alt21) {
+                        case 1:
+                        // src/org/eclipse/internal/xpand2/parser/Xpand.g:177:36: 'SEPARATOR' sep= expression
+                        {
+                            match(input, 36, FOLLOW_36_in_expandStatement725);
+                            if (state.failed)
+                                return e;
                             pushFollow(FOLLOW_expression_in_expandStatement729);
-                            sep=expression();
+                            sep = expression();
 
                             state._fsp--;
-                            if (state.failed) return e;
+                            if (state.failed)
+                                return e;
 
-                            }
+                        }
                             break;
 
-                    }
-
+                        }
 
                     }
 
-
-                    }
+                }
                     break;
 
-            }
+                }
 
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:178:3: (onFileClose= 'ONFILECLOSE' )?
-            int alt23=2;
-            int LA23_0 = input.LA(1);
+                // src/org/eclipse/internal/xpand2/parser/Xpand.g:178:3: (onFileClose= 'ONFILECLOSE' )?
+                int alt23 = 2;
+                int LA23_0 = input.LA(1);
 
-            if ( (LA23_0==37) ) {
-                alt23=1;
-            }
-            switch (alt23) {
-                case 1 :
-                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:178:4: onFileClose= 'ONFILECLOSE'
-                    {
-                    onFileClose=(Token)match(input,37,FOLLOW_37_in_expandStatement741); if (state.failed) return e;
+                if ((LA23_0 == 37)) {
+                    alt23 = 1;
+                }
+                switch (alt23) {
+                case 1:
+                // src/org/eclipse/internal/xpand2/parser/Xpand.g:178:4: onFileClose= 'ONFILECLOSE'
+                {
+                    onFileClose = (Token) match(input, 37, FOLLOW_37_in_expandStatement741);
+                    if (state.failed)
+                        return e;
 
-                    }
+                }
                     break;
 
-            }
+                }
 
-            if ( state.backtracking==0 ) {
-              e = factory.createExpandStatement(t,pl,expr,fe!=null,sep,onFileClose!=null);
-            }
+                if (state.backtracking == 0) {
+                    e = factory.createExpandStatement(t, pl, expr, fe != null, sep, onFileClose != null);
+                }
 
             }
 
-            if ( state.backtracking==0 ) {
-               addLocation(e, startToken, /*endToken*/ (CommonToken) input.LT(-1)); 
+            if (state.backtracking == 0) {
+                addLocation(e, startToken, /* endToken */(CommonToken) input.LT(-1));
             }
-        }
-        catch (RecognitionException re) {
+        } catch (RecognitionException re) {
             reportError(re);
-            recover(input,re);
-        }
-        finally {
+            recover(input, re);
+        } finally {
         }
         return e;
     }
-    // $ANTLR end "expandStatement"
 
+    // $ANTLR end "expandStatement"
 
     // $ANTLR start "definitionName"
     // src/org/eclipse/internal/xpand2/parser/Xpand.g:184:1: definitionName returns [Identifier id] : id1= simpleType ;
@@ -1678,79 +1751,77 @@
 
         Identifier id1 = null;
 
-
-         final CommonToken startToken = (CommonToken) input.LT(1); 
+        final CommonToken startToken = (CommonToken) input.LT(1);
         try {
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:187:1: (id1= simpleType )
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:188:2: id1= simpleType
             {
-            pushFollow(FOLLOW_simpleType_in_definitionName777);
-            id1=simpleType();
+                pushFollow(FOLLOW_simpleType_in_definitionName777);
+                id1 = simpleType();
 
-            state._fsp--;
-            if (state.failed) return id;
-            if ( state.backtracking==0 ) {
-              id =id1;
-            }
+                state._fsp--;
+                if (state.failed)
+                    return id;
+                if (state.backtracking == 0) {
+                    id = id1;
+                }
 
             }
 
-            if ( state.backtracking==0 ) {
-               addLocation(id, startToken, /*endToken*/ (CommonToken) input.LT(-1)); 
+            if (state.backtracking == 0) {
+                addLocation(id, startToken, /* endToken */(CommonToken) input.LT(-1));
             }
-        }
-        catch (RecognitionException re) {
+        } catch (RecognitionException re) {
             reportError(re);
-            recover(input,re);
-        }
-        finally {
+            recover(input, re);
+        } finally {
         }
         return id;
     }
+
     // $ANTLR end "definitionName"
 
-
     // $ANTLR start "expressionStmt"
-    // src/org/eclipse/internal/xpand2/parser/Xpand.g:192:1: expressionStmt returns [ExpressionStatement es] : e= expression ;
+    // src/org/eclipse/internal/xpand2/parser/Xpand.g:192:1: expressionStmt returns [ExpressionStatement es] : e=
+    // expression ;
     public final ExpressionStatement expressionStmt() throws RecognitionException {
         ExpressionStatement es = null;
 
         Expression e = null;
 
-
-         final CommonToken startToken = (CommonToken) input.LT(1); 
+        final CommonToken startToken = (CommonToken) input.LT(1);
         try {
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:195:1: (e= expression )
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:196:2: e= expression
             {
-            pushFollow(FOLLOW_expression_in_expressionStmt804);
-            e=expression();
+                pushFollow(FOLLOW_expression_in_expressionStmt804);
+                e = expression();
 
-            state._fsp--;
-            if (state.failed) return es;
-            if ( state.backtracking==0 ) {
-              es = factory.createExpressionStatement(e);
-            }
+                state._fsp--;
+                if (state.failed)
+                    return es;
+                if (state.backtracking == 0) {
+                    es = factory.createExpressionStatement(e);
+                }
 
             }
 
-            if ( state.backtracking==0 ) {
-               addLocation(es, startToken, /*endToken*/ (CommonToken) input.LT(-1)); 
+            if (state.backtracking == 0) {
+                addLocation(es, startToken, /* endToken */(CommonToken) input.LT(-1));
             }
-        }
-        catch (RecognitionException re) {
+        } catch (RecognitionException re) {
             reportError(re);
-            recover(input,re);
-        }
-        finally {
+            recover(input, re);
+        } finally {
         }
         return es;
     }
+
     // $ANTLR end "expressionStmt"
 
-
     // $ANTLR start "fileStatement"
-    // src/org/eclipse/internal/xpand2/parser/Xpand.g:200:1: fileStatement returns [FileStatement f] : 'FILE' e= expression (option= identifier )? s= sequence 'ENDFILE' ;
+    // src/org/eclipse/internal/xpand2/parser/Xpand.g:200:1: fileStatement returns [FileStatement f] : 'FILE' e=
+    // expression (option= identifier )? s= sequence 'ENDFILE' ;
     public final FileStatement fileStatement() throws RecognitionException {
         FileStatement f = null;
 
@@ -1760,69 +1831,77 @@
 
         List<Statement> s = null;
 
-
-         final CommonToken startToken = (CommonToken) input.LT(1); 
+        final CommonToken startToken = (CommonToken) input.LT(1);
         try {
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:203:1: ( 'FILE' e= expression (option= identifier )? s= sequence 'ENDFILE' )
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:204:2: 'FILE' e= expression (option= identifier )? s= sequence 'ENDFILE'
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:203:1: ( 'FILE' e= expression (option= identifier )? s=
+            // sequence 'ENDFILE' )
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:204:2: 'FILE' e= expression (option= identifier )? s=
+            // sequence 'ENDFILE'
             {
-            match(input,38,FOLLOW_38_in_fileStatement829); if (state.failed) return f;
-            pushFollow(FOLLOW_expression_in_fileStatement833);
-            e=expression();
+                match(input, 38, FOLLOW_38_in_fileStatement829);
+                if (state.failed)
+                    return f;
+                pushFollow(FOLLOW_expression_in_fileStatement833);
+                e = expression();
 
-            state._fsp--;
-            if (state.failed) return f;
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:204:22: (option= identifier )?
-            int alt24=2;
-            int LA24_0 = input.LA(1);
+                state._fsp--;
+                if (state.failed)
+                    return f;
+                // src/org/eclipse/internal/xpand2/parser/Xpand.g:204:22: (option= identifier )?
+                int alt24 = 2;
+                int LA24_0 = input.LA(1);
 
-            if ( (LA24_0==Identifier) ) {
-                alt24=1;
-            }
-            switch (alt24) {
-                case 1 :
-                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:204:23: option= identifier
-                    {
+                if ((LA24_0 == Identifier)) {
+                    alt24 = 1;
+                }
+                switch (alt24) {
+                case 1:
+                // src/org/eclipse/internal/xpand2/parser/Xpand.g:204:23: option= identifier
+                {
                     pushFollow(FOLLOW_identifier_in_fileStatement838);
-                    option=identifier();
+                    option = identifier();
 
                     state._fsp--;
-                    if (state.failed) return f;
+                    if (state.failed)
+                        return f;
 
-                    }
+                }
                     break;
 
-            }
+                }
 
-            pushFollow(FOLLOW_sequence_in_fileStatement846);
-            s=sequence();
+                pushFollow(FOLLOW_sequence_in_fileStatement846);
+                s = sequence();
 
-            state._fsp--;
-            if (state.failed) return f;
-            match(input,39,FOLLOW_39_in_fileStatement850); if (state.failed) return f;
-            if ( state.backtracking==0 ) {
-              f = factory.createFileStatement(e,option,s);
-            }
+                state._fsp--;
+                if (state.failed)
+                    return f;
+                match(input, 39, FOLLOW_39_in_fileStatement850);
+                if (state.failed)
+                    return f;
+                if (state.backtracking == 0) {
+                    f = factory.createFileStatement(e, option, s);
+                }
 
             }
 
-            if ( state.backtracking==0 ) {
-               addLocation(f, startToken, /*endToken*/ (CommonToken) input.LT(-1)); 
+            if (state.backtracking == 0) {
+                addLocation(f, startToken, /* endToken */(CommonToken) input.LT(-1));
             }
-        }
-        catch (RecognitionException re) {
+        } catch (RecognitionException re) {
             reportError(re);
-            recover(input,re);
-        }
-        finally {
+            recover(input, re);
+        } finally {
         }
         return f;
     }
+
     // $ANTLR end "fileStatement"
 
-
     // $ANTLR start "foreachStatement"
-    // src/org/eclipse/internal/xpand2/parser/Xpand.g:211:1: foreachStatement returns [ForEachStatement f] : 'FOREACH' e= expression 'AS' v= identifier ( 'ITERATOR' iter= identifier )? ( 'SEPARATOR' sep= expression )? s= sequence 'ENDFOREACH' ;
+    // src/org/eclipse/internal/xpand2/parser/Xpand.g:211:1: foreachStatement returns [ForEachStatement f] : 'FOREACH'
+    // e= expression 'AS' v= identifier ( 'ITERATOR' iter= identifier )? ( 'SEPARATOR' sep= expression )? s= sequence
+    // 'ENDFOREACH' ;
     public final ForEachStatement foreachStatement() throws RecognitionException {
         ForEachStatement f = null;
 
@@ -1836,99 +1915,114 @@
 
         List<Statement> s = null;
 
-
-         final CommonToken startToken = (CommonToken) input.LT(1); 
+        final CommonToken startToken = (CommonToken) input.LT(1);
         try {
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:214:1: ( 'FOREACH' e= expression 'AS' v= identifier ( 'ITERATOR' iter= identifier )? ( 'SEPARATOR' sep= expression )? s= sequence 'ENDFOREACH' )
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:215:3: 'FOREACH' e= expression 'AS' v= identifier ( 'ITERATOR' iter= identifier )? ( 'SEPARATOR' sep= expression )? s= sequence 'ENDFOREACH'
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:214:1: ( 'FOREACH' e= expression 'AS' v= identifier (
+            // 'ITERATOR' iter= identifier )? ( 'SEPARATOR' sep= expression )? s= sequence 'ENDFOREACH' )
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:215:3: 'FOREACH' e= expression 'AS' v= identifier (
+            // 'ITERATOR' iter= identifier )? ( 'SEPARATOR' sep= expression )? s= sequence 'ENDFOREACH'
             {
-            match(input,35,FOLLOW_35_in_foreachStatement878); if (state.failed) return f;
-            pushFollow(FOLLOW_expression_in_foreachStatement882);
-            e=expression();
+                match(input, 35, FOLLOW_35_in_foreachStatement878);
+                if (state.failed)
+                    return f;
+                pushFollow(FOLLOW_expression_in_foreachStatement882);
+                e = expression();
 
-            state._fsp--;
-            if (state.failed) return f;
-            match(input,40,FOLLOW_40_in_foreachStatement884); if (state.failed) return f;
-            pushFollow(FOLLOW_identifier_in_foreachStatement888);
-            v=identifier();
+                state._fsp--;
+                if (state.failed)
+                    return f;
+                match(input, 40, FOLLOW_40_in_foreachStatement884);
+                if (state.failed)
+                    return f;
+                pushFollow(FOLLOW_identifier_in_foreachStatement888);
+                v = identifier();
 
-            state._fsp--;
-            if (state.failed) return f;
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:215:44: ( 'ITERATOR' iter= identifier )?
-            int alt25=2;
-            int LA25_0 = input.LA(1);
+                state._fsp--;
+                if (state.failed)
+                    return f;
+                // src/org/eclipse/internal/xpand2/parser/Xpand.g:215:44: ( 'ITERATOR' iter= identifier )?
+                int alt25 = 2;
+                int LA25_0 = input.LA(1);
 
-            if ( (LA25_0==41) ) {
-                alt25=1;
-            }
-            switch (alt25) {
-                case 1 :
-                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:215:45: 'ITERATOR' iter= identifier
-                    {
-                    match(input,41,FOLLOW_41_in_foreachStatement891); if (state.failed) return f;
+                if ((LA25_0 == 41)) {
+                    alt25 = 1;
+                }
+                switch (alt25) {
+                case 1:
+                // src/org/eclipse/internal/xpand2/parser/Xpand.g:215:45: 'ITERATOR' iter= identifier
+                {
+                    match(input, 41, FOLLOW_41_in_foreachStatement891);
+                    if (state.failed)
+                        return f;
                     pushFollow(FOLLOW_identifier_in_foreachStatement895);
-                    iter=identifier();
+                    iter = identifier();
 
                     state._fsp--;
-                    if (state.failed) return f;
+                    if (state.failed)
+                        return f;
 
-                    }
+                }
                     break;
 
-            }
+                }
 
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:215:74: ( 'SEPARATOR' sep= expression )?
-            int alt26=2;
-            int LA26_0 = input.LA(1);
+                // src/org/eclipse/internal/xpand2/parser/Xpand.g:215:74: ( 'SEPARATOR' sep= expression )?
+                int alt26 = 2;
+                int LA26_0 = input.LA(1);
 
-            if ( (LA26_0==36) ) {
-                alt26=1;
-            }
-            switch (alt26) {
-                case 1 :
-                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:215:75: 'SEPARATOR' sep= expression
-                    {
-                    match(input,36,FOLLOW_36_in_foreachStatement900); if (state.failed) return f;
+                if ((LA26_0 == 36)) {
+                    alt26 = 1;
+                }
+                switch (alt26) {
+                case 1:
+                // src/org/eclipse/internal/xpand2/parser/Xpand.g:215:75: 'SEPARATOR' sep= expression
+                {
+                    match(input, 36, FOLLOW_36_in_foreachStatement900);
+                    if (state.failed)
+                        return f;
                     pushFollow(FOLLOW_expression_in_foreachStatement904);
-                    sep=expression();
+                    sep = expression();
 
                     state._fsp--;
-                    if (state.failed) return f;
+                    if (state.failed)
+                        return f;
 
-                    }
+                }
                     break;
 
-            }
+                }
 
-            pushFollow(FOLLOW_sequence_in_foreachStatement914);
-            s=sequence();
+                pushFollow(FOLLOW_sequence_in_foreachStatement914);
+                s = sequence();
 
-            state._fsp--;
-            if (state.failed) return f;
-            match(input,42,FOLLOW_42_in_foreachStatement919); if (state.failed) return f;
-            if ( state.backtracking==0 ) {
-              f = factory.createForEachStatement(e,v,sep,iter,s);
-            }
+                state._fsp--;
+                if (state.failed)
+                    return f;
+                match(input, 42, FOLLOW_42_in_foreachStatement919);
+                if (state.failed)
+                    return f;
+                if (state.backtracking == 0) {
+                    f = factory.createForEachStatement(e, v, sep, iter, s);
+                }
 
             }
 
-            if ( state.backtracking==0 ) {
-               addLocation(f, startToken, /*endToken*/ (CommonToken) input.LT(-1)); 
+            if (state.backtracking == 0) {
+                addLocation(f, startToken, /* endToken */(CommonToken) input.LT(-1));
             }
-        }
-        catch (RecognitionException re) {
+        } catch (RecognitionException re) {
             reportError(re);
-            recover(input,re);
-        }
-        finally {
+            recover(input, re);
+        } finally {
         }
         return f;
     }
+
     // $ANTLR end "foreachStatement"
 
-
     // $ANTLR start "ifStatement"
-    // src/org/eclipse/internal/xpand2/parser/Xpand.g:221:1: ifStatement returns [IfStatement i] : 'IF' e= expression s= sequence (elif= elseIfStatement )* (el= elseStatement )? 'ENDIF' ;
+    // src/org/eclipse/internal/xpand2/parser/Xpand.g:221:1: ifStatement returns [IfStatement i] : 'IF' e= expression s=
+    // sequence (elif= elseIfStatement )* (el= elseStatement )? 'ENDIF' ;
     public final IfStatement ifStatement() throws RecognitionException {
         IfStatement i = null;
 
@@ -1940,108 +2034,114 @@
 
         IfStatement el = null;
 
-
-         final CommonToken startToken = (CommonToken) input.LT(1); 
+        final CommonToken startToken = (CommonToken) input.LT(1);
         IfStatement temp = null;
         try {
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:225:1: ( 'IF' e= expression s= sequence (elif= elseIfStatement )* (el= elseStatement )? 'ENDIF' )
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:226:6: 'IF' e= expression s= sequence (elif= elseIfStatement )* (el= elseStatement )? 'ENDIF'
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:225:1: ( 'IF' e= expression s= sequence (elif=
+            // elseIfStatement )* (el= elseStatement )? 'ENDIF' )
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:226:6: 'IF' e= expression s= sequence (elif=
+            // elseIfStatement )* (el= elseStatement )? 'ENDIF'
             {
-            match(input,43,FOLLOW_43_in_ifStatement950); if (state.failed) return i;
-            pushFollow(FOLLOW_expression_in_ifStatement954);
-            e=expression();
+                match(input, 43, FOLLOW_43_in_ifStatement950);
+                if (state.failed)
+                    return i;
+                pushFollow(FOLLOW_expression_in_ifStatement954);
+                e = expression();
 
-            state._fsp--;
-            if (state.failed) return i;
-            pushFollow(FOLLOW_sequence_in_ifStatement960);
-            s=sequence();
+                state._fsp--;
+                if (state.failed)
+                    return i;
+                pushFollow(FOLLOW_sequence_in_ifStatement960);
+                s = sequence();
 
-            state._fsp--;
-            if (state.failed) return i;
-            if ( state.backtracking==0 ) {
-              i = factory.createIfStatement(e,s);
-              		 temp = i;
-            }
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:230:3: (elif= elseIfStatement )*
-            loop27:
-            do {
-                int alt27=2;
-                int LA27_0 = input.LA(1);
-
-                if ( (LA27_0==45) ) {
-                    alt27=1;
+                state._fsp--;
+                if (state.failed)
+                    return i;
+                if (state.backtracking == 0) {
+                    i = factory.createIfStatement(e, s);
+                    temp = i;
                 }
+                // src/org/eclipse/internal/xpand2/parser/Xpand.g:230:3: (elif= elseIfStatement )*
+                loop27: do {
+                    int alt27 = 2;
+                    int LA27_0 = input.LA(1);
 
+                    if ((LA27_0 == 45)) {
+                        alt27 = 1;
+                    }
 
-                switch (alt27) {
-            	case 1 :
-            	    // src/org/eclipse/internal/xpand2/parser/Xpand.g:230:4: elif= elseIfStatement
-            	    {
-            	    pushFollow(FOLLOW_elseIfStatement_in_ifStatement972);
-            	    elif=elseIfStatement();
-
-            	    state._fsp--;
-            	    if (state.failed) return i;
-            	    if ( state.backtracking==0 ) {
-            	      temp.setElseIf(elif);
-            	      	 			temp = elif; 
-            	    }
-
-            	    }
-            	    break;
-
-            	default :
-            	    break loop27;
-                }
-            } while (true);
-
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:232:3: (el= elseStatement )?
-            int alt28=2;
-            int LA28_0 = input.LA(1);
-
-            if ( (LA28_0==46) ) {
-                alt28=1;
-            }
-            switch (alt28) {
-                case 1 :
-                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:232:4: el= elseStatement
+                    switch (alt27) {
+                    case 1:
+                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:230:4: elif= elseIfStatement
                     {
+                        pushFollow(FOLLOW_elseIfStatement_in_ifStatement972);
+                        elif = elseIfStatement();
+
+                        state._fsp--;
+                        if (state.failed)
+                            return i;
+                        if (state.backtracking == 0) {
+                            temp.setElseIf(elif);
+                            temp = elif;
+                        }
+
+                    }
+                        break;
+
+                    default:
+                        break loop27;
+                    }
+                } while (true);
+
+                // src/org/eclipse/internal/xpand2/parser/Xpand.g:232:3: (el= elseStatement )?
+                int alt28 = 2;
+                int LA28_0 = input.LA(1);
+
+                if ((LA28_0 == 46)) {
+                    alt28 = 1;
+                }
+                switch (alt28) {
+                case 1:
+                // src/org/eclipse/internal/xpand2/parser/Xpand.g:232:4: el= elseStatement
+                {
                     pushFollow(FOLLOW_elseStatement_in_ifStatement983);
-                    el=elseStatement();
+                    el = elseStatement();
 
                     state._fsp--;
-                    if (state.failed) return i;
-                    if ( state.backtracking==0 ) {
-                      temp.setElseIf(el);
-                      	 			temp = el; 
+                    if (state.failed)
+                        return i;
+                    if (state.backtracking == 0) {
+                        temp.setElseIf(el);
+                        temp = el;
                     }
 
-                    }
+                }
                     break;
 
-            }
+                }
 
-            match(input,44,FOLLOW_44_in_ifStatement995); if (state.failed) return i;
+                match(input, 44, FOLLOW_44_in_ifStatement995);
+                if (state.failed)
+                    return i;
 
             }
 
-            if ( state.backtracking==0 ) {
-               addLocation(i, startToken, /*endToken*/ (CommonToken) input.LT(-1)); 
+            if (state.backtracking == 0) {
+                addLocation(i, startToken, /* endToken */(CommonToken) input.LT(-1));
             }
-        }
-        catch (RecognitionException re) {
+        } catch (RecognitionException re) {
             reportError(re);
-            recover(input,re);
-        }
-        finally {
+            recover(input, re);
+        } finally {
         }
         return i;
     }
+
     // $ANTLR end "ifStatement"
 
-
     // $ANTLR start "elseIfStatement"
-    // src/org/eclipse/internal/xpand2/parser/Xpand.g:238:1: elseIfStatement returns [IfStatement i] : 'ELSEIF' e= expression s= sequence ;
+    // src/org/eclipse/internal/xpand2/parser/Xpand.g:238:1: elseIfStatement returns [IfStatement i] : 'ELSEIF' e=
+    // expression s= sequence ;
     public final IfStatement elseIfStatement() throws RecognitionException {
         IfStatement i = null;
 
@@ -2049,86 +2149,89 @@
 
         List<Statement> s = null;
 
-
-         final CommonToken startToken = (CommonToken) input.LT(1); 
+        final CommonToken startToken = (CommonToken) input.LT(1);
         try {
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:241:1: ( 'ELSEIF' e= expression s= sequence )
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:242:2: 'ELSEIF' e= expression s= sequence
             {
-            match(input,45,FOLLOW_45_in_elseIfStatement1018); if (state.failed) return i;
-            pushFollow(FOLLOW_expression_in_elseIfStatement1022);
-            e=expression();
+                match(input, 45, FOLLOW_45_in_elseIfStatement1018);
+                if (state.failed)
+                    return i;
+                pushFollow(FOLLOW_expression_in_elseIfStatement1022);
+                e = expression();
 
-            state._fsp--;
-            if (state.failed) return i;
-            pushFollow(FOLLOW_sequence_in_elseIfStatement1028);
-            s=sequence();
+                state._fsp--;
+                if (state.failed)
+                    return i;
+                pushFollow(FOLLOW_sequence_in_elseIfStatement1028);
+                s = sequence();
 
-            state._fsp--;
-            if (state.failed) return i;
-            if ( state.backtracking==0 ) {
-              i = factory.createIfStatement(e,s);
-            }
+                state._fsp--;
+                if (state.failed)
+                    return i;
+                if (state.backtracking == 0) {
+                    i = factory.createIfStatement(e, s);
+                }
 
             }
 
-            if ( state.backtracking==0 ) {
-               addLocation(i, startToken, /*endToken*/ (CommonToken) input.LT(-1)); 
+            if (state.backtracking == 0) {
+                addLocation(i, startToken, /* endToken */(CommonToken) input.LT(-1));
             }
-        }
-        catch (RecognitionException re) {
+        } catch (RecognitionException re) {
             reportError(re);
-            recover(input,re);
-        }
-        finally {
+            recover(input, re);
+        } finally {
         }
         return i;
     }
+
     // $ANTLR end "elseIfStatement"
 
-
     // $ANTLR start "elseStatement"
-    // src/org/eclipse/internal/xpand2/parser/Xpand.g:248:1: elseStatement returns [IfStatement i] : 'ELSE' s= sequence ;
+    // src/org/eclipse/internal/xpand2/parser/Xpand.g:248:1: elseStatement returns [IfStatement i] : 'ELSE' s= sequence
+    // ;
     public final IfStatement elseStatement() throws RecognitionException {
         IfStatement i = null;
 
         List<Statement> s = null;
 
-
-         final CommonToken startToken = (CommonToken) input.LT(1); 
+        final CommonToken startToken = (CommonToken) input.LT(1);
         try {
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:251:1: ( 'ELSE' s= sequence )
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:252:2: 'ELSE' s= sequence
             {
-            match(input,46,FOLLOW_46_in_elseStatement1058); if (state.failed) return i;
-            pushFollow(FOLLOW_sequence_in_elseStatement1064);
-            s=sequence();
+                match(input, 46, FOLLOW_46_in_elseStatement1058);
+                if (state.failed)
+                    return i;
+                pushFollow(FOLLOW_sequence_in_elseStatement1064);
+                s = sequence();
 
-            state._fsp--;
-            if (state.failed) return i;
-            if ( state.backtracking==0 ) {
-              i = factory.createIfStatement(null,s);
-            }
+                state._fsp--;
+                if (state.failed)
+                    return i;
+                if (state.backtracking == 0) {
+                    i = factory.createIfStatement(null, s);
+                }
 
             }
 
-            if ( state.backtracking==0 ) {
-               addLocation(i, startToken, /*endToken*/ (CommonToken) input.LT(-1)); 
+            if (state.backtracking == 0) {
+                addLocation(i, startToken, /* endToken */(CommonToken) input.LT(-1));
             }
-        }
-        catch (RecognitionException re) {
+        } catch (RecognitionException re) {
             reportError(re);
-            recover(input,re);
-        }
-        finally {
+            recover(input, re);
+        } finally {
         }
         return i;
     }
+
     // $ANTLR end "elseStatement"
 
-
     // $ANTLR start "letStatement"
-    // src/org/eclipse/internal/xpand2/parser/Xpand.g:258:1: letStatement returns [LetStatement l] : 'LET' e= expression 'AS' v= identifier s= sequence 'ENDLET' ;
+    // src/org/eclipse/internal/xpand2/parser/Xpand.g:258:1: letStatement returns [LetStatement l] : 'LET' e= expression
+    // 'AS' v= identifier s= sequence 'ENDLET' ;
     public final LetStatement letStatement() throws RecognitionException {
         LetStatement l = null;
 
@@ -2138,57 +2241,67 @@
 
         List<Statement> s = null;
 
-
-         final CommonToken startToken = (CommonToken) input.LT(1); 
+        final CommonToken startToken = (CommonToken) input.LT(1);
         try {
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:261:1: ( 'LET' e= expression 'AS' v= identifier s= sequence 'ENDLET' )
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:262:3: 'LET' e= expression 'AS' v= identifier s= sequence 'ENDLET'
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:261:1: ( 'LET' e= expression 'AS' v= identifier s=
+            // sequence 'ENDLET' )
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:262:3: 'LET' e= expression 'AS' v= identifier s= sequence
+            // 'ENDLET'
             {
-            match(input,47,FOLLOW_47_in_letStatement1094); if (state.failed) return l;
-            pushFollow(FOLLOW_expression_in_letStatement1098);
-            e=expression();
+                match(input, 47, FOLLOW_47_in_letStatement1094);
+                if (state.failed)
+                    return l;
+                pushFollow(FOLLOW_expression_in_letStatement1098);
+                e = expression();
 
-            state._fsp--;
-            if (state.failed) return l;
-            match(input,40,FOLLOW_40_in_letStatement1100); if (state.failed) return l;
-            pushFollow(FOLLOW_identifier_in_letStatement1104);
-            v=identifier();
+                state._fsp--;
+                if (state.failed)
+                    return l;
+                match(input, 40, FOLLOW_40_in_letStatement1100);
+                if (state.failed)
+                    return l;
+                pushFollow(FOLLOW_identifier_in_letStatement1104);
+                v = identifier();
 
-            state._fsp--;
-            if (state.failed) return l;
-            pushFollow(FOLLOW_sequence_in_letStatement1112);
-            s=sequence();
+                state._fsp--;
+                if (state.failed)
+                    return l;
+                pushFollow(FOLLOW_sequence_in_letStatement1112);
+                s = sequence();
 
-            state._fsp--;
-            if (state.failed) return l;
-            match(input,48,FOLLOW_48_in_letStatement1117); if (state.failed) return l;
-            if ( state.backtracking==0 ) {
-              l = factory.createLetStatement(e,v,s);
-            }
+                state._fsp--;
+                if (state.failed)
+                    return l;
+                match(input, 48, FOLLOW_48_in_letStatement1117);
+                if (state.failed)
+                    return l;
+                if (state.backtracking == 0) {
+                    l = factory.createLetStatement(e, v, s);
+                }
 
             }
 
-            if ( state.backtracking==0 ) {
-               addLocation(l, startToken, /*endToken*/ (CommonToken) input.LT(-1)); 
+            if (state.backtracking == 0) {
+                addLocation(l, startToken, /* endToken */(CommonToken) input.LT(-1));
             }
-        }
-        catch (RecognitionException re) {
+        } catch (RecognitionException re) {
             reportError(re);
-            recover(input,re);
-        }
-        finally {
+            recover(input, re);
+        } finally {
         }
         return l;
     }
+
     // $ANTLR end "letStatement"
 
-
     // $ANTLR start "protectStatement"
-    // src/org/eclipse/internal/xpand2/parser/Xpand.g:269:1: protectStatement returns [ProtectStatement l] : 'PROTECT' 'CSTART' startC= expression 'CEND' endC= expression 'ID' id= expression (disabled= 'DISABLE' )? s= sequence 'ENDPROTECT' ;
+    // src/org/eclipse/internal/xpand2/parser/Xpand.g:269:1: protectStatement returns [ProtectStatement l] : 'PROTECT'
+    // 'CSTART' startC= expression 'CEND' endC= expression 'ID' id= expression (disabled= 'DISABLE' )? s= sequence
+    // 'ENDPROTECT' ;
     public final ProtectStatement protectStatement() throws RecognitionException {
         ProtectStatement l = null;
 
-        Token disabled=null;
+        Token disabled = null;
         Expression startC = null;
 
         Expression endC = null;
@@ -2197,75 +2310,90 @@
 
         List<Statement> s = null;
 
-
-         final CommonToken startToken = (CommonToken) input.LT(1); 
+        final CommonToken startToken = (CommonToken) input.LT(1);
         try {
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:272:1: ( 'PROTECT' 'CSTART' startC= expression 'CEND' endC= expression 'ID' id= expression (disabled= 'DISABLE' )? s= sequence 'ENDPROTECT' )
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:273:2: 'PROTECT' 'CSTART' startC= expression 'CEND' endC= expression 'ID' id= expression (disabled= 'DISABLE' )? s= sequence 'ENDPROTECT'
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:272:1: ( 'PROTECT' 'CSTART' startC= expression 'CEND'
+            // endC= expression 'ID' id= expression (disabled= 'DISABLE' )? s= sequence 'ENDPROTECT' )
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:273:2: 'PROTECT' 'CSTART' startC= expression 'CEND' endC=
+            // expression 'ID' id= expression (disabled= 'DISABLE' )? s= sequence 'ENDPROTECT'
             {
-            match(input,49,FOLLOW_49_in_protectStatement1145); if (state.failed) return l;
-            match(input,50,FOLLOW_50_in_protectStatement1150); if (state.failed) return l;
-            pushFollow(FOLLOW_expression_in_protectStatement1154);
-            startC=expression();
+                match(input, 49, FOLLOW_49_in_protectStatement1145);
+                if (state.failed)
+                    return l;
+                match(input, 50, FOLLOW_50_in_protectStatement1150);
+                if (state.failed)
+                    return l;
+                pushFollow(FOLLOW_expression_in_protectStatement1154);
+                startC = expression();
 
-            state._fsp--;
-            if (state.failed) return l;
-            match(input,51,FOLLOW_51_in_protectStatement1159); if (state.failed) return l;
-            pushFollow(FOLLOW_expression_in_protectStatement1163);
-            endC=expression();
+                state._fsp--;
+                if (state.failed)
+                    return l;
+                match(input, 51, FOLLOW_51_in_protectStatement1159);
+                if (state.failed)
+                    return l;
+                pushFollow(FOLLOW_expression_in_protectStatement1163);
+                endC = expression();
 
-            state._fsp--;
-            if (state.failed) return l;
-            match(input,52,FOLLOW_52_in_protectStatement1176); if (state.failed) return l;
-            pushFollow(FOLLOW_expression_in_protectStatement1180);
-            id=expression();
+                state._fsp--;
+                if (state.failed)
+                    return l;
+                match(input, 52, FOLLOW_52_in_protectStatement1176);
+                if (state.failed)
+                    return l;
+                pushFollow(FOLLOW_expression_in_protectStatement1180);
+                id = expression();
 
-            state._fsp--;
-            if (state.failed) return l;
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:276:30: (disabled= 'DISABLE' )?
-            int alt29=2;
-            int LA29_0 = input.LA(1);
+                state._fsp--;
+                if (state.failed)
+                    return l;
+                // src/org/eclipse/internal/xpand2/parser/Xpand.g:276:30: (disabled= 'DISABLE' )?
+                int alt29 = 2;
+                int LA29_0 = input.LA(1);
 
-            if ( (LA29_0==53) ) {
-                alt29=1;
-            }
-            switch (alt29) {
-                case 1 :
-                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:276:31: disabled= 'DISABLE'
-                    {
-                    disabled=(Token)match(input,53,FOLLOW_53_in_protectStatement1185); if (state.failed) return l;
+                if ((LA29_0 == 53)) {
+                    alt29 = 1;
+                }
+                switch (alt29) {
+                case 1:
+                // src/org/eclipse/internal/xpand2/parser/Xpand.g:276:31: disabled= 'DISABLE'
+                {
+                    disabled = (Token) match(input, 53, FOLLOW_53_in_protectStatement1185);
+                    if (state.failed)
+                        return l;
 
-                    }
+                }
                     break;
 
-            }
+                }
 
-            pushFollow(FOLLOW_sequence_in_protectStatement1194);
-            s=sequence();
+                pushFollow(FOLLOW_sequence_in_protectStatement1194);
+                s = sequence();
 
-            state._fsp--;
-            if (state.failed) return l;
-            match(input,54,FOLLOW_54_in_protectStatement1198); if (state.failed) return l;
-            if ( state.backtracking==0 ) {
-              l = factory.createProtectStatement(startC,endC,id,disabled!=null,s);
-            }
+                state._fsp--;
+                if (state.failed)
+                    return l;
+                match(input, 54, FOLLOW_54_in_protectStatement1198);
+                if (state.failed)
+                    return l;
+                if (state.backtracking == 0) {
+                    l = factory.createProtectStatement(startC, endC, id, disabled != null, s);
+                }
 
             }
 
-            if ( state.backtracking==0 ) {
-               addLocation(l, startToken, /*endToken*/ (CommonToken) input.LT(-1)); 
+            if (state.backtracking == 0) {
+                addLocation(l, startToken, /* endToken */(CommonToken) input.LT(-1));
             }
-        }
-        catch (RecognitionException re) {
+        } catch (RecognitionException re) {
             reportError(re);
-            recover(input,re);
-        }
-        finally {
+            recover(input, re);
+        } finally {
         }
         return l;
     }
-    // $ANTLR end "protectStatement"
 
+    // $ANTLR end "protectStatement"
 
     // $ANTLR start "expression"
     // src/org/eclipse/internal/xpand2/parser/Xpand.g:285:1: expression returns [Expression e] : x= letExpression ;
@@ -2274,40 +2402,39 @@
 
         Expression x = null;
 
-
-         final CommonToken startToken = (CommonToken) input.LT(1); 
+        final CommonToken startToken = (CommonToken) input.LT(1);
         try {
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:288:1: (x= letExpression )
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:289:2: x= letExpression
             {
-            pushFollow(FOLLOW_letExpression_in_expression1229);
-            x=letExpression();
+                pushFollow(FOLLOW_letExpression_in_expression1229);
+                x = letExpression();
 
-            state._fsp--;
-            if (state.failed) return e;
-            if ( state.backtracking==0 ) {
-              e =x;
-            }
+                state._fsp--;
+                if (state.failed)
+                    return e;
+                if (state.backtracking == 0) {
+                    e = x;
+                }
 
             }
 
-            if ( state.backtracking==0 ) {
-               addLocation(e, startToken, /*endToken*/ (CommonToken) input.LT(-1)); 
+            if (state.backtracking == 0) {
+                addLocation(e, startToken, /* endToken */(CommonToken) input.LT(-1));
             }
-        }
-        catch (RecognitionException re) {
+        } catch (RecognitionException re) {
             reportError(re);
-            recover(input,re);
-        }
-        finally {
+            recover(input, re);
+        } finally {
         }
         return e;
     }
+
     // $ANTLR end "expression"
 
-
     // $ANTLR start "letExpression"
-    // src/org/eclipse/internal/xpand2/parser/Xpand.g:293:1: letExpression returns [Expression e] : ( 'let' v= identifier '=' varExpr= castedExpression ':' target= expression | x= castedExpression );
+    // src/org/eclipse/internal/xpand2/parser/Xpand.g:293:1: letExpression returns [Expression e] : ( 'let' v=
+    // identifier '=' varExpr= castedExpression ':' target= expression | x= castedExpression );
     public final Expression letExpression() throws RecognitionException {
         Expression e = null;
 
@@ -2319,87 +2446,98 @@
 
         Expression x = null;
 
-
-         final CommonToken startToken = (CommonToken) input.LT(1); 
+        final CommonToken startToken = (CommonToken) input.LT(1);
         try {
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:296:1: ( 'let' v= identifier '=' varExpr= castedExpression ':' target= expression | x= castedExpression )
-            int alt30=2;
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:296:1: ( 'let' v= identifier '=' varExpr= castedExpression
+            // ':' target= expression | x= castedExpression )
+            int alt30 = 2;
             int LA30_0 = input.LA(1);
 
-            if ( (LA30_0==55) ) {
-                alt30=1;
-            }
-            else if ( ((LA30_0>=StringLiteral && LA30_0<=Identifier)||LA30_0==23||LA30_0==32||LA30_0==60||(LA30_0>=63 && LA30_0<=64)||LA30_0==79||(LA30_0>=81 && LA30_0<=94)||(LA30_0>=96 && LA30_0<=98)) ) {
-                alt30=2;
-            }
-            else {
-                if (state.backtracking>0) {state.failed=true; return e;}
-                NoViableAltException nvae =
-                    new NoViableAltException("", 30, 0, input);
+            if ((LA30_0 == 55)) {
+                alt30 = 1;
+            } else if (((LA30_0 >= StringLiteral && LA30_0 <= Identifier) || LA30_0 == 23 || LA30_0 == 32 || LA30_0 == 60 || (LA30_0 >= 63 && LA30_0 <= 64)
+                    || LA30_0 == 79 || (LA30_0 >= 81 && LA30_0 <= 94) || (LA30_0 >= 96 && LA30_0 <= 98))) {
+                alt30 = 2;
+            } else {
+                if (state.backtracking > 0) {
+                    state.failed = true;
+                    return e;
+                }
+                NoViableAltException nvae = new NoViableAltException("", 30, 0, input);
 
                 throw nvae;
             }
             switch (alt30) {
-                case 1 :
-                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:297:4: 'let' v= identifier '=' varExpr= castedExpression ':' target= expression
-                    {
-                    match(input,55,FOLLOW_55_in_letExpression1257); if (state.failed) return e;
-                    pushFollow(FOLLOW_identifier_in_letExpression1261);
-                    v=identifier();
+            case 1:
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:297:4: 'let' v= identifier '=' varExpr= castedExpression
+            // ':' target= expression
+            {
+                match(input, 55, FOLLOW_55_in_letExpression1257);
+                if (state.failed)
+                    return e;
+                pushFollow(FOLLOW_identifier_in_letExpression1261);
+                v = identifier();
 
-                    state._fsp--;
-                    if (state.failed) return e;
-                    match(input,56,FOLLOW_56_in_letExpression1263); if (state.failed) return e;
-                    pushFollow(FOLLOW_castedExpression_in_letExpression1267);
-                    varExpr=castedExpression();
+                state._fsp--;
+                if (state.failed)
+                    return e;
+                match(input, 56, FOLLOW_56_in_letExpression1263);
+                if (state.failed)
+                    return e;
+                pushFollow(FOLLOW_castedExpression_in_letExpression1267);
+                varExpr = castedExpression();
 
-                    state._fsp--;
-                    if (state.failed) return e;
-                    match(input,57,FOLLOW_57_in_letExpression1269); if (state.failed) return e;
-                    pushFollow(FOLLOW_expression_in_letExpression1273);
-                    target=expression();
+                state._fsp--;
+                if (state.failed)
+                    return e;
+                match(input, 57, FOLLOW_57_in_letExpression1269);
+                if (state.failed)
+                    return e;
+                pushFollow(FOLLOW_expression_in_letExpression1273);
+                target = expression();
 
-                    state._fsp--;
-                    if (state.failed) return e;
-                    if ( state.backtracking==0 ) {
-                      e =factory.createLetExpression(v,varExpr,target);
-                    }
-
-                    }
-                    break;
-                case 2 :
-                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:299:4: x= castedExpression
-                    {
-                    pushFollow(FOLLOW_castedExpression_in_letExpression1286);
-                    x=castedExpression();
-
-                    state._fsp--;
-                    if (state.failed) return e;
-                    if ( state.backtracking==0 ) {
-                      e =x;
-                    }
-
-                    }
-                    break;
+                state._fsp--;
+                if (state.failed)
+                    return e;
+                if (state.backtracking == 0) {
+                    e = factory.createLetExpression(v, varExpr, target);
+                }
 
             }
-            if ( state.backtracking==0 ) {
-               addLocation(e, startToken, /*endToken*/ (CommonToken) input.LT(-1)); 
+                break;
+            case 2:
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:299:4: x= castedExpression
+            {
+                pushFollow(FOLLOW_castedExpression_in_letExpression1286);
+                x = castedExpression();
+
+                state._fsp--;
+                if (state.failed)
+                    return e;
+                if (state.backtracking == 0) {
+                    e = x;
+                }
+
             }
-        }
-        catch (RecognitionException re) {
+                break;
+
+            }
+            if (state.backtracking == 0) {
+                addLocation(e, startToken, /* endToken */(CommonToken) input.LT(-1));
+            }
+        } catch (RecognitionException re) {
             reportError(re);
-            recover(input,re);
-        }
-        finally {
+            recover(input, re);
+        } finally {
         }
         return e;
     }
+
     // $ANTLR end "letExpression"
 
-
     // $ANTLR start "castedExpression"
-    // src/org/eclipse/internal/xpand2/parser/Xpand.g:303:1: castedExpression returns [Expression e] : ( ( '(' type ')' castedExpression )=> '(' t= type ')' x= chainExpression | x= chainExpression );
+    // src/org/eclipse/internal/xpand2/parser/Xpand.g:303:1: castedExpression returns [Expression e] : ( ( '(' type ')'
+    // castedExpression )=> '(' t= type ')' x= chainExpression | x= chainExpression );
     public final Expression castedExpression() throws RecognitionException {
         Expression e = null;
 
@@ -2407,67 +2545,74 @@
 
         Expression x = null;
 
-
-         final CommonToken startToken = (CommonToken) input.LT(1); 
+        final CommonToken startToken = (CommonToken) input.LT(1);
         try {
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:306:1: ( ( '(' type ')' castedExpression )=> '(' t= type ')' x= chainExpression | x= chainExpression )
-            int alt31=2;
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:306:1: ( ( '(' type ')' castedExpression )=> '(' t= type
+            // ')' x= chainExpression | x= chainExpression )
+            int alt31 = 2;
             alt31 = dfa31.predict(input);
             switch (alt31) {
-                case 1 :
-                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:307:5: ( '(' type ')' castedExpression )=> '(' t= type ')' x= chainExpression
-                    {
-                    match(input,23,FOLLOW_23_in_castedExpression1326); if (state.failed) return e;
-                    pushFollow(FOLLOW_type_in_castedExpression1330);
-                    t=type();
+            case 1:
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:307:5: ( '(' type ')' castedExpression )=> '(' t= type ')'
+            // x= chainExpression
+            {
+                match(input, 23, FOLLOW_23_in_castedExpression1326);
+                if (state.failed)
+                    return e;
+                pushFollow(FOLLOW_type_in_castedExpression1330);
+                t = type();
 
-                    state._fsp--;
-                    if (state.failed) return e;
-                    match(input,26,FOLLOW_26_in_castedExpression1332); if (state.failed) return e;
-                    pushFollow(FOLLOW_chainExpression_in_castedExpression1336);
-                    x=chainExpression();
+                state._fsp--;
+                if (state.failed)
+                    return e;
+                match(input, 26, FOLLOW_26_in_castedExpression1332);
+                if (state.failed)
+                    return e;
+                pushFollow(FOLLOW_chainExpression_in_castedExpression1336);
+                x = chainExpression();
 
-                    state._fsp--;
-                    if (state.failed) return e;
-                    if ( state.backtracking==0 ) {
-                      e = factory.createCast(t,x);
-                    }
-
-                    }
-                    break;
-                case 2 :
-                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:309:4: x= chainExpression
-                    {
-                    pushFollow(FOLLOW_chainExpression_in_castedExpression1345);
-                    x=chainExpression();
-
-                    state._fsp--;
-                    if (state.failed) return e;
-                    if ( state.backtracking==0 ) {
-                      e =x;
-                    }
-
-                    }
-                    break;
+                state._fsp--;
+                if (state.failed)
+                    return e;
+                if (state.backtracking == 0) {
+                    e = factory.createCast(t, x);
+                }
 
             }
-            if ( state.backtracking==0 ) {
-               addLocation(e, startToken, /*endToken*/ (CommonToken) input.LT(-1)); 
+                break;
+            case 2:
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:309:4: x= chainExpression
+            {
+                pushFollow(FOLLOW_chainExpression_in_castedExpression1345);
+                x = chainExpression();
+
+                state._fsp--;
+                if (state.failed)
+                    return e;
+                if (state.backtracking == 0) {
+                    e = x;
+                }
+
             }
-        }
-        catch (RecognitionException re) {
+                break;
+
+            }
+            if (state.backtracking == 0) {
+                addLocation(e, startToken, /* endToken */(CommonToken) input.LT(-1));
+            }
+        } catch (RecognitionException re) {
             reportError(re);
-            recover(input,re);
-        }
-        finally {
+            recover(input, re);
+        } finally {
         }
         return e;
     }
+
     // $ANTLR end "castedExpression"
 
-
     // $ANTLR start "chainExpression"
-    // src/org/eclipse/internal/xpand2/parser/Xpand.g:313:1: chainExpression returns [Expression e] : x= ifExpression ( '->' right= ifExpression )* ;
+    // src/org/eclipse/internal/xpand2/parser/Xpand.g:313:1: chainExpression returns [Expression e] : x= ifExpression (
+    // '->' right= ifExpression )* ;
     public final Expression chainExpression() throws RecognitionException {
         Expression e = null;
 
@@ -2475,73 +2620,71 @@
 
         Expression right = null;
 
-
-         final CommonToken startToken = (CommonToken) input.LT(1); 
+        final CommonToken startToken = (CommonToken) input.LT(1);
         try {
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:316:1: (x= ifExpression ( '->' right= ifExpression )* )
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:317:2: x= ifExpression ( '->' right= ifExpression )*
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:315:1: (x= ifExpression ( '->' right= ifExpression )* )
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:316:2: x= ifExpression ( '->' right= ifExpression )*
             {
-            pushFollow(FOLLOW_ifExpression_in_chainExpression1373);
-            x=ifExpression();
+                pushFollow(FOLLOW_ifExpression_in_chainExpression1369);
+                x = ifExpression();
 
-            state._fsp--;
-            if (state.failed) return e;
-            if ( state.backtracking==0 ) {
-              e =x;
-            }
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:317:25: ( '->' right= ifExpression )*
-            loop32:
-            do {
-                int alt32=2;
-                int LA32_0 = input.LA(1);
-
-                if ( (LA32_0==58) ) {
-                    alt32=1;
+                state._fsp--;
+                if (state.failed)
+                    return e;
+                if (state.backtracking == 0) {
+                    e = x;
                 }
+                // src/org/eclipse/internal/xpand2/parser/Xpand.g:316:25: ( '->' right= ifExpression )*
+                loop32: do {
+                    int alt32 = 2;
+                    int LA32_0 = input.LA(1);
 
+                    if ((LA32_0 == 58)) {
+                        alt32 = 1;
+                    }
 
-                switch (alt32) {
-            	case 1 :
-            	    // src/org/eclipse/internal/xpand2/parser/Xpand.g:317:27: '->' right= ifExpression
-            	    {
-            	    match(input,58,FOLLOW_58_in_chainExpression1379); if (state.failed) return e;
-            	    pushFollow(FOLLOW_ifExpression_in_chainExpression1383);
-            	    right=ifExpression();
+                    switch (alt32) {
+                    case 1:
+                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:316:27: '->' right= ifExpression
+                    {
+                        match(input, 58, FOLLOW_58_in_chainExpression1375);
+                        if (state.failed)
+                            return e;
+                        pushFollow(FOLLOW_ifExpression_in_chainExpression1379);
+                        right = ifExpression();
 
-            	    state._fsp--;
-            	    if (state.failed) return e;
-            	    if ( state.backtracking==0 ) {
-            	      e =factory.createChainExpression(e,right);
-            	    }
+                        state._fsp--;
+                        if (state.failed)
+                            return e;
+                        if (state.backtracking == 0) {
+                            e = factory.createChainExpression(e, right);
+                            addLocation(e, startToken, /* endToken */(CommonToken) input.LT(-1));
+                        }
 
-            	    }
-            	    break;
+                    }
+                        break;
 
-            	default :
-            	    break loop32;
-                }
-            } while (true);
-
+                    default:
+                        break loop32;
+                    }
+                } while (true);
 
             }
 
-            if ( state.backtracking==0 ) {
-               addLocation(e, startToken, /*endToken*/ (CommonToken) input.LT(-1)); 
-            }
-        }
-        catch (RecognitionException re) {
+        } catch (RecognitionException re) {
             reportError(re);
-            recover(input,re);
-        }
-        finally {
+            recover(input, re);
+        } finally {
         }
         return e;
     }
+
     // $ANTLR end "chainExpression"
 
-
     // $ANTLR start "ifExpression"
-    // src/org/eclipse/internal/xpand2/parser/Xpand.g:321:1: ifExpression returns [Expression e] : (x= switchExpression ( '?' thenPart= switchExpression ':' elsePart= switchExpression )? | 'if' condition= switchExpression 'then' thenPart= switchExpression ( 'else' elsePart= expression )? );
+    // src/org/eclipse/internal/xpand2/parser/Xpand.g:320:1: ifExpression returns [Expression e] : (x= switchExpression
+    // ( '?' thenPart= switchExpression ':' elsePart= switchExpression )? | 'if' condition= switchExpression 'then'
+    // thenPart= switchExpression ( 'else' elsePart= expression )? );
     public final Expression ifExpression() throws RecognitionException {
         Expression e = null;
 
@@ -2553,136 +2696,157 @@
 
         Expression condition = null;
 
-
-         final CommonToken startToken = (CommonToken) input.LT(1); 
+        final CommonToken startToken = (CommonToken) input.LT(1);
         try {
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:324:1: (x= switchExpression ( '?' thenPart= switchExpression ':' elsePart= switchExpression )? | 'if' condition= switchExpression 'then' thenPart= switchExpression ( 'else' elsePart= expression )? )
-            int alt35=2;
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:323:1: (x= switchExpression ( '?' thenPart=
+            // switchExpression ':' elsePart= switchExpression )? | 'if' condition= switchExpression 'then' thenPart=
+            // switchExpression ( 'else' elsePart= expression )? )
+            int alt35 = 2;
             int LA35_0 = input.LA(1);
 
-            if ( ((LA35_0>=StringLiteral && LA35_0<=Identifier)||LA35_0==23||LA35_0==32||(LA35_0>=63 && LA35_0<=64)||LA35_0==79||(LA35_0>=81 && LA35_0<=94)||(LA35_0>=96 && LA35_0<=98)) ) {
-                alt35=1;
-            }
-            else if ( (LA35_0==60) ) {
-                alt35=2;
-            }
-            else {
-                if (state.backtracking>0) {state.failed=true; return e;}
-                NoViableAltException nvae =
-                    new NoViableAltException("", 35, 0, input);
+            if (((LA35_0 >= StringLiteral && LA35_0 <= Identifier) || LA35_0 == 23 || LA35_0 == 32 || (LA35_0 >= 63 && LA35_0 <= 64) || LA35_0 == 79
+                    || (LA35_0 >= 81 && LA35_0 <= 94) || (LA35_0 >= 96 && LA35_0 <= 98))) {
+                alt35 = 1;
+            } else if ((LA35_0 == 60)) {
+                alt35 = 2;
+            } else {
+                if (state.backtracking > 0) {
+                    state.failed = true;
+                    return e;
+                }
+                NoViableAltException nvae = new NoViableAltException("", 35, 0, input);
 
                 throw nvae;
             }
             switch (alt35) {
-                case 1 :
-                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:325:2: x= switchExpression ( '?' thenPart= switchExpression ':' elsePart= switchExpression )?
-                    {
-                    pushFollow(FOLLOW_switchExpression_in_ifExpression1413);
-                    x=switchExpression();
+            case 1:
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:324:2: x= switchExpression ( '?' thenPart=
+            // switchExpression ':' elsePart= switchExpression )?
+            {
+                pushFollow(FOLLOW_switchExpression_in_ifExpression1409);
+                x = switchExpression();
+
+                state._fsp--;
+                if (state.failed)
+                    return e;
+                if (state.backtracking == 0) {
+                    e = x;
+                }
+                // src/org/eclipse/internal/xpand2/parser/Xpand.g:324:28: ( '?' thenPart= switchExpression ':' elsePart=
+                // switchExpression )?
+                int alt33 = 2;
+                int LA33_0 = input.LA(1);
+
+                if ((LA33_0 == 59)) {
+                    alt33 = 1;
+                }
+                switch (alt33) {
+                case 1:
+                // src/org/eclipse/internal/xpand2/parser/Xpand.g:324:29: '?' thenPart= switchExpression ':' elsePart=
+                // switchExpression
+                {
+                    match(input, 59, FOLLOW_59_in_ifExpression1413);
+                    if (state.failed)
+                        return e;
+                    pushFollow(FOLLOW_switchExpression_in_ifExpression1417);
+                    thenPart = switchExpression();
 
                     state._fsp--;
-                    if (state.failed) return e;
-                    if ( state.backtracking==0 ) {
-                      e =x;
-                    }
-                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:325:28: ( '?' thenPart= switchExpression ':' elsePart= switchExpression )?
-                    int alt33=2;
-                    int LA33_0 = input.LA(1);
-
-                    if ( (LA33_0==59) ) {
-                        alt33=1;
-                    }
-                    switch (alt33) {
-                        case 1 :
-                            // src/org/eclipse/internal/xpand2/parser/Xpand.g:325:29: '?' thenPart= switchExpression ':' elsePart= switchExpression
-                            {
-                            match(input,59,FOLLOW_59_in_ifExpression1417); if (state.failed) return e;
-                            pushFollow(FOLLOW_switchExpression_in_ifExpression1421);
-                            thenPart=switchExpression();
-
-                            state._fsp--;
-                            if (state.failed) return e;
-                            match(input,57,FOLLOW_57_in_ifExpression1423); if (state.failed) return e;
-                            pushFollow(FOLLOW_switchExpression_in_ifExpression1427);
-                            elsePart=switchExpression();
-
-                            state._fsp--;
-                            if (state.failed) return e;
-                            if ( state.backtracking==0 ) {
-                              e =factory.createIf(e,thenPart,elsePart);
-                            }
-
-                            }
-                            break;
-
-                    }
-
-
-                    }
-                    break;
-                case 2 :
-                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:326:3: 'if' condition= switchExpression 'then' thenPart= switchExpression ( 'else' elsePart= expression )?
-                    {
-                    match(input,60,FOLLOW_60_in_ifExpression1435); if (state.failed) return e;
-                    pushFollow(FOLLOW_switchExpression_in_ifExpression1439);
-                    condition=switchExpression();
+                    if (state.failed)
+                        return e;
+                    match(input, 57, FOLLOW_57_in_ifExpression1419);
+                    if (state.failed)
+                        return e;
+                    pushFollow(FOLLOW_switchExpression_in_ifExpression1423);
+                    elsePart = switchExpression();
 
                     state._fsp--;
-                    if (state.failed) return e;
-                    match(input,61,FOLLOW_61_in_ifExpression1441); if (state.failed) return e;
-                    pushFollow(FOLLOW_switchExpression_in_ifExpression1445);
-                    thenPart=switchExpression();
-
-                    state._fsp--;
-                    if (state.failed) return e;
-                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:326:68: ( 'else' elsePart= expression )?
-                    int alt34=2;
-                    int LA34_0 = input.LA(1);
-
-                    if ( (LA34_0==62) ) {
-                        alt34=1;
-                    }
-                    switch (alt34) {
-                        case 1 :
-                            // src/org/eclipse/internal/xpand2/parser/Xpand.g:326:69: 'else' elsePart= expression
-                            {
-                            match(input,62,FOLLOW_62_in_ifExpression1448); if (state.failed) return e;
-                            pushFollow(FOLLOW_expression_in_ifExpression1452);
-                            elsePart=expression();
-
-                            state._fsp--;
-                            if (state.failed) return e;
-
-                            }
-                            break;
-
+                    if (state.failed)
+                        return e;
+                    if (state.backtracking == 0) {
+                        e = factory.createIf(e, thenPart, elsePart);
                     }
 
-                    if ( state.backtracking==0 ) {
-                      e =factory.createIf(condition,thenPart,elsePart);
-                    }
-
-                    }
+                }
                     break;
 
+                }
+
             }
-            if ( state.backtracking==0 ) {
-               addLocation(e, startToken, /*endToken*/ (CommonToken) input.LT(-1)); 
+                break;
+            case 2:
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:325:3: 'if' condition= switchExpression 'then' thenPart=
+            // switchExpression ( 'else' elsePart= expression )?
+            {
+                match(input, 60, FOLLOW_60_in_ifExpression1431);
+                if (state.failed)
+                    return e;
+                pushFollow(FOLLOW_switchExpression_in_ifExpression1435);
+                condition = switchExpression();
+
+                state._fsp--;
+                if (state.failed)
+                    return e;
+                match(input, 61, FOLLOW_61_in_ifExpression1437);
+                if (state.failed)
+                    return e;
+                pushFollow(FOLLOW_switchExpression_in_ifExpression1441);
+                thenPart = switchExpression();
+
+                state._fsp--;
+                if (state.failed)
+                    return e;
+                // src/org/eclipse/internal/xpand2/parser/Xpand.g:325:68: ( 'else' elsePart= expression )?
+                int alt34 = 2;
+                int LA34_0 = input.LA(1);
+
+                if ((LA34_0 == 62)) {
+                    alt34 = 1;
+                }
+                switch (alt34) {
+                case 1:
+                // src/org/eclipse/internal/xpand2/parser/Xpand.g:325:69: 'else' elsePart= expression
+                {
+                    match(input, 62, FOLLOW_62_in_ifExpression1444);
+                    if (state.failed)
+                        return e;
+                    pushFollow(FOLLOW_expression_in_ifExpression1448);
+                    elsePart = expression();
+
+                    state._fsp--;
+                    if (state.failed)
+                        return e;
+
+                }
+                    break;
+
+                }
+
+                if (state.backtracking == 0) {
+                    e = factory.createIf(condition, thenPart, elsePart);
+                }
+
             }
-        }
-        catch (RecognitionException re) {
+                break;
+
+            }
+            if (state.backtracking == 0) {
+                addLocation(e, startToken, /* endToken */(CommonToken) input.LT(-1));
+            }
+        } catch (RecognitionException re) {
             reportError(re);
-            recover(input,re);
-        }
-        finally {
+            recover(input, re);
+        } finally {
         }
         return e;
     }
+
     // $ANTLR end "ifExpression"
 
-
     // $ANTLR start "switchExpression"
-    // src/org/eclipse/internal/xpand2/parser/Xpand.g:330:1: switchExpression returns [Expression e=null] : ( 'switch' ( '(' pred= orExpression ')' )? '{' ( 'case' c= orExpression ':' v= orExpression )* 'default' ':' def= orExpression '}' | x= orExpression );
+    // src/org/eclipse/internal/xpand2/parser/Xpand.g:329:1: switchExpression returns [Expression e=null] : ( 'switch' (
+    // '(' pred= orExpression ')' )? '{' ( 'case' c= orExpression ':' v= orExpression )* 'default' ':' def= orExpression
+    // '}' | x= orExpression );
     public final Expression switchExpression() throws RecognitionException {
         Expression e = null;
 
@@ -2696,643 +2860,666 @@
 
         Expression x = null;
 
-
-         final CommonToken startToken = (CommonToken) input.LT(1); final List<Case> cases = new BasicEList<Case>(); 
+        final CommonToken startToken = (CommonToken) input.LT(1);
+        final List<Case> cases = new BasicEList<Case>();
         try {
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:333:1: ( 'switch' ( '(' pred= orExpression ')' )? '{' ( 'case' c= orExpression ':' v= orExpression )* 'default' ':' def= orExpression '}' | x= orExpression )
-            int alt38=2;
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:332:1: ( 'switch' ( '(' pred= orExpression ')' )? '{' (
+            // 'case' c= orExpression ':' v= orExpression )* 'default' ':' def= orExpression '}' | x= orExpression )
+            int alt38 = 2;
             int LA38_0 = input.LA(1);
 
-            if ( (LA38_0==63) ) {
-                alt38=1;
-            }
-            else if ( ((LA38_0>=StringLiteral && LA38_0<=Identifier)||LA38_0==23||LA38_0==32||LA38_0==64||LA38_0==79||(LA38_0>=81 && LA38_0<=94)||(LA38_0>=96 && LA38_0<=98)) ) {
-                alt38=2;
-            }
-            else {
-                if (state.backtracking>0) {state.failed=true; return e;}
-                NoViableAltException nvae =
-                    new NoViableAltException("", 38, 0, input);
+            if ((LA38_0 == 63)) {
+                alt38 = 1;
+            } else if (((LA38_0 >= StringLiteral && LA38_0 <= Identifier) || LA38_0 == 23 || LA38_0 == 32 || LA38_0 == 64 || LA38_0 == 79
+                    || (LA38_0 >= 81 && LA38_0 <= 94) || (LA38_0 >= 96 && LA38_0 <= 98))) {
+                alt38 = 2;
+            } else {
+                if (state.backtracking > 0) {
+                    state.failed = true;
+                    return e;
+                }
+                NoViableAltException nvae = new NoViableAltException("", 38, 0, input);
 
                 throw nvae;
             }
             switch (alt38) {
-                case 1 :
-                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:334:4: 'switch' ( '(' pred= orExpression ')' )? '{' ( 'case' c= orExpression ':' v= orExpression )* 'default' ':' def= orExpression '}'
-                    {
-                    match(input,63,FOLLOW_63_in_switchExpression1482); if (state.failed) return e;
-                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:334:13: ( '(' pred= orExpression ')' )?
-                    int alt36=2;
-                    int LA36_0 = input.LA(1);
+            case 1:
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:333:4: 'switch' ( '(' pred= orExpression ')' )? '{' (
+            // 'case' c= orExpression ':' v= orExpression )* 'default' ':' def= orExpression '}'
+            {
+                match(input, 63, FOLLOW_63_in_switchExpression1478);
+                if (state.failed)
+                    return e;
+                // src/org/eclipse/internal/xpand2/parser/Xpand.g:333:13: ( '(' pred= orExpression ')' )?
+                int alt36 = 2;
+                int LA36_0 = input.LA(1);
 
-                    if ( (LA36_0==23) ) {
-                        alt36=1;
-                    }
-                    switch (alt36) {
-                        case 1 :
-                            // src/org/eclipse/internal/xpand2/parser/Xpand.g:334:14: '(' pred= orExpression ')'
-                            {
-                            match(input,23,FOLLOW_23_in_switchExpression1485); if (state.failed) return e;
-                            pushFollow(FOLLOW_orExpression_in_switchExpression1491);
-                            pred=orExpression();
-
-                            state._fsp--;
-                            if (state.failed) return e;
-                            match(input,26,FOLLOW_26_in_switchExpression1493); if (state.failed) return e;
-
-                            }
-                            break;
-
-                    }
-
-                    match(input,64,FOLLOW_64_in_switchExpression1500); if (state.failed) return e;
-                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:336:4: ( 'case' c= orExpression ':' v= orExpression )*
-                    loop37:
-                    do {
-                        int alt37=2;
-                        int LA37_0 = input.LA(1);
-
-                        if ( (LA37_0==65) ) {
-                            alt37=1;
-                        }
-
-
-                        switch (alt37) {
-                    	case 1 :
-                    	    // src/org/eclipse/internal/xpand2/parser/Xpand.g:337:6: 'case' c= orExpression ':' v= orExpression
-                    	    {
-                    	    match(input,65,FOLLOW_65_in_switchExpression1513); if (state.failed) return e;
-                    	    pushFollow(FOLLOW_orExpression_in_switchExpression1517);
-                    	    c=orExpression();
-
-                    	    state._fsp--;
-                    	    if (state.failed) return e;
-                    	    match(input,57,FOLLOW_57_in_switchExpression1520); if (state.failed) return e;
-                    	    pushFollow(FOLLOW_orExpression_in_switchExpression1525);
-                    	    v=orExpression();
-
-                    	    state._fsp--;
-                    	    if (state.failed) return e;
-                    	    if ( state.backtracking==0 ) {
-                    	      Case _case = factory.createCase(c, v); if (_case!=null) cases.add(_case);
-                    	    }
-
-                    	    }
-                    	    break;
-
-                    	default :
-                    	    break loop37;
-                        }
-                    } while (true);
-
-                    match(input,66,FOLLOW_66_in_switchExpression1543); if (state.failed) return e;
-                    match(input,57,FOLLOW_57_in_switchExpression1545); if (state.failed) return e;
-                    pushFollow(FOLLOW_orExpression_in_switchExpression1551);
-                    def=orExpression();
+                if ((LA36_0 == 23)) {
+                    alt36 = 1;
+                }
+                switch (alt36) {
+                case 1:
+                // src/org/eclipse/internal/xpand2/parser/Xpand.g:333:14: '(' pred= orExpression ')'
+                {
+                    match(input, 23, FOLLOW_23_in_switchExpression1481);
+                    if (state.failed)
+                        return e;
+                    pushFollow(FOLLOW_orExpression_in_switchExpression1487);
+                    pred = orExpression();
 
                     state._fsp--;
-                    if (state.failed) return e;
-                    match(input,67,FOLLOW_67_in_switchExpression1556); if (state.failed) return e;
-                    if ( state.backtracking==0 ) {
-                      e = factory.createSwitchExpression(pred,cases,def);
+                    if (state.failed)
+                        return e;
+                    match(input, 26, FOLLOW_26_in_switchExpression1489);
+                    if (state.failed)
+                        return e;
+
+                }
+                    break;
+
+                }
+
+                match(input, 64, FOLLOW_64_in_switchExpression1496);
+                if (state.failed)
+                    return e;
+                // src/org/eclipse/internal/xpand2/parser/Xpand.g:335:4: ( 'case' c= orExpression ':' v= orExpression )*
+                loop37: do {
+                    int alt37 = 2;
+                    int LA37_0 = input.LA(1);
+
+                    if ((LA37_0 == 65)) {
+                        alt37 = 1;
                     }
 
-                    }
-                    break;
-                case 2 :
-                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:343:4: x= orExpression
+                    switch (alt37) {
+                    case 1:
+                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:336:6: 'case' c= orExpression ':' v= orExpression
                     {
-                    pushFollow(FOLLOW_orExpression_in_switchExpression1568);
-                    x=orExpression();
+                        match(input, 65, FOLLOW_65_in_switchExpression1509);
+                        if (state.failed)
+                            return e;
+                        pushFollow(FOLLOW_orExpression_in_switchExpression1513);
+                        c = orExpression();
 
-                    state._fsp--;
-                    if (state.failed) return e;
-                    if ( state.backtracking==0 ) {
-                      e =x;
-                    }
+                        state._fsp--;
+                        if (state.failed)
+                            return e;
+                        match(input, 57, FOLLOW_57_in_switchExpression1516);
+                        if (state.failed)
+                            return e;
+                        pushFollow(FOLLOW_orExpression_in_switchExpression1521);
+                        v = orExpression();
+
+                        state._fsp--;
+                        if (state.failed)
+                            return e;
+                        if (state.backtracking == 0) {
+                            Case _case = factory.createCase(c, v);
+                            if (_case != null)
+                                cases.add(_case);
+                        }
 
                     }
-                    break;
+                        break;
+
+                    default:
+                        break loop37;
+                    }
+                } while (true);
+
+                match(input, 66, FOLLOW_66_in_switchExpression1539);
+                if (state.failed)
+                    return e;
+                match(input, 57, FOLLOW_57_in_switchExpression1541);
+                if (state.failed)
+                    return e;
+                pushFollow(FOLLOW_orExpression_in_switchExpression1547);
+                def = orExpression();
+
+                state._fsp--;
+                if (state.failed)
+                    return e;
+                match(input, 67, FOLLOW_67_in_switchExpression1552);
+                if (state.failed)
+                    return e;
+                if (state.backtracking == 0) {
+                    e = factory.createSwitchExpression(pred, cases, def);
+                }
 
             }
-            if ( state.backtracking==0 ) {
-               addLocation(e, startToken, /*endToken*/ (CommonToken) input.LT(-1)); 
+                break;
+            case 2:
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:342:4: x= orExpression
+            {
+                pushFollow(FOLLOW_orExpression_in_switchExpression1564);
+                x = orExpression();
+
+                state._fsp--;
+                if (state.failed)
+                    return e;
+                if (state.backtracking == 0) {
+                    e = x;
+                }
+
             }
-        }
-        catch (RecognitionException re) {
+                break;
+
+            }
+            if (state.backtracking == 0) {
+                addLocation(e, startToken, /* endToken */(CommonToken) input.LT(-1));
+            }
+        } catch (RecognitionException re) {
             reportError(re);
-            recover(input,re);
-        }
-        finally {
+            recover(input, re);
+        } finally {
         }
         return e;
     }
+
     // $ANTLR end "switchExpression"
 
-
     // $ANTLR start "orExpression"
-    // src/org/eclipse/internal/xpand2/parser/Xpand.g:347:1: orExpression returns [Expression e] : x= andExpression (name= '||' r= andExpression )* ;
+    // src/org/eclipse/internal/xpand2/parser/Xpand.g:346:1: orExpression returns [Expression e] : x= andExpression
+    // (name= '||' r= andExpression )* ;
     public final Expression orExpression() throws RecognitionException {
         Expression e = null;
 
-        Token name=null;
+        Token name = null;
         Expression x = null;
 
         Expression r = null;
 
-
-         final CommonToken startToken = (CommonToken) input.LT(1); 
+        final CommonToken startToken = (CommonToken) input.LT(1);
         try {
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:350:1: (x= andExpression (name= '||' r= andExpression )* )
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:351:4: x= andExpression (name= '||' r= andExpression )*
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:348:1: (x= andExpression (name= '||' r= andExpression )* )
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:349:4: x= andExpression (name= '||' r= andExpression )*
             {
-            pushFollow(FOLLOW_andExpression_in_orExpression1597);
-            x=andExpression();
+                pushFollow(FOLLOW_andExpression_in_orExpression1589);
+                x = andExpression();
 
-            state._fsp--;
-            if (state.failed) return e;
-            if ( state.backtracking==0 ) {
-              e =x;
-            }
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:351:28: (name= '||' r= andExpression )*
-            loop39:
-            do {
-                int alt39=2;
-                int LA39_0 = input.LA(1);
-
-                if ( (LA39_0==68) ) {
-                    alt39=1;
+                state._fsp--;
+                if (state.failed)
+                    return e;
+                if (state.backtracking == 0) {
+                    e = x;
                 }
+                // src/org/eclipse/internal/xpand2/parser/Xpand.g:349:28: (name= '||' r= andExpression )*
+                loop39: do {
+                    int alt39 = 2;
+                    int LA39_0 = input.LA(1);
 
+                    if ((LA39_0 == 68)) {
+                        alt39 = 1;
+                    }
 
-                switch (alt39) {
-            	case 1 :
-            	    // src/org/eclipse/internal/xpand2/parser/Xpand.g:351:29: name= '||' r= andExpression
-            	    {
-            	    name=(Token)match(input,68,FOLLOW_68_in_orExpression1604); if (state.failed) return e;
-            	    pushFollow(FOLLOW_andExpression_in_orExpression1608);
-            	    r=andExpression();
+                    switch (alt39) {
+                    case 1:
+                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:349:29: name= '||' r= andExpression
+                    {
+                        name = (Token) match(input, 68, FOLLOW_68_in_orExpression1596);
+                        if (state.failed)
+                            return e;
+                        pushFollow(FOLLOW_andExpression_in_orExpression1600);
+                        r = andExpression();
 
-            	    state._fsp--;
-            	    if (state.failed) return e;
-            	    if ( state.backtracking==0 ) {
-            	      e = factory.createBooleanOperation(id(name),e,r);
-            	    }
+                        state._fsp--;
+                        if (state.failed)
+                            return e;
+                        if (state.backtracking == 0) {
+                            e = factory.createBooleanOperation(id(name), e, r);
+                            addLocation(e, startToken, /* endToken */(CommonToken) input.LT(-1));
+                        }
 
-            	    }
-            	    break;
+                    }
+                        break;
 
-            	default :
-            	    break loop39;
-                }
-            } while (true);
-
+                    default:
+                        break loop39;
+                    }
+                } while (true);
 
             }
 
-            if ( state.backtracking==0 ) {
-               addLocation(e, startToken, /*endToken*/ (CommonToken) input.LT(-1)); 
-            }
-        }
-        catch (RecognitionException re) {
+        } catch (RecognitionException re) {
             reportError(re);
-            recover(input,re);
-        }
-        finally {
+            recover(input, re);
+        } finally {
         }
         return e;
     }
+
     // $ANTLR end "orExpression"
 
-
     // $ANTLR start "andExpression"
-    // src/org/eclipse/internal/xpand2/parser/Xpand.g:355:1: andExpression returns [Expression e] : x= impliesExpression (name= '&&' r= impliesExpression )* ;
+    // src/org/eclipse/internal/xpand2/parser/Xpand.g:353:1: andExpression returns [Expression e] : x= impliesExpression
+    // (name= '&&' r= impliesExpression )* ;
     public final Expression andExpression() throws RecognitionException {
         Expression e = null;
 
-        Token name=null;
+        Token name = null;
         Expression x = null;
 
         Expression r = null;
 
-
-         final CommonToken startToken = (CommonToken) input.LT(1); 
+        final CommonToken startToken = (CommonToken) input.LT(1);
         try {
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:358:1: (x= impliesExpression (name= '&&' r= impliesExpression )* )
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:359:2: x= impliesExpression (name= '&&' r= impliesExpression )*
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:355:1: (x= impliesExpression (name= '&&' r=
+            // impliesExpression )* )
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:356:2: x= impliesExpression (name= '&&' r=
+            // impliesExpression )*
             {
-            pushFollow(FOLLOW_impliesExpression_in_andExpression1640);
-            x=impliesExpression();
+                pushFollow(FOLLOW_impliesExpression_in_andExpression1628);
+                x = impliesExpression();
 
-            state._fsp--;
-            if (state.failed) return e;
-            if ( state.backtracking==0 ) {
-              e =x;
-            }
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:359:30: (name= '&&' r= impliesExpression )*
-            loop40:
-            do {
-                int alt40=2;
-                int LA40_0 = input.LA(1);
-
-                if ( (LA40_0==69) ) {
-                    alt40=1;
+                state._fsp--;
+                if (state.failed)
+                    return e;
+                if (state.backtracking == 0) {
+                    e = x;
                 }
+                // src/org/eclipse/internal/xpand2/parser/Xpand.g:356:30: (name= '&&' r= impliesExpression )*
+                loop40: do {
+                    int alt40 = 2;
+                    int LA40_0 = input.LA(1);
 
+                    if ((LA40_0 == 69)) {
+                        alt40 = 1;
+                    }
 
-                switch (alt40) {
-            	case 1 :
-            	    // src/org/eclipse/internal/xpand2/parser/Xpand.g:359:31: name= '&&' r= impliesExpression
-            	    {
-            	    name=(Token)match(input,69,FOLLOW_69_in_andExpression1647); if (state.failed) return e;
-            	    pushFollow(FOLLOW_impliesExpression_in_andExpression1651);
-            	    r=impliesExpression();
+                    switch (alt40) {
+                    case 1:
+                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:356:31: name= '&&' r= impliesExpression
+                    {
+                        name = (Token) match(input, 69, FOLLOW_69_in_andExpression1635);
+                        if (state.failed)
+                            return e;
+                        pushFollow(FOLLOW_impliesExpression_in_andExpression1639);
+                        r = impliesExpression();
 
-            	    state._fsp--;
-            	    if (state.failed) return e;
-            	    if ( state.backtracking==0 ) {
-            	      e = factory.createBooleanOperation(id(name),e,r);
-            	    }
+                        state._fsp--;
+                        if (state.failed)
+                            return e;
+                        if (state.backtracking == 0) {
+                            e = factory.createBooleanOperation(id(name), e, r);
+                            addLocation(e, startToken, /* endToken */(CommonToken) input.LT(-1));
+                        }
 
-            	    }
-            	    break;
+                    }
+                        break;
 
-            	default :
-            	    break loop40;
-                }
-            } while (true);
-
+                    default:
+                        break loop40;
+                    }
+                } while (true);
 
             }
 
-            if ( state.backtracking==0 ) {
-               addLocation(e, startToken, /*endToken*/ (CommonToken) input.LT(-1)); 
-            }
-        }
-        catch (RecognitionException re) {
+        } catch (RecognitionException re) {
             reportError(re);
-            recover(input,re);
-        }
-        finally {
+            recover(input, re);
+        } finally {
         }
         return e;
     }
+
     // $ANTLR end "andExpression"
 
-
     // $ANTLR start "impliesExpression"
-    // src/org/eclipse/internal/xpand2/parser/Xpand.g:363:1: impliesExpression returns [Expression e] : x= relationalExpression (name= 'implies' r= relationalExpression )* ;
+    // src/org/eclipse/internal/xpand2/parser/Xpand.g:360:1: impliesExpression returns [Expression e] : x=
+    // relationalExpression (name= 'implies' r= relationalExpression )* ;
     public final Expression impliesExpression() throws RecognitionException {
         Expression e = null;
 
-        Token name=null;
+        Token name = null;
         Expression x = null;
 
         Expression r = null;
 
-
-         final CommonToken startToken = (CommonToken) input.LT(1); 
+        final CommonToken startToken = (CommonToken) input.LT(1);
         try {
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:366:1: (x= relationalExpression (name= 'implies' r= relationalExpression )* )
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:367:2: x= relationalExpression (name= 'implies' r= relationalExpression )*
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:362:1: (x= relationalExpression (name= 'implies' r=
+            // relationalExpression )* )
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:363:2: x= relationalExpression (name= 'implies' r=
+            // relationalExpression )*
             {
-            pushFollow(FOLLOW_relationalExpression_in_impliesExpression1682);
-            x=relationalExpression();
+                pushFollow(FOLLOW_relationalExpression_in_impliesExpression1666);
+                x = relationalExpression();
 
-            state._fsp--;
-            if (state.failed) return e;
-            if ( state.backtracking==0 ) {
-              e =x;
-            }
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:367:33: (name= 'implies' r= relationalExpression )*
-            loop41:
-            do {
-                int alt41=2;
-                int LA41_0 = input.LA(1);
-
-                if ( (LA41_0==70) ) {
-                    alt41=1;
+                state._fsp--;
+                if (state.failed)
+                    return e;
+                if (state.backtracking == 0) {
+                    e = x;
                 }
+                // src/org/eclipse/internal/xpand2/parser/Xpand.g:363:33: (name= 'implies' r= relationalExpression )*
+                loop41: do {
+                    int alt41 = 2;
+                    int LA41_0 = input.LA(1);
 
+                    if ((LA41_0 == 70)) {
+                        alt41 = 1;
+                    }
 
-                switch (alt41) {
-            	case 1 :
-            	    // src/org/eclipse/internal/xpand2/parser/Xpand.g:367:34: name= 'implies' r= relationalExpression
-            	    {
-            	    name=(Token)match(input,70,FOLLOW_70_in_impliesExpression1689); if (state.failed) return e;
-            	    pushFollow(FOLLOW_relationalExpression_in_impliesExpression1693);
-            	    r=relationalExpression();
+                    switch (alt41) {
+                    case 1:
+                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:363:34: name= 'implies' r= relationalExpression
+                    {
+                        name = (Token) match(input, 70, FOLLOW_70_in_impliesExpression1673);
+                        if (state.failed)
+                            return e;
+                        pushFollow(FOLLOW_relationalExpression_in_impliesExpression1677);
+                        r = relationalExpression();
 
-            	    state._fsp--;
-            	    if (state.failed) return e;
-            	    if ( state.backtracking==0 ) {
-            	      e = factory.createBooleanOperation(id(name),e,r);
-            	    }
+                        state._fsp--;
+                        if (state.failed)
+                            return e;
+                        if (state.backtracking == 0) {
+                            e = factory.createBooleanOperation(id(name), e, r);
+                            addLocation(e, startToken, /* endToken */(CommonToken) input.LT(-1));
+                        }
 
-            	    }
-            	    break;
+                    }
+                        break;
 
-            	default :
-            	    break loop41;
-                }
-            } while (true);
-
+                    default:
+                        break loop41;
+                    }
+                } while (true);
 
             }
 
-            if ( state.backtracking==0 ) {
-               addLocation(e, startToken, /*endToken*/ (CommonToken) input.LT(-1)); 
-            }
-        }
-        catch (RecognitionException re) {
+        } catch (RecognitionException re) {
             reportError(re);
-            recover(input,re);
-        }
-        finally {
+            recover(input, re);
+        } finally {
         }
         return e;
     }
+
     // $ANTLR end "impliesExpression"
 
-
     // $ANTLR start "relationalExpression"
-    // src/org/eclipse/internal/xpand2/parser/Xpand.g:371:1: relationalExpression returns [Expression e] : x= additiveExpression (name= ( '==' | '!=' | '>=' | '<=' | '>' | '<' ) r= additiveExpression )* ;
+    // src/org/eclipse/internal/xpand2/parser/Xpand.g:367:1: relationalExpression returns [Expression e] : x=
+    // additiveExpression (name= ( '==' | '!=' | '>=' | '<=' | '>' | '<' ) r= additiveExpression )* ;
     public final Expression relationalExpression() throws RecognitionException {
         Expression e = null;
 
-        Token name=null;
+        Token name = null;
         Expression x = null;
 
         Expression r = null;
 
-
-         final CommonToken startToken = (CommonToken) input.LT(1); 
+        final CommonToken startToken = (CommonToken) input.LT(1);
         try {
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:374:1: (x= additiveExpression (name= ( '==' | '!=' | '>=' | '<=' | '>' | '<' ) r= additiveExpression )* )
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:375:2: x= additiveExpression (name= ( '==' | '!=' | '>=' | '<=' | '>' | '<' ) r= additiveExpression )*
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:369:1: (x= additiveExpression (name= ( '==' | '!=' | '>='
+            // | '<=' | '>' | '<' ) r= additiveExpression )* )
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:370:2: x= additiveExpression (name= ( '==' | '!=' | '>=' |
+            // '<=' | '>' | '<' ) r= additiveExpression )*
             {
-            pushFollow(FOLLOW_additiveExpression_in_relationalExpression1725);
-            x=additiveExpression();
+                pushFollow(FOLLOW_additiveExpression_in_relationalExpression1705);
+                x = additiveExpression();
 
-            state._fsp--;
-            if (state.failed) return e;
-            if ( state.backtracking==0 ) {
-              e =x;
-            }
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:376:2: (name= ( '==' | '!=' | '>=' | '<=' | '>' | '<' ) r= additiveExpression )*
-            loop42:
-            do {
-                int alt42=2;
-                int LA42_0 = input.LA(1);
-
-                if ( ((LA42_0>=71 && LA42_0<=76)) ) {
-                    alt42=1;
+                state._fsp--;
+                if (state.failed)
+                    return e;
+                if (state.backtracking == 0) {
+                    e = x;
                 }
+                // src/org/eclipse/internal/xpand2/parser/Xpand.g:371:2: (name= ( '==' | '!=' | '>=' | '<=' | '>' | '<'
+                // ) r= additiveExpression )*
+                loop42: do {
+                    int alt42 = 2;
+                    int LA42_0 = input.LA(1);
 
+                    if (((LA42_0 >= 71 && LA42_0 <= 76))) {
+                        alt42 = 1;
+                    }
 
-                switch (alt42) {
-            	case 1 :
-            	    // src/org/eclipse/internal/xpand2/parser/Xpand.g:376:3: name= ( '==' | '!=' | '>=' | '<=' | '>' | '<' ) r= additiveExpression
-            	    {
-            	    name=(Token)input.LT(1);
-            	    if ( (input.LA(1)>=71 && input.LA(1)<=76) ) {
-            	        input.consume();
-            	        state.errorRecovery=false;state.failed=false;
-            	    }
-            	    else {
-            	        if (state.backtracking>0) {state.failed=true; return e;}
-            	        MismatchedSetException mse = new MismatchedSetException(null,input);
-            	        throw mse;
-            	    }
+                    switch (alt42) {
+                    case 1:
+                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:371:3: name= ( '==' | '!=' | '>=' | '<=' | '>' |
+                    // '<' ) r= additiveExpression
+                    {
+                        name = (Token) input.LT(1);
+                        if ((input.LA(1) >= 71 && input.LA(1) <= 76)) {
+                            input.consume();
+                            state.errorRecovery = false;
+                            state.failed = false;
+                        } else {
+                            if (state.backtracking > 0) {
+                                state.failed = true;
+                                return e;
+                            }
+                            MismatchedSetException mse = new MismatchedSetException(null, input);
+                            throw mse;
+                        }
 
-            	    pushFollow(FOLLOW_additiveExpression_in_relationalExpression1759);
-            	    r=additiveExpression();
+                        pushFollow(FOLLOW_additiveExpression_in_relationalExpression1739);
+                        r = additiveExpression();
 
-            	    state._fsp--;
-            	    if (state.failed) return e;
-            	    if ( state.backtracking==0 ) {
-            	      e = factory.createBinaryOperation(id(name),e,r);
-            	    }
+                        state._fsp--;
+                        if (state.failed)
+                            return e;
+                        if (state.backtracking == 0) {
+                            e = factory.createBinaryOperation(id(name), e, r);
+                            addLocation(e, startToken, /* endToken */(CommonToken) input.LT(-1));
+                        }
 
-            	    }
-            	    break;
+                    }
+                        break;
 
-            	default :
-            	    break loop42;
-                }
-            } while (true);
-
+                    default:
+                        break loop42;
+                    }
+                } while (true);
 
             }
 
-            if ( state.backtracking==0 ) {
-               addLocation(e, startToken, /*endToken*/ (CommonToken) input.LT(-1)); 
-            }
-        }
-        catch (RecognitionException re) {
+        } catch (RecognitionException re) {
             reportError(re);
-            recover(input,re);
-        }
-        finally {
+            recover(input, re);
+        } finally {
         }
         return e;
     }
+
     // $ANTLR end "relationalExpression"
 
-
     // $ANTLR start "additiveExpression"
-    // src/org/eclipse/internal/xpand2/parser/Xpand.g:380:1: additiveExpression returns [Expression e] : x= multiplicativeExpression (name= ( '+' | '-' ) r= multiplicativeExpression )* ;
+    // src/org/eclipse/internal/xpand2/parser/Xpand.g:375:1: additiveExpression returns [Expression e] : x=
+    // multiplicativeExpression (name= ( '+' | '-' ) r= multiplicativeExpression )* ;
     public final Expression additiveExpression() throws RecognitionException {
         Expression e = null;
 
-        Token name=null;
+        Token name = null;
         Expression x = null;
 
         Expression r = null;
 
-
-         final CommonToken startToken = (CommonToken) input.LT(1); 
+        final CommonToken startToken = (CommonToken) input.LT(1);
         try {
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:383:1: (x= multiplicativeExpression (name= ( '+' | '-' ) r= multiplicativeExpression )* )
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:384:2: x= multiplicativeExpression (name= ( '+' | '-' ) r= multiplicativeExpression )*
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:377:1: (x= multiplicativeExpression (name= ( '+' | '-' )
+            // r= multiplicativeExpression )* )
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:378:2: x= multiplicativeExpression (name= ( '+' | '-' ) r=
+            // multiplicativeExpression )*
             {
-            pushFollow(FOLLOW_multiplicativeExpression_in_additiveExpression1788);
-            x=multiplicativeExpression();
+                pushFollow(FOLLOW_multiplicativeExpression_in_additiveExpression1764);
+                x = multiplicativeExpression();
 
-            state._fsp--;
-            if (state.failed) return e;
-            if ( state.backtracking==0 ) {
-              e =x;
-            }
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:385:4: (name= ( '+' | '-' ) r= multiplicativeExpression )*
-            loop43:
-            do {
-                int alt43=2;
-                int LA43_0 = input.LA(1);
+                state._fsp--;
+                if (state.failed)
+                    return e;
+                if (state.backtracking == 0) {
+                    e = x;
+                }
+                // src/org/eclipse/internal/xpand2/parser/Xpand.g:379:4: (name= ( '+' | '-' ) r=
+                // multiplicativeExpression )*
+                loop43: do {
+                    int alt43 = 2;
+                    int LA43_0 = input.LA(1);
 
-                if ( (LA43_0==32) ) {
-                    int LA43_2 = input.LA(2);
+                    if ((LA43_0 == 32)) {
+                        int LA43_2 = input.LA(2);
 
-                    if ( ((LA43_2>=StringLiteral && LA43_2<=Identifier)||LA43_2==23||LA43_2==32||LA43_2==64||LA43_2==79||(LA43_2>=81 && LA43_2<=94)||(LA43_2>=96 && LA43_2<=98)) ) {
-                        alt43=1;
+                        if (((LA43_2 >= StringLiteral && LA43_2 <= Identifier) || LA43_2 == 23 || LA43_2 == 32 || LA43_2 == 64 || LA43_2 == 79
+                                || (LA43_2 >= 81 && LA43_2 <= 94) || (LA43_2 >= 96 && LA43_2 <= 98))) {
+                            alt43 = 1;
+                        }
+
+                    } else if ((LA43_0 == 77)) {
+                        alt43 = 1;
                     }
 
+                    switch (alt43) {
+                    case 1:
+                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:379:5: name= ( '+' | '-' ) r=
+                    // multiplicativeExpression
+                    {
+                        name = (Token) input.LT(1);
+                        if (input.LA(1) == 32 || input.LA(1) == 77) {
+                            input.consume();
+                            state.errorRecovery = false;
+                            state.failed = false;
+                        } else {
+                            if (state.backtracking > 0) {
+                                state.failed = true;
+                                return e;
+                            }
+                            MismatchedSetException mse = new MismatchedSetException(null, input);
+                            throw mse;
+                        }
 
-                }
-                else if ( (LA43_0==77) ) {
-                    alt43=1;
-                }
+                        pushFollow(FOLLOW_multiplicativeExpression_in_additiveExpression1783);
+                        r = multiplicativeExpression();
 
+                        state._fsp--;
+                        if (state.failed)
+                            return e;
+                        if (state.backtracking == 0) {
+                            e = factory.createBinaryOperation(id(name), e, r);
+                            addLocation(e, startToken, /* endToken */(CommonToken) input.LT(-1));
+                        }
 
-                switch (alt43) {
-            	case 1 :
-            	    // src/org/eclipse/internal/xpand2/parser/Xpand.g:385:5: name= ( '+' | '-' ) r= multiplicativeExpression
-            	    {
-            	    name=(Token)input.LT(1);
-            	    if ( input.LA(1)==32||input.LA(1)==77 ) {
-            	        input.consume();
-            	        state.errorRecovery=false;state.failed=false;
-            	    }
-            	    else {
-            	        if (state.backtracking>0) {state.failed=true; return e;}
-            	        MismatchedSetException mse = new MismatchedSetException(null,input);
-            	        throw mse;
-            	    }
+                    }
+                        break;
 
-            	    pushFollow(FOLLOW_multiplicativeExpression_in_additiveExpression1807);
-            	    r=multiplicativeExpression();
-
-            	    state._fsp--;
-            	    if (state.failed) return e;
-            	    if ( state.backtracking==0 ) {
-            	      e = factory.createBinaryOperation(id(name),e,r);
-            	    }
-
-            	    }
-            	    break;
-
-            	default :
-            	    break loop43;
-                }
-            } while (true);
-
+                    default:
+                        break loop43;
+                    }
+                } while (true);
 
             }
 
-            if ( state.backtracking==0 ) {
-               addLocation(e, startToken, /*endToken*/ (CommonToken) input.LT(-1)); 
-            }
-        }
-        catch (RecognitionException re) {
+        } catch (RecognitionException re) {
             reportError(re);
-            recover(input,re);
-        }
-        finally {
+            recover(input, re);
+        } finally {
         }
         return e;
     }
+
     // $ANTLR end "additiveExpression"
 
-
     // $ANTLR start "multiplicativeExpression"
-    // src/org/eclipse/internal/xpand2/parser/Xpand.g:389:1: multiplicativeExpression returns [Expression e] : x= unaryExpression (name= ( '*' | '/' ) r= unaryExpression )* ;
+    // src/org/eclipse/internal/xpand2/parser/Xpand.g:383:1: multiplicativeExpression returns [Expression e] : x=
+    // unaryExpression (name= ( '*' | '/' ) r= unaryExpression )* ;
     public final Expression multiplicativeExpression() throws RecognitionException {
         Expression e = null;
 
-        Token name=null;
+        Token name = null;
         Expression x = null;
 
         Expression r = null;
 
-
-         final CommonToken startToken = (CommonToken) input.LT(1); 
+        final CommonToken startToken = (CommonToken) input.LT(1);
         try {
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:392:1: (x= unaryExpression (name= ( '*' | '/' ) r= unaryExpression )* )
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:393:2: x= unaryExpression (name= ( '*' | '/' ) r= unaryExpression )*
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:385:1: (x= unaryExpression (name= ( '*' | '/' ) r=
+            // unaryExpression )* )
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:386:2: x= unaryExpression (name= ( '*' | '/' ) r=
+            // unaryExpression )*
             {
-            pushFollow(FOLLOW_unaryExpression_in_multiplicativeExpression1836);
-            x=unaryExpression();
+                pushFollow(FOLLOW_unaryExpression_in_multiplicativeExpression1808);
+                x = unaryExpression();
 
-            state._fsp--;
-            if (state.failed) return e;
-            if ( state.backtracking==0 ) {
-              e =x;
-            }
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:394:2: (name= ( '*' | '/' ) r= unaryExpression )*
-            loop44:
-            do {
-                int alt44=2;
-                int LA44_0 = input.LA(1);
-
-                if ( (LA44_0==25||LA44_0==78) ) {
-                    alt44=1;
+                state._fsp--;
+                if (state.failed)
+                    return e;
+                if (state.backtracking == 0) {
+                    e = x;
                 }
+                // src/org/eclipse/internal/xpand2/parser/Xpand.g:387:2: (name= ( '*' | '/' ) r= unaryExpression )*
+                loop44: do {
+                    int alt44 = 2;
+                    int LA44_0 = input.LA(1);
 
+                    if ((LA44_0 == 25 || LA44_0 == 78)) {
+                        alt44 = 1;
+                    }
 
-                switch (alt44) {
-            	case 1 :
-            	    // src/org/eclipse/internal/xpand2/parser/Xpand.g:394:3: name= ( '*' | '/' ) r= unaryExpression
-            	    {
-            	    name=(Token)input.LT(1);
-            	    if ( input.LA(1)==25||input.LA(1)==78 ) {
-            	        input.consume();
-            	        state.errorRecovery=false;state.failed=false;
-            	    }
-            	    else {
-            	        if (state.backtracking>0) {state.failed=true; return e;}
-            	        MismatchedSetException mse = new MismatchedSetException(null,input);
-            	        throw mse;
-            	    }
+                    switch (alt44) {
+                    case 1:
+                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:387:3: name= ( '*' | '/' ) r= unaryExpression
+                    {
+                        name = (Token) input.LT(1);
+                        if (input.LA(1) == 25 || input.LA(1) == 78) {
+                            input.consume();
+                            state.errorRecovery = false;
+                            state.failed = false;
+                        } else {
+                            if (state.backtracking > 0) {
+                                state.failed = true;
+                                return e;
+                            }
+                            MismatchedSetException mse = new MismatchedSetException(null, input);
+                            throw mse;
+                        }
 
-            	    pushFollow(FOLLOW_unaryExpression_in_multiplicativeExpression1854);
-            	    r=unaryExpression();
+                        pushFollow(FOLLOW_unaryExpression_in_multiplicativeExpression1826);
+                        r = unaryExpression();
 
-            	    state._fsp--;
-            	    if (state.failed) return e;
-            	    if ( state.backtracking==0 ) {
-            	      e = factory.createBinaryOperation(id(name),e,r);
-            	    }
+                        state._fsp--;
+                        if (state.failed)
+                            return e;
+                        if (state.backtracking == 0) {
+                            e = factory.createBinaryOperation(id(name), e, r);
+                            addLocation(e, startToken, /* endToken */(CommonToken) input.LT(-1));
+                        }
 
-            	    }
-            	    break;
+                    }
+                        break;
 
-            	default :
-            	    break loop44;
-                }
-            } while (true);
-
+                    default:
+                        break loop44;
+                    }
+                } while (true);
 
             }
 
-            if ( state.backtracking==0 ) {
-               addLocation(e, startToken, /*endToken*/ (CommonToken) input.LT(-1)); 
-            }
-        }
-        catch (RecognitionException re) {
+        } catch (RecognitionException re) {
             reportError(re);
-            recover(input,re);
-        }
-        finally {
+            recover(input, re);
+        } finally {
         }
         return e;
     }
+
     // $ANTLR end "multiplicativeExpression"
 
-
     // $ANTLR start "unaryExpression"
-    // src/org/eclipse/internal/xpand2/parser/Xpand.g:398:1: unaryExpression returns [Expression e] : (x= infixExpression | name= '!' x= infixExpression | name= '-' x= infixExpression );
+    // src/org/eclipse/internal/xpand2/parser/Xpand.g:391:1: unaryExpression returns [Expression e] : (x=
+    // infixExpression | name= '!' x= infixExpression | name= '-' x= infixExpression );
     public final Expression unaryExpression() throws RecognitionException {
         Expression e = null;
 
-        Token name=null;
+        Token name = null;
         Expression x = null;
 
-
-         final CommonToken startToken = (CommonToken) input.LT(1); 
+        final CommonToken startToken = (CommonToken) input.LT(1);
         try {
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:401:1: (x= infixExpression | name= '!' x= infixExpression | name= '-' x= infixExpression )
-            int alt45=3;
-            switch ( input.LA(1) ) {
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:394:1: (x= infixExpression | name= '!' x= infixExpression
+            // | name= '-' x= infixExpression )
+            int alt45 = 3;
+            switch (input.LA(1)) {
             case StringLiteral:
             case IntLiteral:
             case Identifier:
@@ -3354,93 +3541,98 @@
             case 94:
             case 96:
             case 97:
-            case 98:
-                {
-                alt45=1;
-                }
+            case 98: {
+                alt45 = 1;
+            }
                 break;
-            case 79:
-                {
-                alt45=2;
-                }
+            case 79: {
+                alt45 = 2;
+            }
                 break;
-            case 32:
-                {
-                alt45=3;
-                }
+            case 32: {
+                alt45 = 3;
+            }
                 break;
             default:
-                if (state.backtracking>0) {state.failed=true; return e;}
-                NoViableAltException nvae =
-                    new NoViableAltException("", 45, 0, input);
+                if (state.backtracking > 0) {
+                    state.failed = true;
+                    return e;
+                }
+                NoViableAltException nvae = new NoViableAltException("", 45, 0, input);
 
                 throw nvae;
             }
 
             switch (alt45) {
-                case 1 :
-                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:402:2: x= infixExpression
-                    {
-                    pushFollow(FOLLOW_infixExpression_in_unaryExpression1883);
-                    x=infixExpression();
+            case 1:
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:395:2: x= infixExpression
+            {
+                pushFollow(FOLLOW_infixExpression_in_unaryExpression1855);
+                x = infixExpression();
 
-                    state._fsp--;
-                    if (state.failed) return e;
-                    if ( state.backtracking==0 ) {
-                      e =x;
-                    }
-
-                    }
-                    break;
-                case 2 :
-                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:403:3: name= '!' x= infixExpression
-                    {
-                    name=(Token)match(input,79,FOLLOW_79_in_unaryExpression1891); if (state.failed) return e;
-                    pushFollow(FOLLOW_infixExpression_in_unaryExpression1895);
-                    x=infixExpression();
-
-                    state._fsp--;
-                    if (state.failed) return e;
-                    if ( state.backtracking==0 ) {
-                      e = factory.createOperationCall(id(name),x);
-                    }
-
-                    }
-                    break;
-                case 3 :
-                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:404:3: name= '-' x= infixExpression
-                    {
-                    name=(Token)match(input,32,FOLLOW_32_in_unaryExpression1903); if (state.failed) return e;
-                    pushFollow(FOLLOW_infixExpression_in_unaryExpression1907);
-                    x=infixExpression();
-
-                    state._fsp--;
-                    if (state.failed) return e;
-                    if ( state.backtracking==0 ) {
-                      e = factory.createOperationCall(id(name),x);
-                    }
-
-                    }
-                    break;
+                state._fsp--;
+                if (state.failed)
+                    return e;
+                if (state.backtracking == 0) {
+                    e = x;
+                }
 
             }
-            if ( state.backtracking==0 ) {
-               addLocation(e, startToken, /*endToken*/ (CommonToken) input.LT(-1)); 
+                break;
+            case 2:
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:396:3: name= '!' x= infixExpression
+            {
+                name = (Token) match(input, 79, FOLLOW_79_in_unaryExpression1863);
+                if (state.failed)
+                    return e;
+                pushFollow(FOLLOW_infixExpression_in_unaryExpression1867);
+                x = infixExpression();
+
+                state._fsp--;
+                if (state.failed)
+                    return e;
+                if (state.backtracking == 0) {
+                    e = factory.createOperationCall(id(name), x);
+                }
+
             }
-        }
-        catch (RecognitionException re) {
+                break;
+            case 3:
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:397:3: name= '-' x= infixExpression
+            {
+                name = (Token) match(input, 32, FOLLOW_32_in_unaryExpression1875);
+                if (state.failed)
+                    return e;
+                pushFollow(FOLLOW_infixExpression_in_unaryExpression1879);
+                x = infixExpression();
+
+                state._fsp--;
+                if (state.failed)
+                    return e;
+                if (state.backtracking == 0) {
+                    e = factory.createOperationCall(id(name), x);
+                }
+
+            }
+                break;
+
+            }
+            if (state.backtracking == 0) {
+                addLocation(e, startToken, /* endToken */(CommonToken) input.LT(-1));
+            }
+        } catch (RecognitionException re) {
             reportError(re);
-            recover(input,re);
-        }
-        finally {
+            recover(input, re);
+        } finally {
         }
         return e;
     }
+
     // $ANTLR end "unaryExpression"
 
-
     // $ANTLR start "infixExpression"
-    // src/org/eclipse/internal/xpand2/parser/Xpand.g:408:1: infixExpression returns [Expression e] : x= primaryExpression ( '.' op= featureCall )* ;
+    // src/org/eclipse/internal/xpand2/parser/Xpand.g:401:1: infixExpression returns [Expression e] : x=
+    // primaryExpression ( '.' op= featureCall )* ;
     public final Expression infixExpression() throws RecognitionException {
         Expression e = null;
 
@@ -3448,89 +3640,92 @@
 
         FeatureCall op = null;
 
-
-         final CommonToken startToken = (CommonToken) input.LT(1); 
+        final CommonToken startToken = (CommonToken) input.LT(1);
         try {
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:411:1: (x= primaryExpression ( '.' op= featureCall )* )
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:412:2: x= primaryExpression ( '.' op= featureCall )*
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:404:1: (x= primaryExpression ( '.' op= featureCall )* )
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:405:2: x= primaryExpression ( '.' op= featureCall )*
             {
-            pushFollow(FOLLOW_primaryExpression_in_infixExpression1934);
-            x=primaryExpression();
+                pushFollow(FOLLOW_primaryExpression_in_infixExpression1906);
+                x = primaryExpression();
 
-            state._fsp--;
-            if (state.failed) return e;
-            if ( state.backtracking==0 ) {
-              e =x;
-            }
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:412:30: ( '.' op= featureCall )*
-            loop46:
-            do {
-                int alt46=2;
-                int LA46_0 = input.LA(1);
-
-                if ( (LA46_0==80) ) {
-                    alt46=1;
+                state._fsp--;
+                if (state.failed)
+                    return e;
+                if (state.backtracking == 0) {
+                    e = x;
                 }
+                // src/org/eclipse/internal/xpand2/parser/Xpand.g:405:30: ( '.' op= featureCall )*
+                loop46: do {
+                    int alt46 = 2;
+                    int LA46_0 = input.LA(1);
 
+                    if ((LA46_0 == 80)) {
+                        alt46 = 1;
+                    }
 
-                switch (alt46) {
-            	case 1 :
-            	    // src/org/eclipse/internal/xpand2/parser/Xpand.g:412:32: '.' op= featureCall
-            	    {
-            	    match(input,80,FOLLOW_80_in_infixExpression1940); if (state.failed) return e;
-            	    pushFollow(FOLLOW_featureCall_in_infixExpression1944);
-            	    op=featureCall();
+                    switch (alt46) {
+                    case 1:
+                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:405:32: '.' op= featureCall
+                    {
+                        match(input, 80, FOLLOW_80_in_infixExpression1912);
+                        if (state.failed)
+                            return e;
+                        pushFollow(FOLLOW_featureCall_in_infixExpression1916);
+                        op = featureCall();
 
-            	    state._fsp--;
-            	    if (state.failed) return e;
-            	    if ( state.backtracking==0 ) {
-            	       if (op!=null) { op.setTarget(e);e =op; }
-            	    }
+                        state._fsp--;
+                        if (state.failed)
+                            return e;
+                        if (state.backtracking == 0) {
+                            if (op != null) {
+                                op.setTarget(e);
+                                e = op;
+                            }
+                        }
 
-            	    }
-            	    break;
+                    }
+                        break;
 
-            	default :
-            	    break loop46;
-                }
-            } while (true);
-
+                    default:
+                        break loop46;
+                    }
+                } while (true);
 
             }
 
-            if ( state.backtracking==0 ) {
-               addLocation(e, startToken, /*endToken*/ (CommonToken) input.LT(-1)); 
+            if (state.backtracking == 0) {
+                addLocation(e, startToken, /* endToken */(CommonToken) input.LT(-1));
             }
-        }
-        catch (RecognitionException re) {
+        } catch (RecognitionException re) {
             reportError(re);
-            recover(input,re);
-        }
-        finally {
+            recover(input, re);
+        } finally {
         }
         return e;
     }
+
     // $ANTLR end "infixExpression"
 
-
     // $ANTLR start "primaryExpression"
-    // src/org/eclipse/internal/xpand2/parser/Xpand.g:416:1: primaryExpression returns [Expression e] : (c= StringLiteral | x= featureCall | x= booleanLiteral | x= numberLiteral | x= nullLiteral | x= listLiteral | x= constructorCall | x= globalVarExpression | x= paranthesizedExpression );
+    // src/org/eclipse/internal/xpand2/parser/Xpand.g:409:1: primaryExpression returns [Expression e] : (c=
+    // StringLiteral | x= featureCall | x= booleanLiteral | x= numberLiteral | x= nullLiteral | x= listLiteral | x=
+    // constructorCall | x= globalVarExpression | x= paranthesizedExpression );
     public final Expression primaryExpression() throws RecognitionException {
         Expression e = null;
 
-        Token c=null;
+        Token c = null;
         Expression x = null;
 
-
-         final CommonToken startToken = (CommonToken) input.LT(1); 
+        final CommonToken startToken = (CommonToken) input.LT(1);
         try {
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:419:1: (c= StringLiteral | x= featureCall | x= booleanLiteral | x= numberLiteral | x= nullLiteral | x= listLiteral | x= constructorCall | x= globalVarExpression | x= paranthesizedExpression )
-            int alt47=9;
-            switch ( input.LA(1) ) {
-            case StringLiteral:
-                {
-                alt47=1;
-                }
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:412:1: (c= StringLiteral | x= featureCall | x=
+            // booleanLiteral | x= numberLiteral | x= nullLiteral | x= listLiteral | x= constructorCall | x=
+            // globalVarExpression | x= paranthesizedExpression )
+            int alt47 = 9;
+            switch (input.LA(1)) {
+            case StringLiteral: {
+                alt47 = 1;
+            }
                 break;
             case Identifier:
             case 86:
@@ -3544,278 +3739,285 @@
             case 94:
             case 96:
             case 97:
-            case 98:
-                {
-                alt47=2;
-                }
+            case 98: {
+                alt47 = 2;
+            }
                 break;
             case 83:
-            case 84:
-                {
-                alt47=3;
-                }
+            case 84: {
+                alt47 = 3;
+            }
                 break;
-            case IntLiteral:
-                {
-                alt47=4;
-                }
+            case IntLiteral: {
+                alt47 = 4;
+            }
                 break;
-            case 85:
-                {
-                alt47=5;
-                }
+            case 85: {
+                alt47 = 5;
+            }
                 break;
-            case 64:
-                {
-                alt47=6;
-                }
+            case 64: {
+                alt47 = 6;
+            }
                 break;
-            case 82:
-                {
-                alt47=7;
-                }
+            case 82: {
+                alt47 = 7;
+            }
                 break;
-            case 81:
-                {
-                alt47=8;
-                }
+            case 81: {
+                alt47 = 8;
+            }
                 break;
-            case 23:
-                {
-                alt47=9;
-                }
+            case 23: {
+                alt47 = 9;
+            }
                 break;
             default:
-                if (state.backtracking>0) {state.failed=true; return e;}
-                NoViableAltException nvae =
-                    new NoViableAltException("", 47, 0, input);
+                if (state.backtracking > 0) {
+                    state.failed = true;
+                    return e;
+                }
+                NoViableAltException nvae = new NoViableAltException("", 47, 0, input);
 
                 throw nvae;
             }
 
             switch (alt47) {
-                case 1 :
-                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:420:4: c= StringLiteral
-                    {
-                    c=(Token)match(input,StringLiteral,FOLLOW_StringLiteral_in_primaryExpression1979); if (state.failed) return e;
-                    if ( state.backtracking==0 ) {
-                       e = factory.createStringLiteral(id(c));
-                    }
-
-                    }
-                    break;
-                case 2 :
-                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:421:5: x= featureCall
-                    {
-                    pushFollow(FOLLOW_featureCall_in_primaryExpression1990);
-                    x=featureCall();
-
-                    state._fsp--;
-                    if (state.failed) return e;
-                    if ( state.backtracking==0 ) {
-                      e =x;
-                    }
-
-                    }
-                    break;
-                case 3 :
-                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:422:5: x= booleanLiteral
-                    {
-                    pushFollow(FOLLOW_booleanLiteral_in_primaryExpression2000);
-                    x=booleanLiteral();
-
-                    state._fsp--;
-                    if (state.failed) return e;
-                    if ( state.backtracking==0 ) {
-                      e =x;
-                    }
-
-                    }
-                    break;
-                case 4 :
-                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:423:5: x= numberLiteral
-                    {
-                    pushFollow(FOLLOW_numberLiteral_in_primaryExpression2010);
-                    x=numberLiteral();
-
-                    state._fsp--;
-                    if (state.failed) return e;
-                    if ( state.backtracking==0 ) {
-                      e =x;
-                    }
-
-                    }
-                    break;
-                case 5 :
-                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:424:5: x= nullLiteral
-                    {
-                    pushFollow(FOLLOW_nullLiteral_in_primaryExpression2020);
-                    x=nullLiteral();
-
-                    state._fsp--;
-                    if (state.failed) return e;
-                    if ( state.backtracking==0 ) {
-                      e =x;
-                    }
-
-                    }
-                    break;
-                case 6 :
-                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:425:5: x= listLiteral
-                    {
-                    pushFollow(FOLLOW_listLiteral_in_primaryExpression2030);
-                    x=listLiteral();
-
-                    state._fsp--;
-                    if (state.failed) return e;
-                    if ( state.backtracking==0 ) {
-                      e =x;
-                    }
-
-                    }
-                    break;
-                case 7 :
-                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:426:5: x= constructorCall
-                    {
-                    pushFollow(FOLLOW_constructorCall_in_primaryExpression2040);
-                    x=constructorCall();
-
-                    state._fsp--;
-                    if (state.failed) return e;
-                    if ( state.backtracking==0 ) {
-                      e =x;
-                    }
-
-                    }
-                    break;
-                case 8 :
-                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:427:5: x= globalVarExpression
-                    {
-                    pushFollow(FOLLOW_globalVarExpression_in_primaryExpression2050);
-                    x=globalVarExpression();
-
-                    state._fsp--;
-                    if (state.failed) return e;
-                    if ( state.backtracking==0 ) {
-                      e =x;
-                    }
-
-                    }
-                    break;
-                case 9 :
-                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:428:5: x= paranthesizedExpression
-                    {
-                    pushFollow(FOLLOW_paranthesizedExpression_in_primaryExpression2060);
-                    x=paranthesizedExpression();
-
-                    state._fsp--;
-                    if (state.failed) return e;
-                    if ( state.backtracking==0 ) {
-                      e =x;
-                    }
-
-                    }
-                    break;
+            case 1:
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:413:4: c= StringLiteral
+            {
+                c = (Token) match(input, StringLiteral, FOLLOW_StringLiteral_in_primaryExpression1951);
+                if (state.failed)
+                    return e;
+                if (state.backtracking == 0) {
+                    e = factory.createStringLiteral(id(c));
+                }
 
             }
-            if ( state.backtracking==0 ) {
-               addLocation(e, startToken, /*endToken*/ (CommonToken) input.LT(-1)); 
+                break;
+            case 2:
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:414:5: x= featureCall
+            {
+                pushFollow(FOLLOW_featureCall_in_primaryExpression1962);
+                x = featureCall();
+
+                state._fsp--;
+                if (state.failed)
+                    return e;
+                if (state.backtracking == 0) {
+                    e = x;
+                }
+
             }
-        }
-        catch (RecognitionException re) {
+                break;
+            case 3:
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:415:5: x= booleanLiteral
+            {
+                pushFollow(FOLLOW_booleanLiteral_in_primaryExpression1972);
+                x = booleanLiteral();
+
+                state._fsp--;
+                if (state.failed)
+                    return e;
+                if (state.backtracking == 0) {
+                    e = x;
+                }
+
+            }
+                break;
+            case 4:
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:416:5: x= numberLiteral
+            {
+                pushFollow(FOLLOW_numberLiteral_in_primaryExpression1982);
+                x = numberLiteral();
+
+                state._fsp--;
+                if (state.failed)
+                    return e;
+                if (state.backtracking == 0) {
+                    e = x;
+                }
+
+            }
+                break;
+            case 5:
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:417:5: x= nullLiteral
+            {
+                pushFollow(FOLLOW_nullLiteral_in_primaryExpression1992);
+                x = nullLiteral();
+
+                state._fsp--;
+                if (state.failed)
+                    return e;
+                if (state.backtracking == 0) {
+                    e = x;
+                }
+
+            }
+                break;
+            case 6:
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:418:5: x= listLiteral
+            {
+                pushFollow(FOLLOW_listLiteral_in_primaryExpression2002);
+                x = listLiteral();
+
+                state._fsp--;
+                if (state.failed)
+                    return e;
+                if (state.backtracking == 0) {
+                    e = x;
+                }
+
+            }
+                break;
+            case 7:
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:419:5: x= constructorCall
+            {
+                pushFollow(FOLLOW_constructorCall_in_primaryExpression2012);
+                x = constructorCall();
+
+                state._fsp--;
+                if (state.failed)
+                    return e;
+                if (state.backtracking == 0) {
+                    e = x;
+                }
+
+            }
+                break;
+            case 8:
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:420:5: x= globalVarExpression
+            {
+                pushFollow(FOLLOW_globalVarExpression_in_primaryExpression2022);
+                x = globalVarExpression();
+
+                state._fsp--;
+                if (state.failed)
+                    return e;
+                if (state.backtracking == 0) {
+                    e = x;
+                }
+
+            }
+                break;
+            case 9:
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:421:5: x= paranthesizedExpression
+            {
+                pushFollow(FOLLOW_paranthesizedExpression_in_primaryExpression2032);
+                x = paranthesizedExpression();
+
+                state._fsp--;
+                if (state.failed)
+                    return e;
+                if (state.backtracking == 0) {
+                    e = x;
+                }
+
+            }
+                break;
+
+            }
+            if (state.backtracking == 0) {
+                addLocation(e, startToken, /* endToken */(CommonToken) input.LT(-1));
+            }
+        } catch (RecognitionException re) {
             reportError(re);
-            recover(input,re);
-        }
-        finally {
+            recover(input, re);
+        } finally {
         }
         return e;
     }
+
     // $ANTLR end "primaryExpression"
 
-
     // $ANTLR start "paranthesizedExpression"
-    // src/org/eclipse/internal/xpand2/parser/Xpand.g:431:1: paranthesizedExpression returns [Expression e] : '(' x= expression ')' ;
+    // src/org/eclipse/internal/xpand2/parser/Xpand.g:424:1: paranthesizedExpression returns [Expression e] : '(' x=
+    // expression ')' ;
     public final Expression paranthesizedExpression() throws RecognitionException {
         Expression e = null;
 
         Expression x = null;
 
-
-         final CommonToken startToken = (CommonToken) input.LT(1); 
+        final CommonToken startToken = (CommonToken) input.LT(1);
         try {
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:434:1: ( '(' x= expression ')' )
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:435:5: '(' x= expression ')'
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:427:1: ( '(' x= expression ')' )
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:428:5: '(' x= expression ')'
             {
-            match(input,23,FOLLOW_23_in_paranthesizedExpression2087); if (state.failed) return e;
-            pushFollow(FOLLOW_expression_in_paranthesizedExpression2091);
-            x=expression();
+                match(input, 23, FOLLOW_23_in_paranthesizedExpression2059);
+                if (state.failed)
+                    return e;
+                pushFollow(FOLLOW_expression_in_paranthesizedExpression2063);
+                x = expression();
 
-            state._fsp--;
-            if (state.failed) return e;
-            match(input,26,FOLLOW_26_in_paranthesizedExpression2093); if (state.failed) return e;
-            if ( state.backtracking==0 ) {
-              e =factory.createParanthesizedExpression(x);
-            }
+                state._fsp--;
+                if (state.failed)
+                    return e;
+                match(input, 26, FOLLOW_26_in_paranthesizedExpression2065);
+                if (state.failed)
+                    return e;
+                if (state.backtracking == 0) {
+                    e = factory.createParanthesizedExpression(x);
+                }
 
             }
 
-            if ( state.backtracking==0 ) {
-               addLocation(e, startToken, /*endToken*/ (CommonToken) input.LT(-1)); 
+            if (state.backtracking == 0) {
+                addLocation(e, startToken, /* endToken */(CommonToken) input.LT(-1));
             }
-        }
-        catch (RecognitionException re) {
+        } catch (RecognitionException re) {
             reportError(re);
-            recover(input,re);
-        }
-        finally {
+            recover(input, re);
+        } finally {
         }
         return e;
     }
+
     // $ANTLR end "paranthesizedExpression"
 
-
     // $ANTLR start "globalVarExpression"
-    // src/org/eclipse/internal/xpand2/parser/Xpand.g:439:1: globalVarExpression returns [GlobalVarExpression e] : 'GLOBALVAR' name= identifier ;
+    // src/org/eclipse/internal/xpand2/parser/Xpand.g:432:1: globalVarExpression returns [GlobalVarExpression e] :
+    // 'GLOBALVAR' name= identifier ;
     public final GlobalVarExpression globalVarExpression() throws RecognitionException {
         GlobalVarExpression e = null;
 
         Identifier name = null;
 
-
-         final CommonToken startToken = (CommonToken) input.LT(1); 
+        final CommonToken startToken = (CommonToken) input.LT(1);
         try {
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:442:1: ( 'GLOBALVAR' name= identifier )
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:443:5: 'GLOBALVAR' name= identifier
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:435:1: ( 'GLOBALVAR' name= identifier )
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:436:5: 'GLOBALVAR' name= identifier
             {
-            match(input,81,FOLLOW_81_in_globalVarExpression2122); if (state.failed) return e;
-            pushFollow(FOLLOW_identifier_in_globalVarExpression2126);
-            name=identifier();
+                match(input, 81, FOLLOW_81_in_globalVarExpression2094);
+                if (state.failed)
+                    return e;
+                pushFollow(FOLLOW_identifier_in_globalVarExpression2098);
+                name = identifier();
 
-            state._fsp--;
-            if (state.failed) return e;
-            if ( state.backtracking==0 ) {
-              e = factory.createGlobalVarExpression(name);
-            }
+                state._fsp--;
+                if (state.failed)
+                    return e;
+                if (state.backtracking == 0) {
+                    e = factory.createGlobalVarExpression(name);
+                }
 
             }
 
-            if ( state.backtracking==0 ) {
-               addLocation(e, startToken, /*endToken*/ (CommonToken) input.LT(-1)); 
+            if (state.backtracking == 0) {
+                addLocation(e, startToken, /* endToken */(CommonToken) input.LT(-1));
             }
-        }
-        catch (RecognitionException re) {
+        } catch (RecognitionException re) {
             reportError(re);
-            recover(input,re);
-        }
-        finally {
+            recover(input, re);
+        } finally {
         }
         return e;
     }
+
     // $ANTLR end "globalVarExpression"
 
-
     // $ANTLR start "featureCall"
-    // src/org/eclipse/internal/xpand2/parser/Xpand.g:446:1: featureCall returns [FeatureCall e] : (id1= identifier '(' (l= parameterList )? ')' | t= type | x= collectionExpression );
+    // src/org/eclipse/internal/xpand2/parser/Xpand.g:439:1: featureCall returns [FeatureCall e] : (id1= identifier '('
+    // (l= parameterList )? ')' | t= type | x= collectionExpression );
     public final FeatureCall featureCall() throws RecognitionException {
         FeatureCall e = null;
 
@@ -3827,37 +4029,37 @@
 
         FeatureCall x = null;
 
-
-         final CommonToken startToken = (CommonToken) input.LT(1); 
+        final CommonToken startToken = (CommonToken) input.LT(1);
         try {
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:449:1: (id1= identifier '(' (l= parameterList )? ')' | t= type | x= collectionExpression )
-            int alt49=3;
-            switch ( input.LA(1) ) {
-            case Identifier:
-                {
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:442:1: (id1= identifier '(' (l= parameterList )? ')' | t=
+            // type | x= collectionExpression )
+            int alt49 = 3;
+            switch (input.LA(1)) {
+            case Identifier: {
                 int LA49_1 = input.LA(2);
 
-                if ( (LA49_1==EOF||LA49_1==TEXT||LA49_1==Identifier||(LA49_1>=24 && LA49_1<=26)||LA49_1==29||LA49_1==32||(LA49_1>=36 && LA49_1<=37)||LA49_1==40||(LA49_1>=51 && LA49_1<=53)||(LA49_1>=57 && LA49_1<=59)||(LA49_1>=61 && LA49_1<=62)||(LA49_1>=65 && LA49_1<=78)||LA49_1==80) ) {
-                    alt49=2;
-                }
-                else if ( (LA49_1==23) ) {
-                    alt49=1;
-                }
-                else {
-                    if (state.backtracking>0) {state.failed=true; return e;}
-                    NoViableAltException nvae =
-                        new NoViableAltException("", 49, 1, input);
+                if ((LA49_1 == EOF || LA49_1 == TEXT || LA49_1 == Identifier || (LA49_1 >= 24 && LA49_1 <= 26) || LA49_1 == 29 || LA49_1 == 32
+                        || (LA49_1 >= 36 && LA49_1 <= 37) || LA49_1 == 40 || (LA49_1 >= 51 && LA49_1 <= 53) || (LA49_1 >= 57 && LA49_1 <= 59)
+                        || (LA49_1 >= 61 && LA49_1 <= 62) || (LA49_1 >= 65 && LA49_1 <= 78) || LA49_1 == 80)) {
+                    alt49 = 2;
+                } else if ((LA49_1 == 23)) {
+                    alt49 = 1;
+                } else {
+                    if (state.backtracking > 0) {
+                        state.failed = true;
+                        return e;
+                    }
+                    NoViableAltException nvae = new NoViableAltException("", 49, 1, input);
 
                     throw nvae;
                 }
-                }
+            }
                 break;
             case 96:
             case 97:
-            case 98:
-                {
-                alt49=2;
-                }
+            case 98: {
+                alt49 = 2;
+            }
                 break;
             case 86:
             case 87:
@@ -3867,564 +4069,613 @@
             case 91:
             case 92:
             case 93:
-            case 94:
-                {
-                alt49=3;
-                }
+            case 94: {
+                alt49 = 3;
+            }
                 break;
             default:
-                if (state.backtracking>0) {state.failed=true; return e;}
-                NoViableAltException nvae =
-                    new NoViableAltException("", 49, 0, input);
+                if (state.backtracking > 0) {
+                    state.failed = true;
+                    return e;
+                }
+                NoViableAltException nvae = new NoViableAltException("", 49, 0, input);
 
                 throw nvae;
             }
 
             switch (alt49) {
-                case 1 :
-                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:450:2: id1= identifier '(' (l= parameterList )? ')'
-                    {
-                    pushFollow(FOLLOW_identifier_in_featureCall2153);
-                    id1=identifier();
+            case 1:
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:443:2: id1= identifier '(' (l= parameterList )? ')'
+            {
+                pushFollow(FOLLOW_identifier_in_featureCall2125);
+                id1 = identifier();
+
+                state._fsp--;
+                if (state.failed)
+                    return e;
+                match(input, 23, FOLLOW_23_in_featureCall2127);
+                if (state.failed)
+                    return e;
+                // src/org/eclipse/internal/xpand2/parser/Xpand.g:443:21: (l= parameterList )?
+                int alt48 = 2;
+                int LA48_0 = input.LA(1);
+
+                if (((LA48_0 >= StringLiteral && LA48_0 <= Identifier) || LA48_0 == 23 || LA48_0 == 32 || LA48_0 == 55 || LA48_0 == 60
+                        || (LA48_0 >= 63 && LA48_0 <= 64) || LA48_0 == 79 || (LA48_0 >= 81 && LA48_0 <= 94) || (LA48_0 >= 96 && LA48_0 <= 98))) {
+                    alt48 = 1;
+                }
+                switch (alt48) {
+                case 1:
+                // src/org/eclipse/internal/xpand2/parser/Xpand.g:443:22: l= parameterList
+                {
+                    pushFollow(FOLLOW_parameterList_in_featureCall2132);
+                    l = parameterList();
 
                     state._fsp--;
-                    if (state.failed) return e;
-                    match(input,23,FOLLOW_23_in_featureCall2155); if (state.failed) return e;
-                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:450:21: (l= parameterList )?
-                    int alt48=2;
-                    int LA48_0 = input.LA(1);
+                    if (state.failed)
+                        return e;
 
-                    if ( ((LA48_0>=StringLiteral && LA48_0<=Identifier)||LA48_0==23||LA48_0==32||LA48_0==55||LA48_0==60||(LA48_0>=63 && LA48_0<=64)||LA48_0==79||(LA48_0>=81 && LA48_0<=94)||(LA48_0>=96 && LA48_0<=98)) ) {
-                        alt48=1;
-                    }
-                    switch (alt48) {
-                        case 1 :
-                            // src/org/eclipse/internal/xpand2/parser/Xpand.g:450:22: l= parameterList
-                            {
-                            pushFollow(FOLLOW_parameterList_in_featureCall2160);
-                            l=parameterList();
-
-                            state._fsp--;
-                            if (state.failed) return e;
-
-                            }
-                            break;
-
-                    }
-
-                    match(input,26,FOLLOW_26_in_featureCall2164); if (state.failed) return e;
-                    if ( state.backtracking==0 ) {
-                      e = factory.createOperationCall(id1,l);
-                    }
-
-                    }
+                }
                     break;
-                case 2 :
-                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:451:5: t= type
-                    {
-                    pushFollow(FOLLOW_type_in_featureCall2174);
-                    t=type();
 
-                    state._fsp--;
-                    if (state.failed) return e;
-                    if ( state.backtracking==0 ) {
-                      e =factory.createFeatureCall(t,null);
-                    }
+                }
 
-                    }
-                    break;
-                case 3 :
-                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:452:5: x= collectionExpression
-                    {
-                    pushFollow(FOLLOW_collectionExpression_in_featureCall2185);
-                    x=collectionExpression();
-
-                    state._fsp--;
-                    if (state.failed) return e;
-                    if ( state.backtracking==0 ) {
-                      e =x;
-                    }
-
-                    }
-                    break;
+                match(input, 26, FOLLOW_26_in_featureCall2136);
+                if (state.failed)
+                    return e;
+                if (state.backtracking == 0) {
+                    e = factory.createOperationCall(id1, l);
+                }
 
             }
-            if ( state.backtracking==0 ) {
-               addLocation(e, startToken, /*endToken*/ (CommonToken) input.LT(-1)); 
+                break;
+            case 2:
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:444:5: t= type
+            {
+                pushFollow(FOLLOW_type_in_featureCall2146);
+                t = type();
+
+                state._fsp--;
+                if (state.failed)
+                    return e;
+                if (state.backtracking == 0) {
+                    e = factory.createFeatureCall(t, null);
+                }
+
             }
-        }
-        catch (RecognitionException re) {
+                break;
+            case 3:
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:445:5: x= collectionExpression
+            {
+                pushFollow(FOLLOW_collectionExpression_in_featureCall2157);
+                x = collectionExpression();
+
+                state._fsp--;
+                if (state.failed)
+                    return e;
+                if (state.backtracking == 0) {
+                    e = x;
+                }
+
+            }
+                break;
+
+            }
+            if (state.backtracking == 0) {
+                addLocation(e, startToken, /* endToken */(CommonToken) input.LT(-1));
+            }
+        } catch (RecognitionException re) {
             reportError(re);
-            recover(input,re);
-        }
-        finally {
+            recover(input, re);
+        } finally {
         }
         return e;
     }
+
     // $ANTLR end "featureCall"
 
-
     // $ANTLR start "listLiteral"
-    // src/org/eclipse/internal/xpand2/parser/Xpand.g:456:1: listLiteral returns [Expression e] : '{' (l= parameterList )? '}' ;
+    // src/org/eclipse/internal/xpand2/parser/Xpand.g:449:1: listLiteral returns [Expression e] : '{' (l= parameterList
+    // )? '}' ;
     public final Expression listLiteral() throws RecognitionException {
         Expression e = null;
 
         List<Expression> l = null;
 
-
-         final CommonToken startToken = (CommonToken) input.LT(1); 
+        final CommonToken startToken = (CommonToken) input.LT(1);
         try {
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:459:1: ( '{' (l= parameterList )? '}' )
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:460:2: '{' (l= parameterList )? '}'
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:452:1: ( '{' (l= parameterList )? '}' )
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:453:2: '{' (l= parameterList )? '}'
             {
-            match(input,64,FOLLOW_64_in_listLiteral2211); if (state.failed) return e;
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:460:6: (l= parameterList )?
-            int alt50=2;
-            int LA50_0 = input.LA(1);
+                match(input, 64, FOLLOW_64_in_listLiteral2183);
+                if (state.failed)
+                    return e;
+                // src/org/eclipse/internal/xpand2/parser/Xpand.g:453:6: (l= parameterList )?
+                int alt50 = 2;
+                int LA50_0 = input.LA(1);
 
-            if ( ((LA50_0>=StringLiteral && LA50_0<=Identifier)||LA50_0==23||LA50_0==32||LA50_0==55||LA50_0==60||(LA50_0>=63 && LA50_0<=64)||LA50_0==79||(LA50_0>=81 && LA50_0<=94)||(LA50_0>=96 && LA50_0<=98)) ) {
-                alt50=1;
-            }
-            switch (alt50) {
-                case 1 :
-                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:460:7: l= parameterList
-                    {
-                    pushFollow(FOLLOW_parameterList_in_listLiteral2216);
-                    l=parameterList();
+                if (((LA50_0 >= StringLiteral && LA50_0 <= Identifier) || LA50_0 == 23 || LA50_0 == 32 || LA50_0 == 55 || LA50_0 == 60
+                        || (LA50_0 >= 63 && LA50_0 <= 64) || LA50_0 == 79 || (LA50_0 >= 81 && LA50_0 <= 94) || (LA50_0 >= 96 && LA50_0 <= 98))) {
+                    alt50 = 1;
+                }
+                switch (alt50) {
+                case 1:
+                // src/org/eclipse/internal/xpand2/parser/Xpand.g:453:7: l= parameterList
+                {
+                    pushFollow(FOLLOW_parameterList_in_listLiteral2188);
+                    l = parameterList();
 
                     state._fsp--;
-                    if (state.failed) return e;
+                    if (state.failed)
+                        return e;
 
-                    }
+                }
                     break;
 
-            }
+                }
 
-            match(input,67,FOLLOW_67_in_listLiteral2220); if (state.failed) return e;
-            if ( state.backtracking==0 ) {
-              e =factory.createListLiteral(l);
-            }
+                match(input, 67, FOLLOW_67_in_listLiteral2192);
+                if (state.failed)
+                    return e;
+                if (state.backtracking == 0) {
+                    e = factory.createListLiteral(l);
+                }
 
             }
 
-            if ( state.backtracking==0 ) {
-               addLocation(e, startToken, /*endToken*/ (CommonToken) input.LT(-1)); 
+            if (state.backtracking == 0) {
+                addLocation(e, startToken, /* endToken */(CommonToken) input.LT(-1));
             }
-        }
-        catch (RecognitionException re) {
+        } catch (RecognitionException re) {
             reportError(re);
-            recover(input,re);
-        }
-        finally {
+            recover(input, re);
+        } finally {
         }
         return e;
     }
+
     // $ANTLR end "listLiteral"
 
-
     // $ANTLR start "constructorCall"
-    // src/org/eclipse/internal/xpand2/parser/Xpand.g:463:1: constructorCall returns [Expression e] : 'new' t= simpleType ;
+    // src/org/eclipse/internal/xpand2/parser/Xpand.g:456:1: constructorCall returns [Expression e] : 'new' t=
+    // simpleType ;
     public final Expression constructorCall() throws RecognitionException {
         Expression e = null;
 
         Identifier t = null;
 
-
-         final CommonToken startToken = (CommonToken) input.LT(1); 
+        final CommonToken startToken = (CommonToken) input.LT(1);
         try {
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:466:1: ( 'new' t= simpleType )
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:467:2: 'new' t= simpleType
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:459:1: ( 'new' t= simpleType )
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:460:2: 'new' t= simpleType
             {
-            match(input,82,FOLLOW_82_in_constructorCall2245); if (state.failed) return e;
-            pushFollow(FOLLOW_simpleType_in_constructorCall2249);
-            t=simpleType();
+                match(input, 82, FOLLOW_82_in_constructorCall2217);
+                if (state.failed)
+                    return e;
+                pushFollow(FOLLOW_simpleType_in_constructorCall2221);
+                t = simpleType();
 
-            state._fsp--;
-            if (state.failed) return e;
-            if ( state.backtracking==0 ) {
-              e = factory.createConstructorCall(t);
-            }
+                state._fsp--;
+                if (state.failed)
+                    return e;
+                if (state.backtracking == 0) {
+                    e = factory.createConstructorCall(t);
+                }
 
             }
 
-            if ( state.backtracking==0 ) {
-               addLocation(e, startToken, /*endToken*/ (CommonToken) input.LT(-1)); 
+            if (state.backtracking == 0) {
+                addLocation(e, startToken, /* endToken */(CommonToken) input.LT(-1));
             }
-        }
-        catch (RecognitionException re) {
+        } catch (RecognitionException re) {
             reportError(re);
-            recover(input,re);
-        }
-        finally {
+            recover(input, re);
+        } finally {
         }
         return e;
     }
+
     // $ANTLR end "constructorCall"
 
-
     // $ANTLR start "booleanLiteral"
-    // src/org/eclipse/internal/xpand2/parser/Xpand.g:472:1: booleanLiteral returns [Expression e=factory.createBooleanLiteral(id(input.LT(1)))] : ( 'false' | 'true' );
+    // src/org/eclipse/internal/xpand2/parser/Xpand.g:465:1: booleanLiteral returns [Expression
+    // e=factory.createBooleanLiteral(id(input.LT(1)))] : ( 'false' | 'true' );
     public final Expression booleanLiteral() throws RecognitionException {
         Expression e = factory.createBooleanLiteral(id(input.LT(1)));
 
-         final CommonToken startToken = (CommonToken) input.LT(1); 
+        final CommonToken startToken = (CommonToken) input.LT(1);
         try {
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:475:1: ( 'false' | 'true' )
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:468:1: ( 'false' | 'true' )
             // src/org/eclipse/internal/xpand2/parser/Xpand.g:
             {
-            if ( (input.LA(1)>=83 && input.LA(1)<=84) ) {
-                input.consume();
-                state.errorRecovery=false;state.failed=false;
-            }
-            else {
-                if (state.backtracking>0) {state.failed=true; return e;}
-                MismatchedSetException mse = new MismatchedSetException(null,input);
-                throw mse;
-            }
-
+                if ((input.LA(1) >= 83 && input.LA(1) <= 84)) {
+                    input.consume();
+                    state.errorRecovery = false;
+                    state.failed = false;
+                } else {
+                    if (state.backtracking > 0) {
+                        state.failed = true;
+                        return e;
+                    }
+                    MismatchedSetException mse = new MismatchedSetException(null, input);
+                    throw mse;
+                }
 
             }
 
-            if ( state.backtracking==0 ) {
-               addLocation(e, startToken, /*endToken*/ (CommonToken) input.LT(-1)); 
+            if (state.backtracking == 0) {
+                addLocation(e, startToken, /* endToken */(CommonToken) input.LT(-1));
             }
-        }
-        catch (RecognitionException re) {
+        } catch (RecognitionException re) {
             reportError(re);
-            recover(input,re);
-        }
-        finally {
+            recover(input, re);
+        } finally {
         }
         return e;
     }
+
     // $ANTLR end "booleanLiteral"
 
-
     // $ANTLR start "nullLiteral"
-    // src/org/eclipse/internal/xpand2/parser/Xpand.g:479:1: nullLiteral returns [Expression e=factory.createNullLiteral(id(input.LT(1)))] : 'null' ;
+    // src/org/eclipse/internal/xpand2/parser/Xpand.g:472:1: nullLiteral returns [Expression
+    // e=factory.createNullLiteral(id(input.LT(1)))] : 'null' ;
     public final Expression nullLiteral() throws RecognitionException {
         Expression e = factory.createNullLiteral(id(input.LT(1)));
 
-         final CommonToken startToken = (CommonToken) input.LT(1); 
+        final CommonToken startToken = (CommonToken) input.LT(1);
         try {
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:482:1: ( 'null' )
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:483:2: 'null'
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:475:1: ( 'null' )
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:476:2: 'null'
             {
-            match(input,85,FOLLOW_85_in_nullLiteral2301); if (state.failed) return e;
+                match(input, 85, FOLLOW_85_in_nullLiteral2273);
+                if (state.failed)
+                    return e;
 
             }
 
-            if ( state.backtracking==0 ) {
-               addLocation(e, startToken, /*endToken*/ (CommonToken) input.LT(-1)); 
+            if (state.backtracking == 0) {
+                addLocation(e, startToken, /* endToken */(CommonToken) input.LT(-1));
             }
-        }
-        catch (RecognitionException re) {
+        } catch (RecognitionException re) {
             reportError(re);
-            recover(input,re);
-        }
-        finally {
+            recover(input, re);
+        } finally {
         }
         return e;
     }
+
     // $ANTLR end "nullLiteral"
 
-
     // $ANTLR start "numberLiteral"
-    // src/org/eclipse/internal/xpand2/parser/Xpand.g:486:1: numberLiteral returns [Expression e] : (a= IntLiteral | a= IntLiteral b= '.' c= IntLiteral );
+    // src/org/eclipse/internal/xpand2/parser/Xpand.g:479:1: numberLiteral returns [Expression e] : (a= IntLiteral | a=
+    // IntLiteral b= '.' c= IntLiteral );
     public final Expression numberLiteral() throws RecognitionException {
         Expression e = null;
 
-        Token a=null;
-        Token b=null;
-        Token c=null;
+        Token a = null;
+        Token b = null;
+        Token c = null;
 
-         final CommonToken startToken = (CommonToken) input.LT(1); 
+        final CommonToken startToken = (CommonToken) input.LT(1);
         try {
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:489:1: (a= IntLiteral | a= IntLiteral b= '.' c= IntLiteral )
-            int alt51=2;
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:482:1: (a= IntLiteral | a= IntLiteral b= '.' c= IntLiteral
+            // )
+            int alt51 = 2;
             int LA51_0 = input.LA(1);
 
-            if ( (LA51_0==IntLiteral) ) {
+            if ((LA51_0 == IntLiteral)) {
                 int LA51_1 = input.LA(2);
 
-                if ( (LA51_1==80) ) {
+                if ((LA51_1 == 80)) {
                     int LA51_2 = input.LA(3);
 
-                    if ( (LA51_2==IntLiteral) ) {
-                        alt51=2;
-                    }
-                    else if ( (LA51_2==Identifier||(LA51_2>=86 && LA51_2<=94)||(LA51_2>=96 && LA51_2<=98)) ) {
-                        alt51=1;
-                    }
-                    else {
-                        if (state.backtracking>0) {state.failed=true; return e;}
-                        NoViableAltException nvae =
-                            new NoViableAltException("", 51, 2, input);
+                    if ((LA51_2 == IntLiteral)) {
+                        alt51 = 2;
+                    } else if ((LA51_2 == Identifier || (LA51_2 >= 86 && LA51_2 <= 94) || (LA51_2 >= 96 && LA51_2 <= 98))) {
+                        alt51 = 1;
+                    } else {
+                        if (state.backtracking > 0) {
+                            state.failed = true;
+                            return e;
+                        }
+                        NoViableAltException nvae = new NoViableAltException("", 51, 2, input);
 
                         throw nvae;
                     }
-                }
-                else if ( (LA51_1==EOF||LA51_1==TEXT||LA51_1==Identifier||(LA51_1>=24 && LA51_1<=26)||LA51_1==32||(LA51_1>=36 && LA51_1<=37)||LA51_1==40||(LA51_1>=51 && LA51_1<=53)||(LA51_1>=57 && LA51_1<=59)||(LA51_1>=61 && LA51_1<=62)||(LA51_1>=65 && LA51_1<=78)) ) {
-                    alt51=1;
-                }
-                else {
-                    if (state.backtracking>0) {state.failed=true; return e;}
-                    NoViableAltException nvae =
-                        new NoViableAltException("", 51, 1, input);
+                } else if ((LA51_1 == EOF || LA51_1 == TEXT || LA51_1 == Identifier || (LA51_1 >= 24 && LA51_1 <= 26) || LA51_1 == 32
+                        || (LA51_1 >= 36 && LA51_1 <= 37) || LA51_1 == 40 || (LA51_1 >= 51 && LA51_1 <= 53) || (LA51_1 >= 57 && LA51_1 <= 59)
+                        || (LA51_1 >= 61 && LA51_1 <= 62) || (LA51_1 >= 65 && LA51_1 <= 78))) {
+                    alt51 = 1;
+                } else {
+                    if (state.backtracking > 0) {
+                        state.failed = true;
+                        return e;
+                    }
+                    NoViableAltException nvae = new NoViableAltException("", 51, 1, input);
 
                     throw nvae;
                 }
-            }
-            else {
-                if (state.backtracking>0) {state.failed=true; return e;}
-                NoViableAltException nvae =
-                    new NoViableAltException("", 51, 0, input);
+            } else {
+                if (state.backtracking > 0) {
+                    state.failed = true;
+                    return e;
+                }
+                NoViableAltException nvae = new NoViableAltException("", 51, 0, input);
 
                 throw nvae;
             }
             switch (alt51) {
-                case 1 :
-                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:490:4: a= IntLiteral
-                    {
-                    a=(Token)match(input,IntLiteral,FOLLOW_IntLiteral_in_numberLiteral2328); if (state.failed) return e;
-                    if ( state.backtracking==0 ) {
-                      e =factory.createIntegerLiteral(id(a));
-                    }
-
-                    }
-                    break;
-                case 2 :
-                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:491:4: a= IntLiteral b= '.' c= IntLiteral
-                    {
-                    a=(Token)match(input,IntLiteral,FOLLOW_IntLiteral_in_numberLiteral2337); if (state.failed) return e;
-                    b=(Token)match(input,80,FOLLOW_80_in_numberLiteral2341); if (state.failed) return e;
-                    c=(Token)match(input,IntLiteral,FOLLOW_IntLiteral_in_numberLiteral2345); if (state.failed) return e;
-                    if ( state.backtracking==0 ) {
-                      e =factory.createRealLiteral(id(a).append(id(b)).append(id(c)));
-                    }
-
-                    }
-                    break;
+            case 1:
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:483:4: a= IntLiteral
+            {
+                a = (Token) match(input, IntLiteral, FOLLOW_IntLiteral_in_numberLiteral2300);
+                if (state.failed)
+                    return e;
+                if (state.backtracking == 0) {
+                    e = factory.createIntegerLiteral(id(a));
+                }
 
             }
-            if ( state.backtracking==0 ) {
-               addLocation(e, startToken, /*endToken*/ (CommonToken) input.LT(-1)); 
+                break;
+            case 2:
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:484:4: a= IntLiteral b= '.' c= IntLiteral
+            {
+                a = (Token) match(input, IntLiteral, FOLLOW_IntLiteral_in_numberLiteral2309);
+                if (state.failed)
+                    return e;
+                b = (Token) match(input, 80, FOLLOW_80_in_numberLiteral2313);
+                if (state.failed)
+                    return e;
+                c = (Token) match(input, IntLiteral, FOLLOW_IntLiteral_in_numberLiteral2317);
+                if (state.failed)
+                    return e;
+                if (state.backtracking == 0) {
+                    e = factory.createRealLiteral(id(a).append(id(b)).append(id(c)));
+                }
+
             }
-        }
-        catch (RecognitionException re) {
+                break;
+
+            }
+            if (state.backtracking == 0) {
+                addLocation(e, startToken, /* endToken */(CommonToken) input.LT(-1));
+            }
+        } catch (RecognitionException re) {
             reportError(re);
-            recover(input,re);
-        }
-        finally {
+            recover(input, re);
+        } finally {
         }
         return e;
     }
+
     // $ANTLR end "numberLiteral"
 
-
     // $ANTLR start "collectionExpression"
-    // src/org/eclipse/internal/xpand2/parser/Xpand.g:495:1: collectionExpression returns [FeatureCall e] : (name= 'typeSelect' '(' t= type ')' | name= ( 'collect' | 'select' | 'selectFirst' | 'reject' | 'exists' | 'notExists' | 'sortBy' | 'forAll' ) '(' (var= identifier '|' )? x= expression ')' );
+    // src/org/eclipse/internal/xpand2/parser/Xpand.g:488:1: collectionExpression returns [FeatureCall e] : (name=
+    // 'typeSelect' '(' t= type ')' | name= ( 'collect' | 'select' | 'selectFirst' | 'reject' | 'exists' | 'notExists' |
+    // 'sortBy' | 'forAll' ) '(' (var= identifier '|' )? x= expression ')' );
     public final FeatureCall collectionExpression() throws RecognitionException {
         FeatureCall e = null;
 
-        Token name=null;
+        Token name = null;
         Identifier t = null;
 
         Identifier var = null;
 
         Expression x = null;
 
-
-         final CommonToken startToken = (CommonToken) input.LT(1); 
+        final CommonToken startToken = (CommonToken) input.LT(1);
         try {
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:498:1: (name= 'typeSelect' '(' t= type ')' | name= ( 'collect' | 'select' | 'selectFirst' | 'reject' | 'exists' | 'notExists' | 'sortBy' | 'forAll' ) '(' (var= identifier '|' )? x= expression ')' )
-            int alt53=2;
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:491:1: (name= 'typeSelect' '(' t= type ')' | name= (
+            // 'collect' | 'select' | 'selectFirst' | 'reject' | 'exists' | 'notExists' | 'sortBy' | 'forAll' ) '('
+            // (var= identifier '|' )? x= expression ')' )
+            int alt53 = 2;
             int LA53_0 = input.LA(1);
 
-            if ( (LA53_0==86) ) {
-                alt53=1;
-            }
-            else if ( ((LA53_0>=87 && LA53_0<=94)) ) {
-                alt53=2;
-            }
-            else {
-                if (state.backtracking>0) {state.failed=true; return e;}
-                NoViableAltException nvae =
-                    new NoViableAltException("", 53, 0, input);
+            if ((LA53_0 == 86)) {
+                alt53 = 1;
+            } else if (((LA53_0 >= 87 && LA53_0 <= 94))) {
+                alt53 = 2;
+            } else {
+                if (state.backtracking > 0) {
+                    state.failed = true;
+                    return e;
+                }
+                NoViableAltException nvae = new NoViableAltException("", 53, 0, input);
 
                 throw nvae;
             }
             switch (alt53) {
-                case 1 :
-                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:499:3: name= 'typeSelect' '(' t= type ')'
-                    {
-                    name=(Token)match(input,86,FOLLOW_86_in_collectionExpression2374); if (state.failed) return e;
-                    match(input,23,FOLLOW_23_in_collectionExpression2378); if (state.failed) return e;
-                    pushFollow(FOLLOW_type_in_collectionExpression2382);
-                    t=type();
+            case 1:
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:492:3: name= 'typeSelect' '(' t= type ')'
+            {
+                name = (Token) match(input, 86, FOLLOW_86_in_collectionExpression2346);
+                if (state.failed)
+                    return e;
+                match(input, 23, FOLLOW_23_in_collectionExpression2350);
+                if (state.failed)
+                    return e;
+                pushFollow(FOLLOW_type_in_collectionExpression2354);
+                t = type();
 
-                    state._fsp--;
-                    if (state.failed) return e;
-                    match(input,26,FOLLOW_26_in_collectionExpression2384); if (state.failed) return e;
-                    if ( state.backtracking==0 ) {
-                       e = factory.createTypeSelectExpression(id(name),t);
-                    }
-
-                    }
-                    break;
-                case 2 :
-                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:502:5: name= ( 'collect' | 'select' | 'selectFirst' | 'reject' | 'exists' | 'notExists' | 'sortBy' | 'forAll' ) '(' (var= identifier '|' )? x= expression ')'
-                    {
-                    name=(Token)input.LT(1);
-                    if ( (input.LA(1)>=87 && input.LA(1)<=94) ) {
-                        input.consume();
-                        state.errorRecovery=false;state.failed=false;
-                    }
-                    else {
-                        if (state.backtracking>0) {state.failed=true; return e;}
-                        MismatchedSetException mse = new MismatchedSetException(null,input);
-                        throw mse;
-                    }
-
-                    match(input,23,FOLLOW_23_in_collectionExpression2447); if (state.failed) return e;
-                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:509:19: (var= identifier '|' )?
-                    int alt52=2;
-                    int LA52_0 = input.LA(1);
-
-                    if ( (LA52_0==Identifier) ) {
-                        int LA52_1 = input.LA(2);
-
-                        if ( (LA52_1==95) ) {
-                            alt52=1;
-                        }
-                    }
-                    switch (alt52) {
-                        case 1 :
-                            // src/org/eclipse/internal/xpand2/parser/Xpand.g:509:20: var= identifier '|'
-                            {
-                            pushFollow(FOLLOW_identifier_in_collectionExpression2452);
-                            var=identifier();
-
-                            state._fsp--;
-                            if (state.failed) return e;
-                            match(input,95,FOLLOW_95_in_collectionExpression2454); if (state.failed) return e;
-
-                            }
-                            break;
-
-                    }
-
-                    pushFollow(FOLLOW_expression_in_collectionExpression2460);
-                    x=expression();
-
-                    state._fsp--;
-                    if (state.failed) return e;
-                    match(input,26,FOLLOW_26_in_collectionExpression2462); if (state.failed) return e;
-                    if ( state.backtracking==0 ) {
-                       e = factory.createCollectionExpression(id(name),var,x);
-                    }
-
-                    }
-                    break;
+                state._fsp--;
+                if (state.failed)
+                    return e;
+                match(input, 26, FOLLOW_26_in_collectionExpression2356);
+                if (state.failed)
+                    return e;
+                if (state.backtracking == 0) {
+                    e = factory.createTypeSelectExpression(id(name), t);
+                }
 
             }
-            if ( state.backtracking==0 ) {
-               addLocation(e, startToken, /*endToken*/ (CommonToken) input.LT(-1)); 
+                break;
+            case 2:
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:495:5: name= ( 'collect' | 'select' | 'selectFirst' |
+            // 'reject' | 'exists' | 'notExists' | 'sortBy' | 'forAll' ) '(' (var= identifier '|' )? x= expression ')'
+            {
+                name = (Token) input.LT(1);
+                if ((input.LA(1) >= 87 && input.LA(1) <= 94)) {
+                    input.consume();
+                    state.errorRecovery = false;
+                    state.failed = false;
+                } else {
+                    if (state.backtracking > 0) {
+                        state.failed = true;
+                        return e;
+                    }
+                    MismatchedSetException mse = new MismatchedSetException(null, input);
+                    throw mse;
+                }
+
+                match(input, 23, FOLLOW_23_in_collectionExpression2419);
+                if (state.failed)
+                    return e;
+                // src/org/eclipse/internal/xpand2/parser/Xpand.g:502:19: (var= identifier '|' )?
+                int alt52 = 2;
+                int LA52_0 = input.LA(1);
+
+                if ((LA52_0 == Identifier)) {
+                    int LA52_1 = input.LA(2);
+
+                    if ((LA52_1 == 95)) {
+                        alt52 = 1;
+                    }
+                }
+                switch (alt52) {
+                case 1:
+                // src/org/eclipse/internal/xpand2/parser/Xpand.g:502:20: var= identifier '|'
+                {
+                    pushFollow(FOLLOW_identifier_in_collectionExpression2424);
+                    var = identifier();
+
+                    state._fsp--;
+                    if (state.failed)
+                        return e;
+                    match(input, 95, FOLLOW_95_in_collectionExpression2426);
+                    if (state.failed)
+                        return e;
+
+                }
+                    break;
+
+                }
+
+                pushFollow(FOLLOW_expression_in_collectionExpression2432);
+                x = expression();
+
+                state._fsp--;
+                if (state.failed)
+                    return e;
+                match(input, 26, FOLLOW_26_in_collectionExpression2434);
+                if (state.failed)
+                    return e;
+                if (state.backtracking == 0) {
+                    e = factory.createCollectionExpression(id(name), var, x);
+                }
+
             }
-        }
-        catch (RecognitionException re) {
+                break;
+
+            }
+            if (state.backtracking == 0) {
+                addLocation(e, startToken, /* endToken */(CommonToken) input.LT(-1));
+            }
+        } catch (RecognitionException re) {
             reportError(re);
-            recover(input,re);
-        }
-        finally {
+            recover(input, re);
+        } finally {
         }
         return e;
     }
+
     // $ANTLR end "collectionExpression"
 
-
     // $ANTLR start "declaredParameterList"
-    // src/org/eclipse/internal/xpand2/parser/Xpand.g:515:1: declaredParameterList returns [List<DeclaredParameter> l = new BasicEList<DeclaredParameter>()] : dp= declaredParameter ( ',' dp1= declaredParameter )* ;
+    // src/org/eclipse/internal/xpand2/parser/Xpand.g:508:1: declaredParameterList returns [List<DeclaredParameter> l =
+    // new BasicEList<DeclaredParameter>()] : dp= declaredParameter ( ',' dp1= declaredParameter )* ;
     public final List<DeclaredParameter> declaredParameterList() throws RecognitionException {
-        List<DeclaredParameter> l =  new BasicEList<DeclaredParameter>();
+        List<DeclaredParameter> l = new BasicEList<DeclaredParameter>();
 
         DeclaredParameter dp = null;
 
         DeclaredParameter dp1 = null;
 
-
-         final CommonToken startToken = (CommonToken) input.LT(1); 
+        final CommonToken startToken = (CommonToken) input.LT(1);
         try {
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:518:1: (dp= declaredParameter ( ',' dp1= declaredParameter )* )
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:519:2: dp= declaredParameter ( ',' dp1= declaredParameter )*
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:511:1: (dp= declaredParameter ( ',' dp1= declaredParameter
+            // )* )
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:512:2: dp= declaredParameter ( ',' dp1= declaredParameter
+            // )*
             {
-            pushFollow(FOLLOW_declaredParameter_in_declaredParameterList2494);
-            dp=declaredParameter();
+                pushFollow(FOLLOW_declaredParameter_in_declaredParameterList2466);
+                dp = declaredParameter();
 
-            state._fsp--;
-            if (state.failed) return l;
-            if ( state.backtracking==0 ) {
-              if (dp!=null) l.add(dp);
-            }
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:519:50: ( ',' dp1= declaredParameter )*
-            loop54:
-            do {
-                int alt54=2;
-                int LA54_0 = input.LA(1);
+                state._fsp--;
+                if (state.failed)
+                    return l;
+                if (state.backtracking == 0) {
+                    if (dp != null)
+                        l.add(dp);
+                }
+                // src/org/eclipse/internal/xpand2/parser/Xpand.g:512:50: ( ',' dp1= declaredParameter )*
+                loop54: do {
+                    int alt54 = 2;
+                    int LA54_0 = input.LA(1);
 
-                if ( (LA54_0==24) ) {
-                    int LA54_1 = input.LA(2);
+                    if ((LA54_0 == 24)) {
+                        int LA54_1 = input.LA(2);
 
-                    if ( (LA54_1==Identifier||(LA54_1>=96 && LA54_1<=98)) ) {
-                        alt54=1;
+                        if ((LA54_1 == Identifier || (LA54_1 >= 96 && LA54_1 <= 98))) {
+                            alt54 = 1;
+                        }
+
                     }
 
+                    switch (alt54) {
+                    case 1:
+                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:512:51: ',' dp1= declaredParameter
+                    {
+                        match(input, 24, FOLLOW_24_in_declaredParameterList2470);
+                        if (state.failed)
+                            return l;
+                        pushFollow(FOLLOW_declaredParameter_in_declaredParameterList2474);
+                        dp1 = declaredParameter();
 
-                }
+                        state._fsp--;
+                        if (state.failed)
+                            return l;
+                        if (state.backtracking == 0) {
+                            if (dp1 != null)
+                                l.add(dp1);
+                        }
 
+                    }
+                        break;
 
-                switch (alt54) {
-            	case 1 :
-            	    // src/org/eclipse/internal/xpand2/parser/Xpand.g:519:51: ',' dp1= declaredParameter
-            	    {
-            	    match(input,24,FOLLOW_24_in_declaredParameterList2498); if (state.failed) return l;
-            	    pushFollow(FOLLOW_declaredParameter_in_declaredParameterList2502);
-            	    dp1=declaredParameter();
-
-            	    state._fsp--;
-            	    if (state.failed) return l;
-            	    if ( state.backtracking==0 ) {
-            	      if (dp1!=null) l.add(dp1);
-            	    }
-
-            	    }
-            	    break;
-
-            	default :
-            	    break loop54;
-                }
-            } while (true);
-
+                    default:
+                        break loop54;
+                    }
+                } while (true);
 
             }
 
-            if ( state.backtracking==0 ) {
-               addLocation(dp, startToken, /*endToken*/ (CommonToken) input.LT(-1)); 
+            if (state.backtracking == 0) {
+                addLocation(dp, startToken, /* endToken */(CommonToken) input.LT(-1));
             }
-        }
-        catch (RecognitionException re) {
+        } catch (RecognitionException re) {
             reportError(re);
-            recover(input,re);
-        }
-        finally {
+            recover(input, re);
+        } finally {
         }
         return l;
     }
+
     // $ANTLR end "declaredParameterList"
 
-
     // $ANTLR start "declaredParameter"
-    // src/org/eclipse/internal/xpand2/parser/Xpand.g:522:1: declaredParameter returns [DeclaredParameter dp] : t= type name= identifier ;
+    // src/org/eclipse/internal/xpand2/parser/Xpand.g:515:1: declaredParameter returns [DeclaredParameter dp] : t= type
+    // name= identifier ;
     public final DeclaredParameter declaredParameter() throws RecognitionException {
         DeclaredParameter dp = null;
 
@@ -4432,115 +4683,116 @@
 
         Identifier name = null;
 
-
-         final CommonToken startToken = (CommonToken) input.LT(1); 
+        final CommonToken startToken = (CommonToken) input.LT(1);
         try {
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:525:1: (t= type name= identifier )
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:526:2: t= type name= identifier
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:518:1: (t= type name= identifier )
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:519:2: t= type name= identifier
             {
-            pushFollow(FOLLOW_type_in_declaredParameter2530);
-            t=type();
+                pushFollow(FOLLOW_type_in_declaredParameter2502);
+                t = type();
 
-            state._fsp--;
-            if (state.failed) return dp;
-            pushFollow(FOLLOW_identifier_in_declaredParameter2534);
-            name=identifier();
+                state._fsp--;
+                if (state.failed)
+                    return dp;
+                pushFollow(FOLLOW_identifier_in_declaredParameter2506);
+                name = identifier();
 
-            state._fsp--;
-            if (state.failed) return dp;
-            if ( state.backtracking==0 ) {
-              dp = factory.createDeclaredParameter(t,name);
-            }
+                state._fsp--;
+                if (state.failed)
+                    return dp;
+                if (state.backtracking == 0) {
+                    dp = factory.createDeclaredParameter(t, name);
+                }
 
             }
 
-            if ( state.backtracking==0 ) {
-               addLocation(dp, startToken, /*endToken*/ (CommonToken) input.LT(-1)); 
+            if (state.backtracking == 0) {
+                addLocation(dp, startToken, /* endToken */(CommonToken) input.LT(-1));
             }
-        }
-        catch (RecognitionException re) {
+        } catch (RecognitionException re) {
             reportError(re);
-            recover(input,re);
-        }
-        finally {
+            recover(input, re);
+        } finally {
         }
         return dp;
     }
+
     // $ANTLR end "declaredParameter"
 
-
     // $ANTLR start "parameterList"
-    // src/org/eclipse/internal/xpand2/parser/Xpand.g:529:1: parameterList returns [List<Expression> list = new BasicEList<Expression>()] : a= expression ( ',' b= expression )* ;
+    // src/org/eclipse/internal/xpand2/parser/Xpand.g:522:1: parameterList returns [List<Expression> list = new
+    // BasicEList<Expression>()] : a= expression ( ',' b= expression )* ;
     public final List<Expression> parameterList() throws RecognitionException {
-        List<Expression> list =  new BasicEList<Expression>();
+        List<Expression> list = new BasicEList<Expression>();
 
         Expression a = null;
 
         Expression b = null;
 
-
         try {
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:529:79: (a= expression ( ',' b= expression )* )
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:530:5: a= expression ( ',' b= expression )*
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:522:79: (a= expression ( ',' b= expression )* )
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:523:5: a= expression ( ',' b= expression )*
             {
-            pushFollow(FOLLOW_expression_in_parameterList2556);
-            a=expression();
+                pushFollow(FOLLOW_expression_in_parameterList2528);
+                a = expression();
 
-            state._fsp--;
-            if (state.failed) return list;
-            if ( state.backtracking==0 ) {
-              if (a!=null) list.add(a);
-            }
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:530:47: ( ',' b= expression )*
-            loop55:
-            do {
-                int alt55=2;
-                int LA55_0 = input.LA(1);
-
-                if ( (LA55_0==24) ) {
-                    alt55=1;
+                state._fsp--;
+                if (state.failed)
+                    return list;
+                if (state.backtracking == 0) {
+                    if (a != null)
+                        list.add(a);
                 }
+                // src/org/eclipse/internal/xpand2/parser/Xpand.g:523:47: ( ',' b= expression )*
+                loop55: do {
+                    int alt55 = 2;
+                    int LA55_0 = input.LA(1);
 
+                    if ((LA55_0 == 24)) {
+                        alt55 = 1;
+                    }
 
-                switch (alt55) {
-            	case 1 :
-            	    // src/org/eclipse/internal/xpand2/parser/Xpand.g:530:48: ',' b= expression
-            	    {
-            	    match(input,24,FOLLOW_24_in_parameterList2561); if (state.failed) return list;
-            	    pushFollow(FOLLOW_expression_in_parameterList2565);
-            	    b=expression();
+                    switch (alt55) {
+                    case 1:
+                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:523:48: ',' b= expression
+                    {
+                        match(input, 24, FOLLOW_24_in_parameterList2533);
+                        if (state.failed)
+                            return list;
+                        pushFollow(FOLLOW_expression_in_parameterList2537);
+                        b = expression();
 
-            	    state._fsp--;
-            	    if (state.failed) return list;
-            	    if ( state.backtracking==0 ) {
-            	      if(b!=null) list.add(b);
-            	    }
+                        state._fsp--;
+                        if (state.failed)
+                            return list;
+                        if (state.backtracking == 0) {
+                            if (b != null)
+                                list.add(b);
+                        }
 
-            	    }
-            	    break;
+                    }
+                        break;
 
-            	default :
-            	    break loop55;
-                }
-            } while (true);
-
+                    default:
+                        break loop55;
+                    }
+                } while (true);
 
             }
 
-        }
-        catch (RecognitionException re) {
+        } catch (RecognitionException re) {
             reportError(re);
-            recover(input,re);
-        }
-        finally {
+            recover(input, re);
+        } finally {
         }
         return list;
     }
+
     // $ANTLR end "parameterList"
 
-
     // $ANTLR start "type"
-    // src/org/eclipse/internal/xpand2/parser/Xpand.g:535:1: type returns [Identifier id] : (a= collectionType | b= simpleType );
+    // src/org/eclipse/internal/xpand2/parser/Xpand.g:528:1: type returns [Identifier id] : (a= collectionType | b=
+    // simpleType );
     public final Identifier type() throws RecognitionException {
         Identifier id = null;
 
@@ -4548,275 +4800,291 @@
 
         Identifier b = null;
 
-
-         final CommonToken startToken = (CommonToken) input.LT(1); 
+        final CommonToken startToken = (CommonToken) input.LT(1);
         try {
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:538:1: (a= collectionType | b= simpleType )
-            int alt56=2;
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:531:1: (a= collectionType | b= simpleType )
+            int alt56 = 2;
             int LA56_0 = input.LA(1);
 
-            if ( ((LA56_0>=96 && LA56_0<=98)) ) {
-                alt56=1;
-            }
-            else if ( (LA56_0==Identifier) ) {
-                alt56=2;
-            }
-            else {
-                if (state.backtracking>0) {state.failed=true; return id;}
-                NoViableAltException nvae =
-                    new NoViableAltException("", 56, 0, input);
+            if (((LA56_0 >= 96 && LA56_0 <= 98))) {
+                alt56 = 1;
+            } else if ((LA56_0 == Identifier)) {
+                alt56 = 2;
+            } else {
+                if (state.backtracking > 0) {
+                    state.failed = true;
+                    return id;
+                }
+                NoViableAltException nvae = new NoViableAltException("", 56, 0, input);
 
                 throw nvae;
             }
             switch (alt56) {
-                case 1 :
-                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:539:2: a= collectionType
-                    {
-                    pushFollow(FOLLOW_collectionType_in_type2599);
-                    a=collectionType();
+            case 1:
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:532:2: a= collectionType
+            {
+                pushFollow(FOLLOW_collectionType_in_type2571);
+                a = collectionType();
 
-                    state._fsp--;
-                    if (state.failed) return id;
-                    if ( state.backtracking==0 ) {
-                      id =a;
-                    }
-
-                    }
-                    break;
-                case 2 :
-                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:540:2: b= simpleType
-                    {
-                    pushFollow(FOLLOW_simpleType_in_type2609);
-                    b=simpleType();
-
-                    state._fsp--;
-                    if (state.failed) return id;
-                    if ( state.backtracking==0 ) {
-                      id =b;
-                    }
-
-                    }
-                    break;
+                state._fsp--;
+                if (state.failed)
+                    return id;
+                if (state.backtracking == 0) {
+                    id = a;
+                }
 
             }
-            if ( state.backtracking==0 ) {
-               addLocation(id, startToken, /*endToken*/ (CommonToken) input.LT(-1)); 
+                break;
+            case 2:
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:533:2: b= simpleType
+            {
+                pushFollow(FOLLOW_simpleType_in_type2581);
+                b = simpleType();
+
+                state._fsp--;
+                if (state.failed)
+                    return id;
+                if (state.backtracking == 0) {
+                    id = b;
+                }
+
             }
-        }
-        catch (RecognitionException re) {
+                break;
+
+            }
+            if (state.backtracking == 0) {
+                addLocation(id, startToken, /* endToken */(CommonToken) input.LT(-1));
+            }
+        } catch (RecognitionException re) {
             reportError(re);
-            recover(input,re);
-        }
-        finally {
+            recover(input, re);
+        } finally {
         }
         return id;
     }
+
     // $ANTLR end "type"
 
-
     // $ANTLR start "collectionType"
-    // src/org/eclipse/internal/xpand2/parser/Xpand.g:543:1: collectionType returns [Identifier id ] : cl= ( 'Collection' | 'List' | 'Set' ) (b= '[' id1= simpleType c= ']' )? ;
+    // src/org/eclipse/internal/xpand2/parser/Xpand.g:536:1: collectionType returns [Identifier id ] : cl= (
+    // 'Collection' | 'List' | 'Set' ) (b= '[' id1= simpleType c= ']' )? ;
     public final Identifier collectionType() throws RecognitionException {
         Identifier id = null;
 
-        Token cl=null;
-        Token b=null;
-        Token c=null;
+        Token cl = null;
+        Token b = null;
+        Token c = null;
         Identifier id1 = null;
 
-
-         final CommonToken startToken = (CommonToken) input.LT(1); 
+        final CommonToken startToken = (CommonToken) input.LT(1);
         try {
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:546:1: (cl= ( 'Collection' | 'List' | 'Set' ) (b= '[' id1= simpleType c= ']' )? )
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:547:3: cl= ( 'Collection' | 'List' | 'Set' ) (b= '[' id1= simpleType c= ']' )?
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:539:1: (cl= ( 'Collection' | 'List' | 'Set' ) (b= '[' id1=
+            // simpleType c= ']' )? )
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:540:3: cl= ( 'Collection' | 'List' | 'Set' ) (b= '[' id1=
+            // simpleType c= ']' )?
             {
-            cl=(Token)input.LT(1);
-            if ( (input.LA(1)>=96 && input.LA(1)<=98) ) {
-                input.consume();
-                state.errorRecovery=false;state.failed=false;
-            }
-            else {
-                if (state.backtracking>0) {state.failed=true; return id;}
-                MismatchedSetException mse = new MismatchedSetException(null,input);
-                throw mse;
-            }
+                cl = (Token) input.LT(1);
+                if ((input.LA(1) >= 96 && input.LA(1) <= 98)) {
+                    input.consume();
+                    state.errorRecovery = false;
+                    state.failed = false;
+                } else {
+                    if (state.backtracking > 0) {
+                        state.failed = true;
+                        return id;
+                    }
+                    MismatchedSetException mse = new MismatchedSetException(null, input);
+                    throw mse;
+                }
 
-            if ( state.backtracking==0 ) {
-              id = id(cl);
-            }
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:548:3: (b= '[' id1= simpleType c= ']' )?
-            int alt57=2;
-            int LA57_0 = input.LA(1);
+                if (state.backtracking == 0) {
+                    id = id(cl);
+                }
+                // src/org/eclipse/internal/xpand2/parser/Xpand.g:541:3: (b= '[' id1= simpleType c= ']' )?
+                int alt57 = 2;
+                int LA57_0 = input.LA(1);
 
-            if ( (LA57_0==99) ) {
-                alt57=1;
-            }
-            switch (alt57) {
-                case 1 :
-                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:548:4: b= '[' id1= simpleType c= ']'
-                    {
-                    b=(Token)match(input,99,FOLLOW_99_in_collectionType2660); if (state.failed) return id;
-                    pushFollow(FOLLOW_simpleType_in_collectionType2664);
-                    id1=simpleType();
+                if ((LA57_0 == 99)) {
+                    alt57 = 1;
+                }
+                switch (alt57) {
+                case 1:
+                // src/org/eclipse/internal/xpand2/parser/Xpand.g:541:4: b= '[' id1= simpleType c= ']'
+                {
+                    b = (Token) match(input, 99, FOLLOW_99_in_collectionType2632);
+                    if (state.failed)
+                        return id;
+                    pushFollow(FOLLOW_simpleType_in_collectionType2636);
+                    id1 = simpleType();
 
                     state._fsp--;
-                    if (state.failed) return id;
-                    c=(Token)match(input,100,FOLLOW_100_in_collectionType2668); if (state.failed) return id;
-                    if ( state.backtracking==0 ) {
-                       id.append(id(b));id.append(id1);id.append(id(c));
+                    if (state.failed)
+                        return id;
+                    c = (Token) match(input, 100, FOLLOW_100_in_collectionType2640);
+                    if (state.failed)
+                        return id;
+                    if (state.backtracking == 0) {
+                        id.append(id(b));
+                        id.append(id1);
+                        id.append(id(c));
                     }
 
-                    }
+                }
                     break;
 
-            }
-
+                }
 
             }
 
-            if ( state.backtracking==0 ) {
-               addLocation(id, startToken, /*endToken*/ (CommonToken) input.LT(-1)); 
+            if (state.backtracking == 0) {
+                addLocation(id, startToken, /* endToken */(CommonToken) input.LT(-1));
             }
-        }
-        catch (RecognitionException re) {
+        } catch (RecognitionException re) {
             reportError(re);
-            recover(input,re);
-        }
-        finally {
+            recover(input, re);
+        } finally {
         }
         return id;
     }
+
     // $ANTLR end "collectionType"
 
-
     // $ANTLR start "simpleType"
-    // src/org/eclipse/internal/xpand2/parser/Xpand.g:551:1: simpleType returns [Identifier id] : x= identifier (d= '::' end= identifier )* ;
+    // src/org/eclipse/internal/xpand2/parser/Xpand.g:544:1: simpleType returns [Identifier id] : x= identifier (d= '::'
+    // end= identifier )* ;
     public final Identifier simpleType() throws RecognitionException {
         Identifier id = null;
 
-        Token d=null;
+        Token d = null;
         Identifier x = null;
 
         Identifier end = null;
 
-
-         final CommonToken startToken = (CommonToken) input.LT(1); 
+        final CommonToken startToken = (CommonToken) input.LT(1);
         try {
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:554:1: (x= identifier (d= '::' end= identifier )* )
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:555:2: x= identifier (d= '::' end= identifier )*
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:547:1: (x= identifier (d= '::' end= identifier )* )
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:548:2: x= identifier (d= '::' end= identifier )*
             {
-            pushFollow(FOLLOW_identifier_in_simpleType2696);
-            x=identifier();
+                pushFollow(FOLLOW_identifier_in_simpleType2668);
+                x = identifier();
 
-            state._fsp--;
-            if (state.failed) return id;
-            if ( state.backtracking==0 ) {
-              id =x;
-            }
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:556:2: (d= '::' end= identifier )*
-            loop58:
-            do {
-                int alt58=2;
-                int LA58_0 = input.LA(1);
-
-                if ( (LA58_0==29) ) {
-                    alt58=1;
+                state._fsp--;
+                if (state.failed)
+                    return id;
+                if (state.backtracking == 0) {
+                    id = x;
                 }
+                // src/org/eclipse/internal/xpand2/parser/Xpand.g:549:2: (d= '::' end= identifier )*
+                loop58: do {
+                    int alt58 = 2;
+                    int LA58_0 = input.LA(1);
 
+                    if ((LA58_0 == 29)) {
+                        alt58 = 1;
+                    }
 
-                switch (alt58) {
-            	case 1 :
-            	    // src/org/eclipse/internal/xpand2/parser/Xpand.g:556:3: d= '::' end= identifier
-            	    {
-            	    d=(Token)match(input,29,FOLLOW_29_in_simpleType2704); if (state.failed) return id;
-            	    pushFollow(FOLLOW_identifier_in_simpleType2708);
-            	    end=identifier();
+                    switch (alt58) {
+                    case 1:
+                    // src/org/eclipse/internal/xpand2/parser/Xpand.g:549:3: d= '::' end= identifier
+                    {
+                        d = (Token) match(input, 29, FOLLOW_29_in_simpleType2676);
+                        if (state.failed)
+                            return id;
+                        pushFollow(FOLLOW_identifier_in_simpleType2680);
+                        end = identifier();
 
-            	    state._fsp--;
-            	    if (state.failed) return id;
-            	    if ( state.backtracking==0 ) {
-            	      id.append(id(d)); id.append(end);
-            	    }
+                        state._fsp--;
+                        if (state.failed)
+                            return id;
+                        if (state.backtracking == 0) {
+                            id.append(id(d));
+                            id.append(end);
+                        }
 
-            	    }
-            	    break;
+                    }
+                        break;
 
-            	default :
-            	    break loop58;
-                }
-            } while (true);
-
+                    default:
+                        break loop58;
+                    }
+                } while (true);
 
             }
 
-            if ( state.backtracking==0 ) {
-               addLocation(id, startToken, /*endToken*/ (CommonToken) input.LT(-1)); 
+            if (state.backtracking == 0) {
+                addLocation(id, startToken, /* endToken */(CommonToken) input.LT(-1));
             }
-        }
-        catch (RecognitionException re) {
+        } catch (RecognitionException re) {
             reportError(re);
-            recover(input,re);
-        }
-        finally {
+            recover(input, re);
+        } finally {
         }
         return id;
     }
+
     // $ANTLR end "simpleType"
 
-
     // $ANTLR start "identifier"
-    // src/org/eclipse/internal/xpand2/parser/Xpand.g:559:1: identifier returns [Identifier r] : x= Identifier ;
+    // src/org/eclipse/internal/xpand2/parser/Xpand.g:552:1: identifier returns [Identifier r] : x= Identifier ;
     public final Identifier identifier() throws RecognitionException {
         Identifier r = null;
 
-        Token x=null;
+        Token x = null;
 
-         final CommonToken startToken = (CommonToken) input.LT(1); 
+        final CommonToken startToken = (CommonToken) input.LT(1);
         try {
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:562:1: (x= Identifier )
-            // src/org/eclipse/internal/xpand2/parser/Xpand.g:563:4: x= Identifier
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:555:1: (x= Identifier )
+            // src/org/eclipse/internal/xpand2/parser/Xpand.g:556:4: x= Identifier
             {
-            x=(Token)match(input,Identifier,FOLLOW_Identifier_in_identifier2739); if (state.failed) return r;
-            if ( state.backtracking==0 ) {
-              r =id(x);
-            }
+                x = (Token) match(input, Identifier, FOLLOW_Identifier_in_identifier2711);
+                if (state.failed)
+                    return r;
+                if (state.backtracking == 0) {
+                    r = id(x);
+                }
 
             }
 
-            if ( state.backtracking==0 ) {
-               addLocation(r, startToken, /*endToken*/ (CommonToken) input.LT(-1)); 
+            if (state.backtracking == 0) {
+                addLocation(r, startToken, /* endToken */(CommonToken) input.LT(-1));
             }
-        }
-        catch (RecognitionException re) {
+        } catch (RecognitionException re) {
             reportError(re);
-            recover(input,re);
-        }
-        finally {
+            recover(input, re);
+        } finally {
         }
         return r;
     }
+
     // $ANTLR end "identifier"
 
     // $ANTLR start synpred1_Xpand
-    public final void synpred1_Xpand_fragment() throws RecognitionException {   
+    public final void synpred1_Xpand_fragment() throws RecognitionException {
         // src/org/eclipse/internal/xpand2/parser/Xpand.g:307:5: ( '(' type ')' castedExpression )
         // src/org/eclipse/internal/xpand2/parser/Xpand.g:307:6: '(' type ')' castedExpression
         {
-        match(input,23,FOLLOW_23_in_synpred1_Xpand1315); if (state.failed) return ;
-        pushFollow(FOLLOW_type_in_synpred1_Xpand1317);
-        type();
+            match(input, 23, FOLLOW_23_in_synpred1_Xpand1315);
+            if (state.failed)
+                return;
+            pushFollow(FOLLOW_type_in_synpred1_Xpand1317);
+            type();
 
-        state._fsp--;
-        if (state.failed) return ;
-        match(input,26,FOLLOW_26_in_synpred1_Xpand1319); if (state.failed) return ;
-        pushFollow(FOLLOW_castedExpression_in_synpred1_Xpand1321);
-        castedExpression();
+            state._fsp--;
+            if (state.failed)
+                return;
+            match(input, 26, FOLLOW_26_in_synpred1_Xpand1319);
+            if (state.failed)
+                return;
+            pushFollow(FOLLOW_castedExpression_in_synpred1_Xpand1321);
+            castedExpression();
 
-        state._fsp--;
-        if (state.failed) return ;
+            state._fsp--;
+            if (state.failed)
+                return;
 
         }
     }
+
     // $ANTLR end synpred1_Xpand
 
     // Delegated rules
@@ -4827,50 +5095,24 @@
         try {
             synpred1_Xpand_fragment(); // can never throw exception
         } catch (RecognitionException re) {
-            System.err.println("impossible: "+re);
+            System.err.println("impossible: " + re);
         }
         boolean success = !state.failed;
         input.rewind(start);
         state.backtracking--;
-        state.failed=false;
+        state.failed = false;
         return success;
     }
 
-
     protected DFA31 dfa31 = new DFA31(this);
-    static final String DFA31_eotS =
-        "\22\uffff";
-    static final String DFA31_eofS =
-        "\22\uffff";
-    static final String DFA31_minS =
-        "\1\7\1\0\20\uffff";
-    static final String DFA31_maxS =
-        "\1\142\1\0\20\uffff";
-    static final String DFA31_acceptS =
-        "\2\uffff\1\2\16\uffff\1\1";
-    static final String DFA31_specialS =
-        "\1\uffff\1\0\20\uffff}>";
-    static final String[] DFA31_transitionS = {
-            "\3\2\15\uffff\1\1\10\uffff\1\2\33\uffff\1\2\2\uffff\2\2\16\uffff"+
-            "\1\2\1\uffff\16\2\1\uffff\3\2",
-            "\1\uffff",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            "",
-            ""
-    };
+    static final String DFA31_eotS = "\22\uffff";
+    static final String DFA31_eofS = "\22\uffff";
+    static final String DFA31_minS = "\1\7\1\0\20\uffff";
+    static final String DFA31_maxS = "\1\142\1\0\20\uffff";
+    static final String DFA31_acceptS = "\2\uffff\1\2\16\uffff\1\1";
+    static final String DFA31_specialS = "\1\uffff\1\0\20\uffff}>";
+    static final String[] DFA31_transitionS = { "\3\2\15\uffff\1\1\10\uffff\1\2\33\uffff\1\2\2\uffff\2\2\16\uffff" + "\1\2\1\uffff\16\2\1\uffff\3\2",
+            "\1\uffff", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" };
 
     static final short[] DFA31_eot = DFA.unpackEncodedString(DFA31_eotS);
     static final short[] DFA31_eof = DFA.unpackEncodedString(DFA31_eofS);
@@ -4883,7 +5125,7 @@
     static {
         int numStates = DFA31_transitionS.length;
         DFA31_transition = new short[numStates][];
-        for (int i=0; i<numStates; i++) {
+        for (int i = 0; i < numStates; i++) {
             DFA31_transition[i] = DFA.unpackEncodedString(DFA31_transitionS[i]);
         }
     }
@@ -4901,285 +5143,291 @@
             this.special = DFA31_special;
             this.transition = DFA31_transition;
         }
+
         public String getDescription() {
             return "303:1: castedExpression returns [Expression e] : ( ( '(' type ')' castedExpression )=> '(' t= type ')' x= chainExpression | x= chainExpression );";
         }
+
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
-            TokenStream input = (TokenStream)_input;
-        	int _s = s;
-            switch ( s ) {
-                    case 0 : 
-                        int LA31_1 = input.LA(1);
+            TokenStream input = (TokenStream) _input;
+            int _s = s;
+            switch (s) {
+            case 0:
+                int LA31_1 = input.LA(1);
 
-                         
-                        int index31_1 = input.index();
-                        input.rewind();
-                        s = -1;
-                        if ( (synpred1_Xpand()) ) {s = 17;}
+                int index31_1 = input.index();
+                input.rewind();
+                s = -1;
+                if ((synpred1_Xpand())) {
+                    s = 17;
+                }
 
-                        else if ( (true) ) {s = 2;}
+                else if ((true)) {
+                    s = 2;
+                }
 
-                         
-                        input.seek(index31_1);
-                        if ( s>=0 ) return s;
-                        break;
+                input.seek(index31_1);
+                if (s >= 0)
+                    return s;
+                break;
             }
-            if (state.backtracking>0) {state.failed=true; return -1;}
-            NoViableAltException nvae =
-                new NoViableAltException(getDescription(), 31, _s, input);
+            if (state.backtracking > 0) {
+                state.failed = true;
+                return -1;
+            }
+            NoViableAltException nvae = new NoViableAltException(getDescription(), 31, _s, input);
             error(nvae);
             throw nvae;
         }
     }
- 
 
-    public static final BitSet FOLLOW_LG_in_template55 = new BitSet(new long[]{0x0000000040700022L});
-    public static final BitSet FOLLOW_COMMENT_in_template60 = new BitSet(new long[]{0x0000000100000040L});
-    public static final BitSet FOLLOW_text_in_template64 = new BitSet(new long[]{0x0000000040700022L});
-    public static final BitSet FOLLOW_anImport_in_template74 = new BitSet(new long[]{0x0000000100000040L});
-    public static final BitSet FOLLOW_anExtensionImport_in_template83 = new BitSet(new long[]{0x0000000100000040L});
-    public static final BitSet FOLLOW_text_in_template90 = new BitSet(new long[]{0x0000000040700022L});
-    public static final BitSet FOLLOW_COMMENT_in_template93 = new BitSet(new long[]{0x0000000100000040L});
-    public static final BitSet FOLLOW_text_in_template97 = new BitSet(new long[]{0x0000000040700022L});
-    public static final BitSet FOLLOW_define_in_template109 = new BitSet(new long[]{0x0000000100000040L});
-    public static final BitSet FOLLOW_around_in_template116 = new BitSet(new long[]{0x0000000100000040L});
-    public static final BitSet FOLLOW_text_in_template122 = new BitSet(new long[]{0x0000000040400022L});
-    public static final BitSet FOLLOW_COMMENT_in_template125 = new BitSet(new long[]{0x0000000100000040L});
-    public static final BitSet FOLLOW_text_in_template129 = new BitSet(new long[]{0x0000000040400022L});
-    public static final BitSet FOLLOW_20_in_anImport165 = new BitSet(new long[]{0x0000000000000200L});
-    public static final BitSet FOLLOW_simpleType_in_anImport169 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_21_in_anExtensionImport194 = new BitSet(new long[]{0x0000000000000200L});
-    public static final BitSet FOLLOW_simpleType_in_anExtensionImport198 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_22_in_around225 = new BitSet(new long[]{0x0000000002000200L});
-    public static final BitSet FOLLOW_pointcut_in_around229 = new BitSet(new long[]{0x0000000008800000L});
-    public static final BitSet FOLLOW_23_in_around235 = new BitSet(new long[]{0x0000000002000200L,0x0000000700000000L});
-    public static final BitSet FOLLOW_declaredParameterList_in_around240 = new BitSet(new long[]{0x0000000005000000L});
-    public static final BitSet FOLLOW_24_in_around243 = new BitSet(new long[]{0x0000000002000000L});
-    public static final BitSet FOLLOW_25_in_around247 = new BitSet(new long[]{0x0000000004000000L});
-    public static final BitSet FOLLOW_25_in_around256 = new BitSet(new long[]{0x0000000004000000L});
-    public static final BitSet FOLLOW_26_in_around260 = new BitSet(new long[]{0x0000000008000000L});
-    public static final BitSet FOLLOW_27_in_around264 = new BitSet(new long[]{0x0000000000000200L,0x0000000700000000L});
-    public static final BitSet FOLLOW_type_in_around268 = new BitSet(new long[]{0x0000000100000040L});
-    public static final BitSet FOLLOW_sequence_in_around276 = new BitSet(new long[]{0x0000000010000000L});
-    public static final BitSet FOLLOW_28_in_around281 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_25_in_pointcut312 = new BitSet(new long[]{0x0000000022000202L});
-    public static final BitSet FOLLOW_identifier_in_pointcut318 = new BitSet(new long[]{0x0000000022000202L});
-    public static final BitSet FOLLOW_25_in_pointcut327 = new BitSet(new long[]{0x0000000022000202L});
-    public static final BitSet FOLLOW_identifier_in_pointcut333 = new BitSet(new long[]{0x0000000022000202L});
-    public static final BitSet FOLLOW_29_in_pointcut339 = new BitSet(new long[]{0x0000000022000202L});
-    public static final BitSet FOLLOW_30_in_define368 = new BitSet(new long[]{0x0000000000000200L});
-    public static final BitSet FOLLOW_identifier_in_define372 = new BitSet(new long[]{0x0000000008800000L});
-    public static final BitSet FOLLOW_23_in_define375 = new BitSet(new long[]{0x0000000000000200L,0x0000000700000000L});
-    public static final BitSet FOLLOW_declaredParameterList_in_define379 = new BitSet(new long[]{0x0000000004000000L});
-    public static final BitSet FOLLOW_26_in_define381 = new BitSet(new long[]{0x0000000008000000L});
-    public static final BitSet FOLLOW_27_in_define385 = new BitSet(new long[]{0x0000000000000200L,0x0000000700000000L});
-    public static final BitSet FOLLOW_type_in_define389 = new BitSet(new long[]{0x0000000100000040L});
-    public static final BitSet FOLLOW_sequence_in_define397 = new BitSet(new long[]{0x0000000080000000L});
-    public static final BitSet FOLLOW_31_in_define403 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_textSequence_in_sequence427 = new BitSet(new long[]{0x9082884F00800382L,0x000000077FFE8001L});
-    public static final BitSet FOLLOW_statement_in_sequence436 = new BitSet(new long[]{0x0000000100000040L});
-    public static final BitSet FOLLOW_textSequence_in_sequence445 = new BitSet(new long[]{0x9082884F00800382L,0x000000077FFE8001L});
-    public static final BitSet FOLLOW_simpleStatement_in_statement483 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_fileStatement_in_statement491 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_foreachStatement_in_statement499 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ifStatement_in_statement507 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_letStatement_in_statement515 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_protectStatement_in_statement523 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_text_in_textSequence542 = new BitSet(new long[]{0x0000000000000022L});
-    public static final BitSet FOLLOW_COMMENT_in_textSequence549 = new BitSet(new long[]{0x0000000100000040L});
-    public static final BitSet FOLLOW_text_in_textSequence553 = new BitSet(new long[]{0x0000000000000022L});
-    public static final BitSet FOLLOW_32_in_text582 = new BitSet(new long[]{0x0000000000000040L});
-    public static final BitSet FOLLOW_TEXT_in_text588 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_errorStatement_in_simpleStatement615 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_expandStatement_in_simpleStatement623 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_expressionStmt_in_simpleStatement631 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_33_in_errorStatement656 = new BitSet(new long[]{0x9080000700800380L,0x000000077FFE8001L});
-    public static final BitSet FOLLOW_expression_in_errorStatement660 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_34_in_expandStatement685 = new BitSet(new long[]{0x0000000000000200L});
-    public static final BitSet FOLLOW_definitionName_in_expandStatement689 = new BitSet(new long[]{0x0000002808800002L});
-    public static final BitSet FOLLOW_23_in_expandStatement692 = new BitSet(new long[]{0x9080000700800380L,0x000000077FFE8001L});
-    public static final BitSet FOLLOW_parameterList_in_expandStatement696 = new BitSet(new long[]{0x0000000004000000L});
-    public static final BitSet FOLLOW_26_in_expandStatement698 = new BitSet(new long[]{0x0000002808000002L});
-    public static final BitSet FOLLOW_27_in_expandStatement704 = new BitSet(new long[]{0x9080000700800380L,0x000000077FFE8001L});
-    public static final BitSet FOLLOW_expression_in_expandStatement708 = new BitSet(new long[]{0x0000002000000002L});
-    public static final BitSet FOLLOW_35_in_expandStatement718 = new BitSet(new long[]{0x9080000700800380L,0x000000077FFE8001L});
-    public static final BitSet FOLLOW_expression_in_expandStatement722 = new BitSet(new long[]{0x0000003000000002L});
-    public static final BitSet FOLLOW_36_in_expandStatement725 = new BitSet(new long[]{0x9080000700800380L,0x000000077FFE8001L});
-    public static final BitSet FOLLOW_expression_in_expandStatement729 = new BitSet(new long[]{0x0000002000000002L});
-    public static final BitSet FOLLOW_37_in_expandStatement741 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_simpleType_in_definitionName777 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_expression_in_expressionStmt804 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_38_in_fileStatement829 = new BitSet(new long[]{0x9080000700800380L,0x000000077FFE8001L});
-    public static final BitSet FOLLOW_expression_in_fileStatement833 = new BitSet(new long[]{0x0000000100000240L});
-    public static final BitSet FOLLOW_identifier_in_fileStatement838 = new BitSet(new long[]{0x0000000100000040L});
-    public static final BitSet FOLLOW_sequence_in_fileStatement846 = new BitSet(new long[]{0x0000008000000000L});
-    public static final BitSet FOLLOW_39_in_fileStatement850 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_35_in_foreachStatement878 = new BitSet(new long[]{0x9080000700800380L,0x000000077FFE8001L});
-    public static final BitSet FOLLOW_expression_in_foreachStatement882 = new BitSet(new long[]{0x0000010000000000L});
-    public static final BitSet FOLLOW_40_in_foreachStatement884 = new BitSet(new long[]{0x0000000000000200L});
-    public static final BitSet FOLLOW_identifier_in_foreachStatement888 = new BitSet(new long[]{0x0000021100000040L});
-    public static final BitSet FOLLOW_41_in_foreachStatement891 = new BitSet(new long[]{0x0000000000000200L});
-    public static final BitSet FOLLOW_identifier_in_foreachStatement895 = new BitSet(new long[]{0x0000001100000040L});
-    public static final BitSet FOLLOW_36_in_foreachStatement900 = new BitSet(new long[]{0x9080000700800380L,0x000000077FFE8001L});
-    public static final BitSet FOLLOW_expression_in_foreachStatement904 = new BitSet(new long[]{0x0000000100000040L});
-    public static final BitSet FOLLOW_sequence_in_foreachStatement914 = new BitSet(new long[]{0x0000040000000000L});
-    public static final BitSet FOLLOW_42_in_foreachStatement919 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_43_in_ifStatement950 = new BitSet(new long[]{0x9080000700800380L,0x000000077FFE8001L});
-    public static final BitSet FOLLOW_expression_in_ifStatement954 = new BitSet(new long[]{0x0000000100000040L});
-    public static final BitSet FOLLOW_sequence_in_ifStatement960 = new BitSet(new long[]{0x0000700000000000L});
-    public static final BitSet FOLLOW_elseIfStatement_in_ifStatement972 = new BitSet(new long[]{0x0000700000000000L});
-    public static final BitSet FOLLOW_elseStatement_in_ifStatement983 = new BitSet(new long[]{0x0000100000000000L});
-    public static final BitSet FOLLOW_44_in_ifStatement995 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_45_in_elseIfStatement1018 = new BitSet(new long[]{0x9080000700800380L,0x000000077FFE8001L});
-    public static final BitSet FOLLOW_expression_in_elseIfStatement1022 = new BitSet(new long[]{0x0000000100000040L});
-    public static final BitSet FOLLOW_sequence_in_elseIfStatement1028 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_46_in_elseStatement1058 = new BitSet(new long[]{0x0000000100000040L});
-    public static final BitSet FOLLOW_sequence_in_elseStatement1064 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_47_in_letStatement1094 = new BitSet(new long[]{0x9080000700800380L,0x000000077FFE8001L});
-    public static final BitSet FOLLOW_expression_in_letStatement1098 = new BitSet(new long[]{0x0000010000000000L});
-    public static final BitSet FOLLOW_40_in_letStatement1100 = new BitSet(new long[]{0x0000000000000200L});
-    public static final BitSet FOLLOW_identifier_in_letStatement1104 = new BitSet(new long[]{0x0000000100000040L});
-    public static final BitSet FOLLOW_sequence_in_letStatement1112 = new BitSet(new long[]{0x0001000000000000L});
-    public static final BitSet FOLLOW_48_in_letStatement1117 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_49_in_protectStatement1145 = new BitSet(new long[]{0x0004000000000000L});
-    public static final BitSet FOLLOW_50_in_protectStatement1150 = new BitSet(new long[]{0x9080000700800380L,0x000000077FFE8001L});
-    public static final BitSet FOLLOW_expression_in_protectStatement1154 = new BitSet(new long[]{0x0008000000000000L});
-    public static final BitSet FOLLOW_51_in_protectStatement1159 = new BitSet(new long[]{0x9080000700800380L,0x000000077FFE8001L});
-    public static final BitSet FOLLOW_expression_in_protectStatement1163 = new BitSet(new long[]{0x0010000000000000L});
-    public static final BitSet FOLLOW_52_in_protectStatement1176 = new BitSet(new long[]{0x9080000700800380L,0x000000077FFE8001L});
-    public static final BitSet FOLLOW_expression_in_protectStatement1180 = new BitSet(new long[]{0x0020000100000040L});
-    public static final BitSet FOLLOW_53_in_protectStatement1185 = new BitSet(new long[]{0x0000000100000040L});
-    public static final BitSet FOLLOW_sequence_in_protectStatement1194 = new BitSet(new long[]{0x0040000000000000L});
-    public static final BitSet FOLLOW_54_in_protectStatement1198 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_letExpression_in_expression1229 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_55_in_letExpression1257 = new BitSet(new long[]{0x0000000000000200L});
-    public static final BitSet FOLLOW_identifier_in_letExpression1261 = new BitSet(new long[]{0x0100000000000000L});
-    public static final BitSet FOLLOW_56_in_letExpression1263 = new BitSet(new long[]{0x9080000700800380L,0x000000077FFE8001L});
-    public static final BitSet FOLLOW_castedExpression_in_letExpression1267 = new BitSet(new long[]{0x0200000000000000L});
-    public static final BitSet FOLLOW_57_in_letExpression1269 = new BitSet(new long[]{0x9080000700800380L,0x000000077FFE8001L});
-    public static final BitSet FOLLOW_expression_in_letExpression1273 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_castedExpression_in_letExpression1286 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_23_in_castedExpression1326 = new BitSet(new long[]{0x0000000000000200L,0x0000000700000000L});
-    public static final BitSet FOLLOW_type_in_castedExpression1330 = new BitSet(new long[]{0x0000000004000000L});
-    public static final BitSet FOLLOW_26_in_castedExpression1332 = new BitSet(new long[]{0x9080000700800380L,0x000000077FFE8001L});
-    public static final BitSet FOLLOW_chainExpression_in_castedExpression1336 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_chainExpression_in_castedExpression1345 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_ifExpression_in_chainExpression1373 = new BitSet(new long[]{0x0400000000000002L});
-    public static final BitSet FOLLOW_58_in_chainExpression1379 = new BitSet(new long[]{0x9080000700800380L,0x000000077FFE8001L});
-    public static final BitSet FOLLOW_ifExpression_in_chainExpression1383 = new BitSet(new long[]{0x0400000000000002L});
-    public static final BitSet FOLLOW_switchExpression_in_ifExpression1413 = new BitSet(new long[]{0x0800000000000002L});
-    public static final BitSet FOLLOW_59_in_ifExpression1417 = new BitSet(new long[]{0x8000000100800380L,0x000000077FFE8001L});
-    public static final BitSet FOLLOW_switchExpression_in_ifExpression1421 = new BitSet(new long[]{0x0200000000000000L});
-    public static final BitSet FOLLOW_57_in_ifExpression1423 = new BitSet(new long[]{0x8000000100800380L,0x000000077FFE8001L});
-    public static final BitSet FOLLOW_switchExpression_in_ifExpression1427 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_60_in_ifExpression1435 = new BitSet(new long[]{0x8000000100800380L,0x000000077FFE8001L});
-    public static final BitSet FOLLOW_switchExpression_in_ifExpression1439 = new BitSet(new long[]{0x2000000000000000L});
-    public static final BitSet FOLLOW_61_in_ifExpression1441 = new BitSet(new long[]{0x8000000100800380L,0x000000077FFE8001L});
-    public static final BitSet FOLLOW_switchExpression_in_ifExpression1445 = new BitSet(new long[]{0x4000000000000002L});
-    public static final BitSet FOLLOW_62_in_ifExpression1448 = new BitSet(new long[]{0x9080000700800380L,0x000000077FFE8001L});
-    public static final BitSet FOLLOW_expression_in_ifExpression1452 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_63_in_switchExpression1482 = new BitSet(new long[]{0x0000000000800000L,0x0000000000000001L});
-    public static final BitSet FOLLOW_23_in_switchExpression1485 = new BitSet(new long[]{0x8000000100800380L,0x000000077FFE8001L});
-    public static final BitSet FOLLOW_orExpression_in_switchExpression1491 = new BitSet(new long[]{0x0000000004000000L});
-    public static final BitSet FOLLOW_26_in_switchExpression1493 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000001L});
-    public static final BitSet FOLLOW_64_in_switchExpression1500 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000006L});
-    public static final BitSet FOLLOW_65_in_switchExpression1513 = new BitSet(new long[]{0x8000000100800380L,0x000000077FFE8001L});
-    public static final BitSet FOLLOW_orExpression_in_switchExpression1517 = new BitSet(new long[]{0x0200000000000000L});
-    public static final BitSet FOLLOW_57_in_switchExpression1520 = new BitSet(new long[]{0x8000000100800380L,0x000000077FFE8001L});
-    public static final BitSet FOLLOW_orExpression_in_switchExpression1525 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000006L});
-    public static final BitSet FOLLOW_66_in_switchExpression1543 = new BitSet(new long[]{0x0200000000000000L});
-    public static final BitSet FOLLOW_57_in_switchExpression1545 = new BitSet(new long[]{0x8000000100800380L,0x000000077FFE8001L});
-    public static final BitSet FOLLOW_orExpression_in_switchExpression1551 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000008L});
-    public static final BitSet FOLLOW_67_in_switchExpression1556 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_orExpression_in_switchExpression1568 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_andExpression_in_orExpression1597 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000010L});
-    public static final BitSet FOLLOW_68_in_orExpression1604 = new BitSet(new long[]{0x8000000100800380L,0x000000077FFE8001L});
-    public static final BitSet FOLLOW_andExpression_in_orExpression1608 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000010L});
-    public static final BitSet FOLLOW_impliesExpression_in_andExpression1640 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000020L});
-    public static final BitSet FOLLOW_69_in_andExpression1647 = new BitSet(new long[]{0x8000000100800380L,0x000000077FFE8001L});
-    public static final BitSet FOLLOW_impliesExpression_in_andExpression1651 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000020L});
-    public static final BitSet FOLLOW_relationalExpression_in_impliesExpression1682 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000040L});
-    public static final BitSet FOLLOW_70_in_impliesExpression1689 = new BitSet(new long[]{0x8000000100800380L,0x000000077FFE8001L});
-    public static final BitSet FOLLOW_relationalExpression_in_impliesExpression1693 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000040L});
-    public static final BitSet FOLLOW_additiveExpression_in_relationalExpression1725 = new BitSet(new long[]{0x0000000000000002L,0x0000000000001F80L});
-    public static final BitSet FOLLOW_set_in_relationalExpression1733 = new BitSet(new long[]{0x8000000100800380L,0x000000077FFE8001L});
-    public static final BitSet FOLLOW_additiveExpression_in_relationalExpression1759 = new BitSet(new long[]{0x0000000000000002L,0x0000000000001F80L});
-    public static final BitSet FOLLOW_multiplicativeExpression_in_additiveExpression1788 = new BitSet(new long[]{0x0000000100000002L,0x0000000000002000L});
-    public static final BitSet FOLLOW_set_in_additiveExpression1798 = new BitSet(new long[]{0x8000000100800380L,0x000000077FFE8001L});
-    public static final BitSet FOLLOW_multiplicativeExpression_in_additiveExpression1807 = new BitSet(new long[]{0x0000000100000002L,0x0000000000002000L});
-    public static final BitSet FOLLOW_unaryExpression_in_multiplicativeExpression1836 = new BitSet(new long[]{0x0000000002000002L,0x0000000000004000L});
-    public static final BitSet FOLLOW_set_in_multiplicativeExpression1844 = new BitSet(new long[]{0x8000000100800380L,0x000000077FFE8001L});
-    public static final BitSet FOLLOW_unaryExpression_in_multiplicativeExpression1854 = new BitSet(new long[]{0x0000000002000002L,0x0000000000004000L});
-    public static final BitSet FOLLOW_infixExpression_in_unaryExpression1883 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_79_in_unaryExpression1891 = new BitSet(new long[]{0x0000000000800380L,0x000000077FFE0001L});
-    public static final BitSet FOLLOW_infixExpression_in_unaryExpression1895 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_32_in_unaryExpression1903 = new BitSet(new long[]{0x0000000000800380L,0x000000077FFE0001L});
-    public static final BitSet FOLLOW_infixExpression_in_unaryExpression1907 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_primaryExpression_in_infixExpression1934 = new BitSet(new long[]{0x0000000000000002L,0x0000000000010000L});
-    public static final BitSet FOLLOW_80_in_infixExpression1940 = new BitSet(new long[]{0x0000000000000200L,0x000000077FC00000L});
-    public static final BitSet FOLLOW_featureCall_in_infixExpression1944 = new BitSet(new long[]{0x0000000000000002L,0x0000000000010000L});
-    public static final BitSet FOLLOW_StringLiteral_in_primaryExpression1979 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_featureCall_in_primaryExpression1990 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_booleanLiteral_in_primaryExpression2000 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_numberLiteral_in_primaryExpression2010 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_nullLiteral_in_primaryExpression2020 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_listLiteral_in_primaryExpression2030 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_constructorCall_in_primaryExpression2040 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_globalVarExpression_in_primaryExpression2050 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_paranthesizedExpression_in_primaryExpression2060 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_23_in_paranthesizedExpression2087 = new BitSet(new long[]{0x9080000700800380L,0x000000077FFE8001L});
-    public static final BitSet FOLLOW_expression_in_paranthesizedExpression2091 = new BitSet(new long[]{0x0000000004000000L});
-    public static final BitSet FOLLOW_26_in_paranthesizedExpression2093 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_81_in_globalVarExpression2122 = new BitSet(new long[]{0x0000000000000200L});
-    public static final BitSet FOLLOW_identifier_in_globalVarExpression2126 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_identifier_in_featureCall2153 = new BitSet(new long[]{0x0000000000800000L});
-    public static final BitSet FOLLOW_23_in_featureCall2155 = new BitSet(new long[]{0x9080000704800380L,0x000000077FFE8001L});
-    public static final BitSet FOLLOW_parameterList_in_featureCall2160 = new BitSet(new long[]{0x0000000004000000L});
-    public static final BitSet FOLLOW_26_in_featureCall2164 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_type_in_featureCall2174 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_collectionExpression_in_featureCall2185 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_64_in_listLiteral2211 = new BitSet(new long[]{0x9080000700800380L,0x000000077FFE8009L});
-    public static final BitSet FOLLOW_parameterList_in_listLiteral2216 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000008L});
-    public static final BitSet FOLLOW_67_in_listLiteral2220 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_82_in_constructorCall2245 = new BitSet(new long[]{0x0000000000000200L});
-    public static final BitSet FOLLOW_simpleType_in_constructorCall2249 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_set_in_booleanLiteral0 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_85_in_nullLiteral2301 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_IntLiteral_in_numberLiteral2328 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_IntLiteral_in_numberLiteral2337 = new BitSet(new long[]{0x0000000000000000L,0x0000000000010000L});
-    public static final BitSet FOLLOW_80_in_numberLiteral2341 = new BitSet(new long[]{0x0000000000000100L});
-    public static final BitSet FOLLOW_IntLiteral_in_numberLiteral2345 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_86_in_collectionExpression2374 = new BitSet(new long[]{0x0000000000800000L});
-    public static final BitSet FOLLOW_23_in_collectionExpression2378 = new BitSet(new long[]{0x0000000000000200L,0x0000000700000000L});
-    public static final BitSet FOLLOW_type_in_collectionExpression2382 = new BitSet(new long[]{0x0000000004000000L});
-    public static final BitSet FOLLOW_26_in_collectionExpression2384 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_set_in_collectionExpression2397 = new BitSet(new long[]{0x0000000000800000L});
-    public static final BitSet FOLLOW_23_in_collectionExpression2447 = new BitSet(new long[]{0x9080000700800380L,0x000000077FFE8001L});
-    public static final BitSet FOLLOW_identifier_in_collectionExpression2452 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
-    public static final BitSet FOLLOW_95_in_collectionExpression2454 = new BitSet(new long[]{0x9080000700800380L,0x000000077FFE8001L});
-    public static final BitSet FOLLOW_expression_in_collectionExpression2460 = new BitSet(new long[]{0x0000000004000000L});
-    public static final BitSet FOLLOW_26_in_collectionExpression2462 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_declaredParameter_in_declaredParameterList2494 = new BitSet(new long[]{0x0000000001000002L});
-    public static final BitSet FOLLOW_24_in_declaredParameterList2498 = new BitSet(new long[]{0x0000000000000200L,0x0000000700000000L});
-    public static final BitSet FOLLOW_declaredParameter_in_declaredParameterList2502 = new BitSet(new long[]{0x0000000001000002L});
-    public static final BitSet FOLLOW_type_in_declaredParameter2530 = new BitSet(new long[]{0x0000000000000200L});
-    public static final BitSet FOLLOW_identifier_in_declaredParameter2534 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_expression_in_parameterList2556 = new BitSet(new long[]{0x0000000001000002L});
-    public static final BitSet FOLLOW_24_in_parameterList2561 = new BitSet(new long[]{0x9080000700800380L,0x000000077FFE8001L});
-    public static final BitSet FOLLOW_expression_in_parameterList2565 = new BitSet(new long[]{0x0000000001000002L});
-    public static final BitSet FOLLOW_collectionType_in_type2599 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_simpleType_in_type2609 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_set_in_collectionType2639 = new BitSet(new long[]{0x0000000000000002L,0x0000000800000000L});
-    public static final BitSet FOLLOW_99_in_collectionType2660 = new BitSet(new long[]{0x0000000000000200L});
-    public static final BitSet FOLLOW_simpleType_in_collectionType2664 = new BitSet(new long[]{0x0000000000000000L,0x0000001000000000L});
-    public static final BitSet FOLLOW_100_in_collectionType2668 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_identifier_in_simpleType2696 = new BitSet(new long[]{0x0000000020000002L});
-    public static final BitSet FOLLOW_29_in_simpleType2704 = new BitSet(new long[]{0x0000000000000200L});
-    public static final BitSet FOLLOW_identifier_in_simpleType2708 = new BitSet(new long[]{0x0000000020000002L});
-    public static final BitSet FOLLOW_Identifier_in_identifier2739 = new BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_23_in_synpred1_Xpand1315 = new BitSet(new long[]{0x0000000000000200L,0x0000000700000000L});
-    public static final BitSet FOLLOW_type_in_synpred1_Xpand1317 = new BitSet(new long[]{0x0000000004000000L});
-    public static final BitSet FOLLOW_26_in_synpred1_Xpand1319 = new BitSet(new long[]{0x9080000700800380L,0x000000077FFE8001L});
-    public static final BitSet FOLLOW_castedExpression_in_synpred1_Xpand1321 = new BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_LG_in_template55 = new BitSet(new long[] { 0x0000000040700022L });
+    public static final BitSet FOLLOW_COMMENT_in_template60 = new BitSet(new long[] { 0x0000000100000040L });
+    public static final BitSet FOLLOW_text_in_template64 = new BitSet(new long[] { 0x0000000040700022L });
+    public static final BitSet FOLLOW_anImport_in_template74 = new BitSet(new long[] { 0x0000000100000040L });
+    public static final BitSet FOLLOW_anExtensionImport_in_template83 = new BitSet(new long[] { 0x0000000100000040L });
+    public static final BitSet FOLLOW_text_in_template90 = new BitSet(new long[] { 0x0000000040700022L });
+    public static final BitSet FOLLOW_COMMENT_in_template93 = new BitSet(new long[] { 0x0000000100000040L });
+    public static final BitSet FOLLOW_text_in_template97 = new BitSet(new long[] { 0x0000000040700022L });
+    public static final BitSet FOLLOW_define_in_template109 = new BitSet(new long[] { 0x0000000100000040L });
+    public static final BitSet FOLLOW_around_in_template116 = new BitSet(new long[] { 0x0000000100000040L });
+    public static final BitSet FOLLOW_text_in_template122 = new BitSet(new long[] { 0x0000000040400022L });
+    public static final BitSet FOLLOW_COMMENT_in_template125 = new BitSet(new long[] { 0x0000000100000040L });
+    public static final BitSet FOLLOW_text_in_template129 = new BitSet(new long[] { 0x0000000040400022L });
+    public static final BitSet FOLLOW_20_in_anImport165 = new BitSet(new long[] { 0x0000000000000200L });
+    public static final BitSet FOLLOW_simpleType_in_anImport169 = new BitSet(new long[] { 0x0000000000000002L });
+    public static final BitSet FOLLOW_21_in_anExtensionImport194 = new BitSet(new long[] { 0x0000000000000200L });
+    public static final BitSet FOLLOW_simpleType_in_anExtensionImport198 = new BitSet(new long[] { 0x0000000000000002L });
+    public static final BitSet FOLLOW_22_in_around225 = new BitSet(new long[] { 0x0000000002000200L });
+    public static final BitSet FOLLOW_pointcut_in_around229 = new BitSet(new long[] { 0x0000000008800000L });
+    public static final BitSet FOLLOW_23_in_around235 = new BitSet(new long[] { 0x0000000002000200L, 0x0000000700000000L });
+    public static final BitSet FOLLOW_declaredParameterList_in_around240 = new BitSet(new long[] { 0x0000000005000000L });
+    public static final BitSet FOLLOW_24_in_around243 = new BitSet(new long[] { 0x0000000002000000L });
+    public static final BitSet FOLLOW_25_in_around247 = new BitSet(new long[] { 0x0000000004000000L });
+    public static final BitSet FOLLOW_25_in_around256 = new BitSet(new long[] { 0x0000000004000000L });
+    public static final BitSet FOLLOW_26_in_around260 = new BitSet(new long[] { 0x0000000008000000L });
+    public static final BitSet FOLLOW_27_in_around264 = new BitSet(new long[] { 0x0000000000000200L, 0x0000000700000000L });
+    public static final BitSet FOLLOW_type_in_around268 = new BitSet(new long[] { 0x0000000100000040L });
+    public static final BitSet FOLLOW_sequence_in_around276 = new BitSet(new long[] { 0x0000000010000000L });
+    public static final BitSet FOLLOW_28_in_around281 = new BitSet(new long[] { 0x0000000000000002L });
+    public static final BitSet FOLLOW_25_in_pointcut312 = new BitSet(new long[] { 0x0000000022000202L });
+    public static final BitSet FOLLOW_identifier_in_pointcut318 = new BitSet(new long[] { 0x0000000022000202L });
+    public static final BitSet FOLLOW_25_in_pointcut327 = new BitSet(new long[] { 0x0000000022000202L });
+    public static final BitSet FOLLOW_identifier_in_pointcut333 = new BitSet(new long[] { 0x0000000022000202L });
+    public static final BitSet FOLLOW_29_in_pointcut339 = new BitSet(new long[] { 0x0000000022000202L });
+    public static final BitSet FOLLOW_30_in_define368 = new BitSet(new long[] { 0x0000000000000200L });
+    public static final BitSet FOLLOW_identifier_in_define372 = new BitSet(new long[] { 0x0000000008800000L });
+    public static final BitSet FOLLOW_23_in_define375 = new BitSet(new long[] { 0x0000000000000200L, 0x0000000700000000L });
+    public static final BitSet FOLLOW_declaredParameterList_in_define379 = new BitSet(new long[] { 0x0000000004000000L });
+    public static final BitSet FOLLOW_26_in_define381 = new BitSet(new long[] { 0x0000000008000000L });
+    public static final BitSet FOLLOW_27_in_define385 = new BitSet(new long[] { 0x0000000000000200L, 0x0000000700000000L });
+    public static final BitSet FOLLOW_type_in_define389 = new BitSet(new long[] { 0x0000000100000040L });
+    public static final BitSet FOLLOW_sequence_in_define397 = new BitSet(new long[] { 0x0000000080000000L });
+    public static final BitSet FOLLOW_31_in_define403 = new BitSet(new long[] { 0x0000000000000002L });
+    public static final BitSet FOLLOW_textSequence_in_sequence427 = new BitSet(new long[] { 0x9082884F00800382L, 0x000000077FFE8001L });
+    public static final BitSet FOLLOW_statement_in_sequence436 = new BitSet(new long[] { 0x0000000100000040L });
+    public static final BitSet FOLLOW_textSequence_in_sequence445 = new BitSet(new long[] { 0x9082884F00800382L, 0x000000077FFE8001L });
+    public static final BitSet FOLLOW_simpleStatement_in_statement483 = new BitSet(new long[] { 0x0000000000000002L });
+    public static final BitSet FOLLOW_fileStatement_in_statement491 = new BitSet(new long[] { 0x0000000000000002L });
+    public static final BitSet FOLLOW_foreachStatement_in_statement499 = new BitSet(new long[] { 0x0000000000000002L });
+    public static final BitSet FOLLOW_ifStatement_in_statement507 = new BitSet(new long[] { 0x0000000000000002L });
+    public static final BitSet FOLLOW_letStatement_in_statement515 = new BitSet(new long[] { 0x0000000000000002L });
+    public static final BitSet FOLLOW_protectStatement_in_statement523 = new BitSet(new long[] { 0x0000000000000002L });
+    public static final BitSet FOLLOW_text_in_textSequence542 = new BitSet(new long[] { 0x0000000000000022L });
+    public static final BitSet FOLLOW_COMMENT_in_textSequence549 = new BitSet(new long[] { 0x0000000100000040L });
+    public static final BitSet FOLLOW_text_in_textSequence553 = new BitSet(new long[] { 0x0000000000000022L });
+    public static final BitSet FOLLOW_32_in_text582 = new BitSet(new long[] { 0x0000000000000040L });
+    public static final BitSet FOLLOW_TEXT_in_text588 = new BitSet(new long[] { 0x0000000000000002L });
+    public static final BitSet FOLLOW_errorStatement_in_simpleStatement615 = new BitSet(new long[] { 0x0000000000000002L });
+    public static final BitSet FOLLOW_expandStatement_in_simpleStatement623 = new BitSet(new long[] { 0x0000000000000002L });
+    public static final BitSet FOLLOW_expressionStmt_in_simpleStatement631 = new BitSet(new long[] { 0x0000000000000002L });
+    public static final BitSet FOLLOW_33_in_errorStatement656 = new BitSet(new long[] { 0x9080000700800380L, 0x000000077FFE8001L });
+    public static final BitSet FOLLOW_expression_in_errorStatement660 = new BitSet(new long[] { 0x0000000000000002L });
+    public static final BitSet FOLLOW_34_in_expandStatement685 = new BitSet(new long[] { 0x0000000000000200L });
+    public static final BitSet FOLLOW_definitionName_in_expandStatement689 = new BitSet(new long[] { 0x0000002808800002L });
+    public static final BitSet FOLLOW_23_in_expandStatement692 = new BitSet(new long[] { 0x9080000700800380L, 0x000000077FFE8001L });
+    public static final BitSet FOLLOW_parameterList_in_expandStatement696 = new BitSet(new long[] { 0x0000000004000000L });
+    public static final BitSet FOLLOW_26_in_expandStatement698 = new BitSet(new long[] { 0x0000002808000002L });
+    public static final BitSet FOLLOW_27_in_expandStatement704 = new BitSet(new long[] { 0x9080000700800380L, 0x000000077FFE8001L });
+    public static final BitSet FOLLOW_expression_in_expandStatement708 = new BitSet(new long[] { 0x0000002000000002L });
+    public static final BitSet FOLLOW_35_in_expandStatement718 = new BitSet(new long[] { 0x9080000700800380L, 0x000000077FFE8001L });
+    public static final BitSet FOLLOW_expression_in_expandStatement722 = new BitSet(new long[] { 0x0000003000000002L });
+    public static final BitSet FOLLOW_36_in_expandStatement725 = new BitSet(new long[] { 0x9080000700800380L, 0x000000077FFE8001L });
+    public static final BitSet FOLLOW_expression_in_expandStatement729 = new BitSet(new long[] { 0x0000002000000002L });
+    public static final BitSet FOLLOW_37_in_expandStatement741 = new BitSet(new long[] { 0x0000000000000002L });
+    public static final BitSet FOLLOW_simpleType_in_definitionName777 = new BitSet(new long[] { 0x0000000000000002L });
+    public static final BitSet FOLLOW_expression_in_expressionStmt804 = new BitSet(new long[] { 0x0000000000000002L });
+    public static final BitSet FOLLOW_38_in_fileStatement829 = new BitSet(new long[] { 0x9080000700800380L, 0x000000077FFE8001L });
+    public static final BitSet FOLLOW_expression_in_fileStatement833 = new BitSet(new long[] { 0x0000000100000240L });
+    public static final BitSet FOLLOW_identifier_in_fileStatement838 = new BitSet(new long[] { 0x0000000100000040L });
+    public static final BitSet FOLLOW_sequence_in_fileStatement846 = new BitSet(new long[] { 0x0000008000000000L });
+    public static final BitSet FOLLOW_39_in_fileStatement850 = new BitSet(new long[] { 0x0000000000000002L });
+    public static final BitSet FOLLOW_35_in_foreachStatement878 = new BitSet(new long[] { 0x9080000700800380L, 0x000000077FFE8001L });
+    public static final BitSet FOLLOW_expression_in_foreachStatement882 = new BitSet(new long[] { 0x0000010000000000L });
+    public static final BitSet FOLLOW_40_in_foreachStatement884 = new BitSet(new long[] { 0x0000000000000200L });
+    public static final BitSet FOLLOW_identifier_in_foreachStatement888 = new BitSet(new long[] { 0x0000021100000040L });
+    public static final BitSet FOLLOW_41_in_foreachStatement891 = new BitSet(new long[] { 0x0000000000000200L });
+    public static final BitSet FOLLOW_identifier_in_foreachStatement895 = new BitSet(new long[] { 0x0000001100000040L });
+    public static final BitSet FOLLOW_36_in_foreachStatement900 = new BitSet(new long[] { 0x9080000700800380L, 0x000000077FFE8001L });
+    public static final BitSet FOLLOW_expression_in_foreachStatement904 = new BitSet(new long[] { 0x0000000100000040L });
+    public static final BitSet FOLLOW_sequence_in_foreachStatement914 = new BitSet(new long[] { 0x0000040000000000L });
+    public static final BitSet FOLLOW_42_in_foreachStatement919 = new BitSet(new long[] { 0x0000000000000002L });
+    public static final BitSet FOLLOW_43_in_ifStatement950 = new BitSet(new long[] { 0x9080000700800380L, 0x000000077FFE8001L });
+    public static final BitSet FOLLOW_expression_in_ifStatement954 = new BitSet(new long[] { 0x0000000100000040L });
+    public static final BitSet FOLLOW_sequence_in_ifStatement960 = new BitSet(new long[] { 0x0000700000000000L });
+    public static final BitSet FOLLOW_elseIfStatement_in_ifStatement972 = new BitSet(new long[] { 0x0000700000000000L });
+    public static final BitSet FOLLOW_elseStatement_in_ifStatement983 = new BitSet(new long[] { 0x0000100000000000L });
+    public static final BitSet FOLLOW_44_in_ifStatement995 = new BitSet(new long[] { 0x0000000000000002L });
+    public static final BitSet FOLLOW_45_in_elseIfStatement1018 = new BitSet(new long[] { 0x9080000700800380L, 0x000000077FFE8001L });
+    public static final BitSet FOLLOW_expression_in_elseIfStatement1022 = new BitSet(new long[] { 0x0000000100000040L });
+    public static final BitSet FOLLOW_sequence_in_elseIfStatement1028 = new BitSet(new long[] { 0x0000000000000002L });
+    public static final BitSet FOLLOW_46_in_elseStatement1058 = new BitSet(new long[] { 0x0000000100000040L });
+    public static final BitSet FOLLOW_sequence_in_elseStatement1064 = new BitSet(new long[] { 0x0000000000000002L });
+    public static final BitSet FOLLOW_47_in_letStatement1094 = new BitSet(new long[] { 0x9080000700800380L, 0x000000077FFE8001L });
+    public static final BitSet FOLLOW_expression_in_letStatement1098 = new BitSet(new long[] { 0x0000010000000000L });
+    public static final BitSet FOLLOW_40_in_letStatement1100 = new BitSet(new long[] { 0x0000000000000200L });
+    public static final BitSet FOLLOW_identifier_in_letStatement1104 = new BitSet(new long[] { 0x0000000100000040L });
+    public static final BitSet FOLLOW_sequence_in_letStatement1112 = new BitSet(new long[] { 0x0001000000000000L });
+    public static final BitSet FOLLOW_48_in_letStatement1117 = new BitSet(new long[] { 0x0000000000000002L });
+    public static final BitSet FOLLOW_49_in_protectStatement1145 = new BitSet(new long[] { 0x0004000000000000L });
+    public static final BitSet FOLLOW_50_in_protectStatement1150 = new BitSet(new long[] { 0x9080000700800380L, 0x000000077FFE8001L });
+    public static final BitSet FOLLOW_expression_in_protectStatement1154 = new BitSet(new long[] { 0x0008000000000000L });
+    public static final BitSet FOLLOW_51_in_protectStatement1159 = new BitSet(new long[] { 0x9080000700800380L, 0x000000077FFE8001L });
+    public static final BitSet FOLLOW_expression_in_protectStatement1163 = new BitSet(new long[] { 0x0010000000000000L });
+    public static final BitSet FOLLOW_52_in_protectStatement1176 = new BitSet(new long[] { 0x9080000700800380L, 0x000000077FFE8001L });
+    public static final BitSet FOLLOW_expression_in_protectStatement1180 = new BitSet(new long[] { 0x0020000100000040L });
+    public static final BitSet FOLLOW_53_in_protectStatement1185 = new BitSet(new long[] { 0x0000000100000040L });
+    public static final BitSet FOLLOW_sequence_in_protectStatement1194 = new BitSet(new long[] { 0x0040000000000000L });
+    public static final BitSet FOLLOW_54_in_protectStatement1198 = new BitSet(new long[] { 0x0000000000000002L });
+    public static final BitSet FOLLOW_letExpression_in_expression1229 = new BitSet(new long[] { 0x0000000000000002L });
+    public static final BitSet FOLLOW_55_in_letExpression1257 = new BitSet(new long[] { 0x0000000000000200L });
+    public static final BitSet FOLLOW_identifier_in_letExpression1261 = new BitSet(new long[] { 0x0100000000000000L });
+    public static final BitSet FOLLOW_56_in_letExpression1263 = new BitSet(new long[] { 0x9080000700800380L, 0x000000077FFE8001L });
+    public static final BitSet FOLLOW_castedExpression_in_letExpression1267 = new BitSet(new long[] { 0x0200000000000000L });
+    public static final BitSet FOLLOW_57_in_letExpression1269 = new BitSet(new long[] { 0x9080000700800380L, 0x000000077FFE8001L });
+    public static final BitSet FOLLOW_expression_in_letExpression1273 = new BitSet(new long[] { 0x0000000000000002L });
+    public static final BitSet FOLLOW_castedExpression_in_letExpression1286 = new BitSet(new long[] { 0x0000000000000002L });
+    public static final BitSet FOLLOW_23_in_castedExpression1326 = new BitSet(new long[] { 0x0000000000000200L, 0x0000000700000000L });
+    public static final BitSet FOLLOW_type_in_castedExpression1330 = new BitSet(new long[] { 0x0000000004000000L });
+    public static final BitSet FOLLOW_26_in_castedExpression1332 = new BitSet(new long[] { 0x9080000700800380L, 0x000000077FFE8001L });
+    public static final BitSet FOLLOW_chainExpression_in_castedExpression1336 = new BitSet(new long[] { 0x0000000000000002L });
+    public static final BitSet FOLLOW_chainExpression_in_castedExpression1345 = new BitSet(new long[] { 0x0000000000000002L });
+    public static final BitSet FOLLOW_ifExpression_in_chainExpression1369 = new BitSet(new long[] { 0x0400000000000002L });
+    public static final BitSet FOLLOW_58_in_chainExpression1375 = new BitSet(new long[] { 0x9080000700800380L, 0x000000077FFE8001L });
+    public static final BitSet FOLLOW_ifExpression_in_chainExpression1379 = new BitSet(new long[] { 0x0400000000000002L });
+    public static final BitSet FOLLOW_switchExpression_in_ifExpression1409 = new BitSet(new long[] { 0x0800000000000002L });
+    public static final BitSet FOLLOW_59_in_ifExpression1413 = new BitSet(new long[] { 0x8000000100800380L, 0x000000077FFE8001L });
+    public static final BitSet FOLLOW_switchExpression_in_ifExpression1417 = new BitSet(new long[] { 0x0200000000000000L });
+    public static final BitSet FOLLOW_57_in_ifExpression1419 = new BitSet(new long[] { 0x8000000100800380L, 0x000000077FFE8001L });
+    public static final BitSet FOLLOW_switchExpression_in_ifExpression1423 = new BitSet(new long[] { 0x0000000000000002L });
+    public static final BitSet FOLLOW_60_in_ifExpression1431 = new BitSet(new long[] { 0x8000000100800380L, 0x000000077FFE8001L });
+    public static final BitSet FOLLOW_switchExpression_in_ifExpression1435 = new BitSet(new long[] { 0x2000000000000000L });
+    public static final BitSet FOLLOW_61_in_ifExpression1437 = new BitSet(new long[] { 0x8000000100800380L, 0x000000077FFE8001L });
+    public static final BitSet FOLLOW_switchExpression_in_ifExpression1441 = new BitSet(new long[] { 0x4000000000000002L });
+    public static final BitSet FOLLOW_62_in_ifExpression1444 = new BitSet(new long[] { 0x9080000700800380L, 0x000000077FFE8001L });
+    public static final BitSet FOLLOW_expression_in_ifExpression1448 = new BitSet(new long[] { 0x0000000000000002L });
+    public static final BitSet FOLLOW_63_in_switchExpression1478 = new BitSet(new long[] { 0x0000000000800000L, 0x0000000000000001L });
+    public static final BitSet FOLLOW_23_in_switchExpression1481 = new BitSet(new long[] { 0x8000000100800380L, 0x000000077FFE8001L });
+    public static final BitSet FOLLOW_orExpression_in_switchExpression1487 = new BitSet(new long[] { 0x0000000004000000L });
+    public static final BitSet FOLLOW_26_in_switchExpression1489 = new BitSet(new long[] { 0x0000000000000000L, 0x0000000000000001L });
+    public static final BitSet FOLLOW_64_in_switchExpression1496 = new BitSet(new long[] { 0x0000000000000000L, 0x0000000000000006L });
+    public static final BitSet FOLLOW_65_in_switchExpression1509 = new BitSet(new long[] { 0x8000000100800380L, 0x000000077FFE8001L });
+    public static final BitSet FOLLOW_orExpression_in_switchExpression1513 = new BitSet(new long[] { 0x0200000000000000L });
+    public static final BitSet FOLLOW_57_in_switchExpression1516 = new BitSet(new long[] { 0x8000000100800380L, 0x000000077FFE8001L });
+    public static final BitSet FOLLOW_orExpression_in_switchExpression1521 = new BitSet(new long[] { 0x0000000000000000L, 0x0000000000000006L });
+    public static final BitSet FOLLOW_66_in_switchExpression1539 = new BitSet(new long[] { 0x0200000000000000L });
+    public static final BitSet FOLLOW_57_in_switchExpression1541 = new BitSet(new long[] { 0x8000000100800380L, 0x000000077FFE8001L });
+    public static final BitSet FOLLOW_orExpression_in_switchExpression1547 = new BitSet(new long[] { 0x0000000000000000L, 0x0000000000000008L });
+    public static final BitSet FOLLOW_67_in_switchExpression1552 = new BitSet(new long[] { 0x0000000000000002L });
+    public static final BitSet FOLLOW_orExpression_in_switchExpression1564 = new BitSet(new long[] { 0x0000000000000002L });
+    public static final BitSet FOLLOW_andExpression_in_orExpression1589 = new BitSet(new long[] { 0x0000000000000002L, 0x0000000000000010L });
+    public static final BitSet FOLLOW_68_in_orExpression1596 = new BitSet(new long[] { 0x8000000100800380L, 0x000000077FFE8001L });
+    public static final BitSet FOLLOW_andExpression_in_orExpression1600 = new BitSet(new long[] { 0x0000000000000002L, 0x0000000000000010L });
+    public static final BitSet FOLLOW_impliesExpression_in_andExpression1628 = new BitSet(new long[] { 0x0000000000000002L, 0x0000000000000020L });
+    public static final BitSet FOLLOW_69_in_andExpression1635 = new BitSet(new long[] { 0x8000000100800380L, 0x000000077FFE8001L });
+    public static final BitSet FOLLOW_impliesExpression_in_andExpression1639 = new BitSet(new long[] { 0x0000000000000002L, 0x0000000000000020L });
+    public static final BitSet FOLLOW_relationalExpression_in_impliesExpression1666 = new BitSet(new long[] { 0x0000000000000002L, 0x0000000000000040L });
+    public static final BitSet FOLLOW_70_in_impliesExpression1673 = new BitSet(new long[] { 0x8000000100800380L, 0x000000077FFE8001L });
+    public static final BitSet FOLLOW_relationalExpression_in_impliesExpression1677 = new BitSet(new long[] { 0x0000000000000002L, 0x0000000000000040L });
+    public static final BitSet FOLLOW_additiveExpression_in_relationalExpression1705 = new BitSet(new long[] { 0x0000000000000002L, 0x0000000000001F80L });
+    public static final BitSet FOLLOW_set_in_relationalExpression1713 = new BitSet(new long[] { 0x8000000100800380L, 0x000000077FFE8001L });
+    public static final BitSet FOLLOW_additiveExpression_in_relationalExpression1739 = new BitSet(new long[] { 0x0000000000000002L, 0x0000000000001F80L });
+    public static final BitSet FOLLOW_multiplicativeExpression_in_additiveExpression1764 = new BitSet(new long[] { 0x0000000100000002L, 0x0000000000002000L });
+    public static final BitSet FOLLOW_set_in_additiveExpression1774 = new BitSet(new long[] { 0x8000000100800380L, 0x000000077FFE8001L });
+    public static final BitSet FOLLOW_multiplicativeExpression_in_additiveExpression1783 = new BitSet(new long[] { 0x0000000100000002L, 0x0000000000002000L });
+    public static final BitSet FOLLOW_unaryExpression_in_multiplicativeExpression1808 = new BitSet(new long[] { 0x0000000002000002L, 0x0000000000004000L });
+    public static final BitSet FOLLOW_set_in_multiplicativeExpression1816 = new BitSet(new long[] { 0x8000000100800380L, 0x000000077FFE8001L });
+    public static final BitSet FOLLOW_unaryExpression_in_multiplicativeExpression1826 = new BitSet(new long[] { 0x0000000002000002L, 0x0000000000004000L });
+    public static final BitSet FOLLOW_infixExpression_in_unaryExpression1855 = new BitSet(new long[] { 0x0000000000000002L });
+    public static final BitSet FOLLOW_79_in_unaryExpression1863 = new BitSet(new long[] { 0x0000000000800380L, 0x000000077FFE0001L });
+    public static final BitSet FOLLOW_infixExpression_in_unaryExpression1867 = new BitSet(new long[] { 0x0000000000000002L });
+    public static final BitSet FOLLOW_32_in_unaryExpression1875 = new BitSet(new long[] { 0x0000000000800380L, 0x000000077FFE0001L });
+    public static final BitSet FOLLOW_infixExpression_in_unaryExpression1879 = new BitSet(new long[] { 0x0000000000000002L });
+    public static final BitSet FOLLOW_primaryExpression_in_infixExpression1906 = new BitSet(new long[] { 0x0000000000000002L, 0x0000000000010000L });
+    public static final BitSet FOLLOW_80_in_infixExpression1912 = new BitSet(new long[] { 0x0000000000000200L, 0x000000077FC00000L });
+    public static final BitSet FOLLOW_featureCall_in_infixExpression1916 = new BitSet(new long[] { 0x0000000000000002L, 0x0000000000010000L });
+    public static final BitSet FOLLOW_StringLiteral_in_primaryExpression1951 = new BitSet(new long[] { 0x0000000000000002L });
+    public static final BitSet FOLLOW_featureCall_in_primaryExpression1962 = new BitSet(new long[] { 0x0000000000000002L });
+    public static final BitSet FOLLOW_booleanLiteral_in_primaryExpression1972 = new BitSet(new long[] { 0x0000000000000002L });
+    public static final BitSet FOLLOW_numberLiteral_in_primaryExpression1982 = new BitSet(new long[] { 0x0000000000000002L });
+    public static final BitSet FOLLOW_nullLiteral_in_primaryExpression1992 = new BitSet(new long[] { 0x0000000000000002L });
+    public static final BitSet FOLLOW_listLiteral_in_primaryExpression2002 = new BitSet(new long[] { 0x0000000000000002L });
+    public static final BitSet FOLLOW_constructorCall_in_primaryExpression2012 = new BitSet(new long[] { 0x0000000000000002L });
+    public static final BitSet FOLLOW_globalVarExpression_in_primaryExpression2022 = new BitSet(new long[] { 0x0000000000000002L });
+    public static final BitSet FOLLOW_paranthesizedExpression_in_primaryExpression2032 = new BitSet(new long[] { 0x0000000000000002L });
+    public static final BitSet FOLLOW_23_in_paranthesizedExpression2059 = new BitSet(new long[] { 0x9080000700800380L, 0x000000077FFE8001L });
+    public static final BitSet FOLLOW_expression_in_paranthesizedExpression2063 = new BitSet(new long[] { 0x0000000004000000L });
+    public static final BitSet FOLLOW_26_in_paranthesizedExpression2065 = new BitSet(new long[] { 0x0000000000000002L });
+    public static final BitSet FOLLOW_81_in_globalVarExpression2094 = new BitSet(new long[] { 0x0000000000000200L });
+    public static final BitSet FOLLOW_identifier_in_globalVarExpression2098 = new BitSet(new long[] { 0x0000000000000002L });
+    public static final BitSet FOLLOW_identifier_in_featureCall2125 = new BitSet(new long[] { 0x0000000000800000L });
+    public static final BitSet FOLLOW_23_in_featureCall2127 = new BitSet(new long[] { 0x9080000704800380L, 0x000000077FFE8001L });
+    public static final BitSet FOLLOW_parameterList_in_featureCall2132 = new BitSet(new long[] { 0x0000000004000000L });
+    public static final BitSet FOLLOW_26_in_featureCall2136 = new BitSet(new long[] { 0x0000000000000002L });
+    public static final BitSet FOLLOW_type_in_featureCall2146 = new BitSet(new long[] { 0x0000000000000002L });
+    public static final BitSet FOLLOW_collectionExpression_in_featureCall2157 = new BitSet(new long[] { 0x0000000000000002L });
+    public static final BitSet FOLLOW_64_in_listLiteral2183 = new BitSet(new long[] { 0x9080000700800380L, 0x000000077FFE8009L });
+    public static final BitSet FOLLOW_parameterList_in_listLiteral2188 = new BitSet(new long[] { 0x0000000000000000L, 0x0000000000000008L });
+    public static final BitSet FOLLOW_67_in_listLiteral2192 = new BitSet(new long[] { 0x0000000000000002L });
+    public static final BitSet FOLLOW_82_in_constructorCall2217 = new BitSet(new long[] { 0x0000000000000200L });
+    public static final BitSet FOLLOW_simpleType_in_constructorCall2221 = new BitSet(new long[] { 0x0000000000000002L });
+    public static final BitSet FOLLOW_set_in_booleanLiteral0 = new BitSet(new long[] { 0x0000000000000002L });
+    public static final BitSet FOLLOW_85_in_nullLiteral2273 = new BitSet(new long[] { 0x0000000000000002L });
+    public static final BitSet FOLLOW_IntLiteral_in_numberLiteral2300 = new BitSet(new long[] { 0x0000000000000002L });
+    public static final BitSet FOLLOW_IntLiteral_in_numberLiteral2309 = new BitSet(new long[] { 0x0000000000000000L, 0x0000000000010000L });
+    public static final BitSet FOLLOW_80_in_numberLiteral2313 = new BitSet(new long[] { 0x0000000000000100L });
+    public static final BitSet FOLLOW_IntLiteral_in_numberLiteral2317 = new BitSet(new long[] { 0x0000000000000002L });
+    public static final BitSet FOLLOW_86_in_collectionExpression2346 = new BitSet(new long[] { 0x0000000000800000L });
+    public static final BitSet FOLLOW_23_in_collectionExpression2350 = new BitSet(new long[] { 0x0000000000000200L, 0x0000000700000000L });
+    public static final BitSet FOLLOW_type_in_collectionExpression2354 = new BitSet(new long[] { 0x0000000004000000L });
+    public static final BitSet FOLLOW_26_in_collectionExpression2356 = new BitSet(new long[] { 0x0000000000000002L });
+    public static final BitSet FOLLOW_set_in_collectionExpression2369 = new BitSet(new long[] { 0x0000000000800000L });
+    public static final BitSet FOLLOW_23_in_collectionExpression2419 = new BitSet(new long[] { 0x9080000700800380L, 0x000000077FFE8001L });
+    public static final BitSet FOLLOW_identifier_in_collectionExpression2424 = new BitSet(new long[] { 0x0000000000000000L, 0x0000000080000000L });
+    public static final BitSet FOLLOW_95_in_collectionExpression2426 = new BitSet(new long[] { 0x9080000700800380L, 0x000000077FFE8001L });
+    public static final BitSet FOLLOW_expression_in_collectionExpression2432 = new BitSet(new long[] { 0x0000000004000000L });
+    public static final BitSet FOLLOW_26_in_collectionExpression2434 = new BitSet(new long[] { 0x0000000000000002L });
+    public static final BitSet FOLLOW_declaredParameter_in_declaredParameterList2466 = new BitSet(new long[] { 0x0000000001000002L });
+    public static final BitSet FOLLOW_24_in_declaredParameterList2470 = new BitSet(new long[] { 0x0000000000000200L, 0x0000000700000000L });
+    public static final BitSet FOLLOW_declaredParameter_in_declaredParameterList2474 = new BitSet(new long[] { 0x0000000001000002L });
+    public static final BitSet FOLLOW_type_in_declaredParameter2502 = new BitSet(new long[] { 0x0000000000000200L });
+    public static final BitSet FOLLOW_identifier_in_declaredParameter2506 = new BitSet(new long[] { 0x0000000000000002L });
+    public static final BitSet FOLLOW_expression_in_parameterList2528 = new BitSet(new long[] { 0x0000000001000002L });
+    public static final BitSet FOLLOW_24_in_parameterList2533 = new BitSet(new long[] { 0x9080000700800380L, 0x000000077FFE8001L });
+    public static final BitSet FOLLOW_expression_in_parameterList2537 = new BitSet(new long[] { 0x0000000001000002L });
+    public static final BitSet FOLLOW_collectionType_in_type2571 = new BitSet(new long[] { 0x0000000000000002L });
+    public static final BitSet FOLLOW_simpleType_in_type2581 = new BitSet(new long[] { 0x0000000000000002L });
+    public static final BitSet FOLLOW_set_in_collectionType2611 = new BitSet(new long[] { 0x0000000000000002L, 0x0000000800000000L });
+    public static final BitSet FOLLOW_99_in_collectionType2632 = new BitSet(new long[] { 0x0000000000000200L });
+    public static final BitSet FOLLOW_simpleType_in_collectionType2636 = new BitSet(new long[] { 0x0000000000000000L, 0x0000001000000000L });
+    public static final BitSet FOLLOW_100_in_collectionType2640 = new BitSet(new long[] { 0x0000000000000002L });
+    public static final BitSet FOLLOW_identifier_in_simpleType2668 = new BitSet(new long[] { 0x0000000020000002L });
+    public static final BitSet FOLLOW_29_in_simpleType2676 = new BitSet(new long[] { 0x0000000000000200L });
+    public static final BitSet FOLLOW_identifier_in_simpleType2680 = new BitSet(new long[] { 0x0000000020000002L });
+    public static final BitSet FOLLOW_Identifier_in_identifier2711 = new BitSet(new long[] { 0x0000000000000002L });
+    public static final BitSet FOLLOW_23_in_synpred1_Xpand1315 = new BitSet(new long[] { 0x0000000000000200L, 0x0000000700000000L });
+    public static final BitSet FOLLOW_type_in_synpred1_Xpand1317 = new BitSet(new long[] { 0x0000000004000000L });
+    public static final BitSet FOLLOW_26_in_synpred1_Xpand1319 = new BitSet(new long[] { 0x9080000700800380L, 0x000000077FFE8001L });
+    public static final BitSet FOLLOW_castedExpression_in_synpred1_Xpand1321 = new BitSet(new long[] { 0x0000000000000002L });
 
 }
\ No newline at end of file
diff --git a/plugins/org.eclipse.xtend.shared.ui/src/org/eclipse/xtend/shared/ui/core/builder/XtendXpandProblemHover.java b/plugins/org.eclipse.xtend.shared.ui/src/org/eclipse/xtend/shared/ui/core/builder/XtendXpandProblemHover.java
index 81db538..ff420d1 100644
--- a/plugins/org.eclipse.xtend.shared.ui/src/org/eclipse/xtend/shared/ui/core/builder/XtendXpandProblemHover.java
+++ b/plugins/org.eclipse.xtend.shared.ui/src/org/eclipse/xtend/shared/ui/core/builder/XtendXpandProblemHover.java
@@ -30,7 +30,7 @@
 
 public class XtendXpandProblemHover implements IAnnotationHover, ITextHover {
 
-	private ISourceViewer sourceViewer;
+	private final ISourceViewer sourceViewer;
 
 	public XtendXpandProblemHover(final ISourceViewer sourceViewer) {
 		this.sourceViewer = sourceViewer;
@@ -61,6 +61,8 @@
 
 	private String getHoverInfoInternal(final int lineNumber, final int offset) {
 		final IAnnotationModel model = sourceViewer.getAnnotationModel();
+		if (model == null)
+			return "";
 		final List<String> messages = new ArrayList<String>();
 
 		final Iterator<?> iterator = model.getAnnotationIterator();
diff --git a/plugins/org.eclipse.xtend/.settings/.api_filters b/plugins/org.eclipse.xtend/.settings/.api_filters
new file mode 100644
index 0000000..c32fccc
--- /dev/null
+++ b/plugins/org.eclipse.xtend/.settings/.api_filters
@@ -0,0 +1,1243 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<component id="org.eclipse.xtend" version="2">
+    <resource path="META-INF/MANIFEST.MF">
+        <filter id="0"/>
+    </resource>
+    <resource path="src/org/eclipse/internal/xtend/xtend/parser/XtendParser.java">
+        <filter id="0"/>
+    </resource>
+    <resource path="src/org/eclipse/internal/xtend/xtend/parser/XtendParser.java" type="org.eclipse.internal.xtend.xtend.parser.XtendParser">
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_24_in_ifExpression871"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_27_in_ifExpression859"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_27_in_switchExpression956"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_27_in_switchExpression981"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_29_in_collectionExpression1814"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_29_in_collectionExpression1883"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_29_in_featureCall1591"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_29_in_paranthesizedExpression1523"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_29_in_switchExpression921"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_30_in_declaredParameterList1934"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_30_in_parameterList1997"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_32_in_collectionExpression1820"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_32_in_collectionExpression1898"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_32_in_featureCall1600"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_32_in_paranthesizedExpression1529"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_32_in_switchExpression929"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_33_in_simpleType2140"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_37_in_infixExpression1376"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_37_in_numberLiteral1777"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_44_in_chainExpression815"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_45_in_ifExpression853"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_46_in_ifExpression877"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_47_in_ifExpression884"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_48_in_switchExpression918"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_49_in_listLiteral1647"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_49_in_switchExpression936"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_50_in_switchExpression949"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_51_in_switchExpression979"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_52_in_listLiteral1656"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_52_in_switchExpression992"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_53_in_orExpression1040"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_54_in_andExpression1083"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_55_in_impliesExpression1125"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_63_in_unaryExpression1339"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_65_in_unaryExpression1327"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_66_in_globalVarExpression1558"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_67_in_constructorCall1681"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_70_in_nullLiteral1737"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_71_in_collectionExpression1810"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_80_in_collectionExpression1890"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_81_in_collectionType2096"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_82_in_collectionType2104"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_Identifier_in_identifier2175"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_IntLiteral_in_numberLiteral1764"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_IntLiteral_in_numberLiteral1773"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_IntLiteral_in_numberLiteral1781"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_StringLiteral_in_primaryExpression1415"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_additiveExpression_in_relationalExpression1161"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_additiveExpression_in_relationalExpression1195"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_andExpression_in_orExpression1033"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_andExpression_in_orExpression1044"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_booleanLiteral_in_primaryExpression1436"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_collectionExpression_in_featureCall1621"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_collectionType_in_type2035"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_constructorCall_in_primaryExpression1476"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_declaredParameter_in_declaredParameterList1930"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_declaredParameter_in_declaredParameterList1938"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_expression_in_collectionExpression1896"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_expression_in_ifExpression888"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_expression_in_parameterList1992"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_expression_in_parameterList2001"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_expression_in_paranthesizedExpression1527"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_featureCall_in_infixExpression1380"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_featureCall_in_primaryExpression1426"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_globalVarExpression_in_primaryExpression1486"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_identifier_in_collectionExpression1888"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_identifier_in_declaredParameter1970"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_identifier_in_featureCall1589"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_identifier_in_globalVarExpression1562"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_identifier_in_simpleType2132"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_identifier_in_simpleType2144"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_ifExpression_in_chainExpression809"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_ifExpression_in_chainExpression819"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_impliesExpression_in_andExpression1076"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_impliesExpression_in_andExpression1087"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_infixExpression_in_unaryExpression1319"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_infixExpression_in_unaryExpression1331"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_infixExpression_in_unaryExpression1343"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_listLiteral_in_primaryExpression1466"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_multiplicativeExpression_in_additiveExpression1224"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_multiplicativeExpression_in_additiveExpression1243"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_nullLiteral_in_primaryExpression1456"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_numberLiteral_in_primaryExpression1446"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_orExpression_in_switchExpression1004"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_orExpression_in_switchExpression927"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_orExpression_in_switchExpression953"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_orExpression_in_switchExpression961"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_orExpression_in_switchExpression987"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_parameterList_in_featureCall1596"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_parameterList_in_listLiteral1652"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_paranthesizedExpression_in_primaryExpression1496"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_primaryExpression_in_infixExpression1370"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_relationalExpression_in_impliesExpression1118"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_relationalExpression_in_impliesExpression1129"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_set_in_additiveExpression1234"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_set_in_collectionExpression1833"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_set_in_collectionType2075"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_set_in_multiplicativeExpression1280"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_set_in_relationalExpression1169"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_simpleType_in_collectionType2100"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_simpleType_in_constructorCall1685"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_simpleType_in_type2045"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_switchExpression_in_ifExpression849"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_switchExpression_in_ifExpression857"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_switchExpression_in_ifExpression863"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_switchExpression_in_ifExpression875"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_switchExpression_in_ifExpression881"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_type_in_collectionExpression1818"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_type_in_declaredParameter1966"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_type_in_featureCall1610"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_unaryExpression_in_multiplicativeExpression1272"/>
+            </message_arguments>
+        </filter>
+        <filter id="338755678">
+            <message_arguments>
+                <message_argument value="org.eclipse.internal.xtend.xtend.parser.XtendParser"/>
+                <message_argument value="FOLLOW_unaryExpression_in_multiplicativeExpression1290"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_24_in_ifExpression867"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_27_in_ifExpression855"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_27_in_switchExpression952"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_27_in_switchExpression977"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_29_in_collectionExpression1786"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_29_in_collectionExpression1855"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_29_in_featureCall1563"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_29_in_paranthesizedExpression1495"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_29_in_switchExpression917"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_30_in_declaredParameterList1906"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_30_in_parameterList1969"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_32_in_collectionExpression1792"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_32_in_collectionExpression1870"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_32_in_featureCall1572"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_32_in_paranthesizedExpression1501"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_32_in_switchExpression925"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_33_in_simpleType2112"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_37_in_infixExpression1348"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_37_in_numberLiteral1749"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_44_in_chainExpression811"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_45_in_ifExpression849"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_46_in_ifExpression873"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_47_in_ifExpression880"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_48_in_switchExpression914"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_49_in_listLiteral1619"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_49_in_switchExpression932"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_50_in_switchExpression945"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_51_in_switchExpression975"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_52_in_listLiteral1628"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_52_in_switchExpression988"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_53_in_orExpression1032"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_54_in_andExpression1071"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_55_in_impliesExpression1109"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_63_in_unaryExpression1311"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_65_in_unaryExpression1299"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_66_in_globalVarExpression1530"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_67_in_constructorCall1653"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_70_in_nullLiteral1709"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_71_in_collectionExpression1782"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_80_in_collectionExpression1862"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_81_in_collectionType2068"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_82_in_collectionType2076"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_Identifier_in_identifier2147"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_IntLiteral_in_numberLiteral1736"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_IntLiteral_in_numberLiteral1745"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_IntLiteral_in_numberLiteral1753"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_StringLiteral_in_primaryExpression1387"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_additiveExpression_in_relationalExpression1141"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_additiveExpression_in_relationalExpression1175"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_andExpression_in_orExpression1025"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_andExpression_in_orExpression1036"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_booleanLiteral_in_primaryExpression1408"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_collectionExpression_in_featureCall1593"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_collectionType_in_type2007"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_constructorCall_in_primaryExpression1448"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_declaredParameter_in_declaredParameterList1902"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_declaredParameter_in_declaredParameterList1910"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_expression_in_collectionExpression1868"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_expression_in_ifExpression884"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_expression_in_parameterList1964"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_expression_in_parameterList1973"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_expression_in_paranthesizedExpression1499"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_featureCall_in_infixExpression1352"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_featureCall_in_primaryExpression1398"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_globalVarExpression_in_primaryExpression1458"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_identifier_in_collectionExpression1860"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_identifier_in_declaredParameter1942"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_identifier_in_featureCall1561"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_identifier_in_globalVarExpression1534"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_identifier_in_simpleType2104"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_identifier_in_simpleType2116"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_ifExpression_in_chainExpression805"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_ifExpression_in_chainExpression815"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_impliesExpression_in_andExpression1064"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_impliesExpression_in_andExpression1075"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_infixExpression_in_unaryExpression1291"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_infixExpression_in_unaryExpression1303"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_infixExpression_in_unaryExpression1315"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_listLiteral_in_primaryExpression1438"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_multiplicativeExpression_in_additiveExpression1200"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_multiplicativeExpression_in_additiveExpression1219"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_nullLiteral_in_primaryExpression1428"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_numberLiteral_in_primaryExpression1418"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_orExpression_in_switchExpression1000"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_orExpression_in_switchExpression923"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_orExpression_in_switchExpression949"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_orExpression_in_switchExpression957"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_orExpression_in_switchExpression983"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_parameterList_in_featureCall1568"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_parameterList_in_listLiteral1624"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_paranthesizedExpression_in_primaryExpression1468"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_primaryExpression_in_infixExpression1342"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_relationalExpression_in_impliesExpression1102"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_relationalExpression_in_impliesExpression1113"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_set_in_additiveExpression1210"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_set_in_collectionExpression1805"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_set_in_collectionType2047"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_set_in_multiplicativeExpression1252"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_set_in_relationalExpression1149"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_simpleType_in_collectionType2072"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_simpleType_in_constructorCall1657"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_simpleType_in_type2017"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_switchExpression_in_ifExpression845"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_switchExpression_in_ifExpression853"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_switchExpression_in_ifExpression859"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_switchExpression_in_ifExpression871"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_switchExpression_in_ifExpression877"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_type_in_collectionExpression1790"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_type_in_declaredParameter1938"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_type_in_featureCall1582"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_unaryExpression_in_multiplicativeExpression1244"/>
+            </message_arguments>
+        </filter>
+        <filter id="1143996420">
+            <message_arguments>
+                <message_argument value="FOLLOW_unaryExpression_in_multiplicativeExpression1262"/>
+            </message_arguments>
+        </filter>
+    </resource>
+</component>
diff --git a/plugins/org.eclipse.xtend/src/org/eclipse/internal/xtend/xtend/parser/Xtend.g b/plugins/org.eclipse.xtend/src/org/eclipse/internal/xtend/xtend/parser/Xtend.g
index 3810cde..455c490 100644
--- a/plugins/org.eclipse.xtend/src/org/eclipse/internal/xtend/xtend/parser/Xtend.g
+++ b/plugins/org.eclipse.xtend/src/org/eclipse/internal/xtend/xtend/parser/Xtend.g
@@ -179,9 +179,8 @@
 
 chainExpression  returns [Expression e]
 @init{ final CommonToken startToken = (CommonToken) input.LT(1); }
-@after{ addLocation(e, startToken, /*endToken*/ (CommonToken) input.LT(-1)); }
 :
-	x=ifExpression {$e=x;} ( '->' right=ifExpression {$e=factory.createChainExpression($e,right);})*
+	x=ifExpression {$e=x;} ( '->' right=ifExpression {$e=factory.createChainExpression($e,right); addLocation(e, startToken, /*endToken*/ (CommonToken) input.LT(-1));})*
 ;
 
 
@@ -213,52 +212,46 @@
 
 orExpression returns [Expression e]
 @init{ final CommonToken startToken = (CommonToken) input.LT(1); }
-@after{ addLocation(e, startToken, /*endToken*/ (CommonToken) input.LT(-1)); }
 :
-  	x=andExpression {$e=x;} (name='||' r=andExpression 	{$e = factory.createBooleanOperation(id(name),$e,r);})*	
+  	x=andExpression {$e=x;} (name='||' r=andExpression 	{$e = factory.createBooleanOperation(id(name),$e,r); addLocation(e, startToken, /*endToken*/ (CommonToken) input.LT(-1)); })*	
 ;
 
 
 andExpression 	returns [Expression e]
 @init{ final CommonToken startToken = (CommonToken) input.LT(1); }
-@after{ addLocation(e, startToken, /*endToken*/ (CommonToken) input.LT(-1)); }
 :
-	x=impliesExpression {$e=x;} (name='&&' r=impliesExpression 	{$e = factory.createBooleanOperation(id(name),$e,r);})*	
+	x=impliesExpression {$e=x;} (name='&&' r=impliesExpression 	{$e = factory.createBooleanOperation(id(name),$e,r); addLocation(e, startToken, /*endToken*/ (CommonToken) input.LT(-1)); })*	
 ;
 
 
 impliesExpression returns [Expression e]
 @init{ final CommonToken startToken = (CommonToken) input.LT(1); }
-@after{ addLocation(e, startToken, /*endToken*/ (CommonToken) input.LT(-1)); }
 :
-	x=relationalExpression {$e=x;} (name='implies' r=relationalExpression 	{$e = factory.createBooleanOperation(id(name),$e,r);})*	
+	x=relationalExpression {$e=x;} (name='implies' r=relationalExpression 	{$e = factory.createBooleanOperation(id(name),$e,r); addLocation(e, startToken, /*endToken*/ (CommonToken) input.LT(-1)); })*	
 ;
 
 	
 relationalExpression returns [Expression e]
 @init{ final CommonToken startToken = (CommonToken) input.LT(1); }
-@after{ addLocation(e, startToken, /*endToken*/ (CommonToken) input.LT(-1)); }
 :
 	x=additiveExpression {$e=x;}
-	(name=('==' | '!=' | '>=' | '<=' | '>' | '<') r=additiveExpression {$e = factory.createBinaryOperation(id(name),$e,r);})*
+	(name=('==' | '!=' | '>=' | '<=' | '>' | '<') r=additiveExpression {$e = factory.createBinaryOperation(id(name),$e,r); addLocation(e, startToken, /*endToken*/ (CommonToken) input.LT(-1)); })*
 ;
 
 
 additiveExpression returns [Expression e]
 @init{ final CommonToken startToken = (CommonToken) input.LT(1); }
-@after{ addLocation(e, startToken, /*endToken*/ (CommonToken) input.LT(-1)); }
 :
 	x=multiplicativeExpression {$e=x;}
-   (name=('+'| '-') r=multiplicativeExpression {$e = factory.createBinaryOperation(id(name),$e,r);})*
+   (name=('+'| '-') r=multiplicativeExpression {$e = factory.createBinaryOperation(id(name),$e,r); addLocation(e, startToken, /*endToken*/ (CommonToken) input.LT(-1)); })*
 ;
 
 
 multiplicativeExpression returns [Expression e]
 @init{ final CommonToken startToken = (CommonToken) input.LT(1); }
-@after{ addLocation(e, startToken, /*endToken*/ (CommonToken) input.LT(-1)); }
 :
 	x=unaryExpression {$e=x;}
-	(name=('*' | '/') r=unaryExpression {$e = factory.createBinaryOperation(id(name),$e,r);})*
+	(name=('*' | '/') r=unaryExpression {$e = factory.createBinaryOperation(id(name),$e,r); addLocation(e, startToken, /*endToken*/ (CommonToken) input.LT(-1)); })*
 ;
 
 
diff --git a/plugins/org.eclipse.xtend/src/org/eclipse/internal/xtend/xtend/parser/XtendLexer.java b/plugins/org.eclipse.xtend/src/org/eclipse/internal/xtend/xtend/parser/XtendLexer.java
index 1c74120..7aa09e0 100644
--- a/plugins/org.eclipse.xtend/src/org/eclipse/internal/xtend/xtend/parser/XtendLexer.java
+++ b/plugins/org.eclipse.xtend/src/org/eclipse/internal/xtend/xtend/parser/XtendLexer.java
@@ -1,3125 +1,3117 @@
-// $ANTLR 3.2 Sep 23, 2009 12:02:23 src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g 2013-02-20 13:52:03

-

-package org.eclipse.internal.xtend.xtend.parser;

-

-import org.antlr.runtime.BaseRecognizer;

-import org.antlr.runtime.CharStream;

-import org.antlr.runtime.DFA;

-import org.antlr.runtime.EarlyExitException;

-import org.antlr.runtime.Lexer;

-import org.antlr.runtime.MismatchedSetException;

-import org.antlr.runtime.NoViableAltException;

-import org.antlr.runtime.RecognitionException;

-import org.antlr.runtime.RecognizerSharedState;

-

-@SuppressWarnings("all")

-public class XtendLexer extends Lexer {

-	public static final int T__68 = 68;

-	public static final int T__69 = 69;

-	public static final int T__66 = 66;

-	public static final int T__67 = 67;

-	public static final int T__29 = 29;

-	public static final int T__64 = 64;

-	public static final int T__28 = 28;

-	public static final int T__65 = 65;

-	public static final int T__27 = 27;

-	public static final int T__62 = 62;

-	public static final int T__26 = 26;

-	public static final int T__63 = 63;

-	public static final int T__25 = 25;

-	public static final int T__24 = 24;

-	public static final int T__23 = 23;

-	public static final int T__22 = 22;

-	public static final int T__21 = 21;

-	public static final int T__20 = 20;

-	public static final int T__61 = 61;

-	public static final int EOF = -1;

-	public static final int T__60 = 60;

-	public static final int HexDigit = 10;

-	public static final int XPAND_TAG_CLOSE = 17;

-	public static final int Identifier = 6;

-	public static final int T__55 = 55;

-	public static final int T__19 = 19;

-	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__18 = 18;

-	public static final int T__53 = 53;

-	public static final int T__54 = 54;

-	public static final int T__59 = 59;

-	public static final int COMMENT = 14;

-	public static final int T__50 = 50;

-	public static final int T__42 = 42;

-	public static final int T__43 = 43;

-	public static final int T__40 = 40;

-	public static final int T__41 = 41;

-	public static final int T__46 = 46;

-	public static final int T__80 = 80;

-	public static final int T__47 = 47;

-	public static final int T__81 = 81;

-	public static final int T__44 = 44;

-	public static final int T__82 = 82;

-	public static final int XPAND_TAG_OPEN = 16;

-	public static final int T__45 = 45;

-	public static final int LINE_COMMENT = 15;

-	public static final int T__48 = 48;

-	public static final int IntLiteral = 5;

-	public static final int T__49 = 49;

-	public static final int StringLiteral = 4;

-	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__33 = 33;

-	public static final int T__71 = 71;

-	public static final int WS = 13;

-	public static final int T__34 = 34;

-	public static final int T__72 = 72;

-	public static final int T__35 = 35;

-	public static final int T__36 = 36;

-	public static final int T__70 = 70;

-	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 UnicodeEscape = 8;

-	public static final int JavaIDDigit = 12;

-	public static final int T__76 = 76;

-	public static final int T__75 = 75;

-	public static final int T__74 = 74;

-	public static final int T__73 = 73;

-	public static final int EscapeSequence = 7;

-	public static final int OctalEscape = 9;

-	public static final int Letter = 11;

-	public static final int T__79 = 79;

-	public static final int T__78 = 78;

-	public static final int T__77 = 77;

-

-	// delegates

-	// delegators

-

-	public XtendLexer() {

-		;

-	}

-

-	public XtendLexer(final CharStream input) {

-		this(input, new RecognizerSharedState());

-	}

-

-	public XtendLexer(final CharStream input, final RecognizerSharedState state) {

-		super(input, state);

-

-	}

-

-	public String getGrammarFileName() {

-		return "src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g";

-	}

-

-	// $ANTLR start "T__18"

-	public final void mT__18() throws RecognitionException {

-		try {

-			int _type = T__18;

-			int _channel = DEFAULT_TOKEN_CHANNEL;

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:14:7: ( 'import' )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:14:9: 'import'

-			{

-				match("import");

-

-			}

-

-			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;

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:15:7: ( ';' )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:15:9: ';'

-			{

-				match(';');

-

-			}

-

-			state.type = _type;

-			state.channel = _channel;

-		} finally {

-		}

-	}

-

-	// $ANTLR end "T__19"

-

-	// $ANTLR start "T__20"

-	public final void mT__20() throws RecognitionException {

-		try {

-			int _type = T__20;

-			int _channel = DEFAULT_TOKEN_CHANNEL;

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:16:7: ( 'extension' )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:16:9: 'extension'

-			{

-				match("extension");

-

-			}

-

-			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;

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:17:7: ( 'reexport' )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:17:9: 'reexport'

-			{

-				match("reexport");

-

-			}

-

-			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;

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:18:7: ( 'context' )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:18:9: 'context'

-			{

-				match("context");

-

-			}

-

-			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;

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:19:7: ( '#' )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:19:9: '#'

-			{

-				match('#');

-

-			}

-

-			state.type = _type;

-			state.channel = _channel;

-		} finally {

-		}

-	}

-

-	// $ANTLR end "T__23"

-

-	// $ANTLR start "T__24"

-	public final void mT__24() throws RecognitionException {

-		try {

-			int _type = T__24;

-			int _channel = DEFAULT_TOKEN_CHANNEL;

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:20:7: ( 'if' )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:20:9: 'if'

-			{

-				match("if");

-

-			}

-

-			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;

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:21:7: ( 'ERROR' )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:21:9: 'ERROR'

-			{

-				match("ERROR");

-

-			}

-

-			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;

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:22:7: ( 'WARNING' )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:22:9: 'WARNING'

-			{

-				match("WARNING");

-

-			}

-

-			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;

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:23:7: ( ':' )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:23:9: ':'

-			{

-				match(':');

-

-			}

-

-			state.type = _type;

-			state.channel = _channel;

-		} finally {

-		}

-	}

-

-	// $ANTLR end "T__27"

-

-	// $ANTLR start "T__28"

-	public final void mT__28() throws RecognitionException {

-		try {

-			int _type = T__28;

-			int _channel = DEFAULT_TOKEN_CHANNEL;

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:24:7: ( 'around' )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:24:9: 'around'

-			{

-				match("around");

-

-			}

-

-			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;

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:25:7: ( '(' )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:25:9: '('

-			{

-				match('(');

-

-			}

-

-			state.type = _type;

-			state.channel = _channel;

-		} finally {

-		}

-	}

-

-	// $ANTLR end "T__29"

-

-	// $ANTLR start "T__30"

-	public final void mT__30() throws RecognitionException {

-		try {

-			int _type = T__30;

-			int _channel = DEFAULT_TOKEN_CHANNEL;

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:26:7: ( ',' )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:26:9: ','

-			{

-				match(',');

-

-			}

-

-			state.type = _type;

-			state.channel = _channel;

-		} finally {

-		}

-	}

-

-	// $ANTLR end "T__30"

-

-	// $ANTLR start "T__31"

-	public final void mT__31() throws RecognitionException {

-		try {

-			int _type = T__31;

-			int _channel = DEFAULT_TOKEN_CHANNEL;

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:27:7: ( '*' )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:27:9: '*'

-			{

-				match('*');

-

-			}

-

-			state.type = _type;

-			state.channel = _channel;

-		} finally {

-		}

-	}

-

-	// $ANTLR end "T__31"

-

-	// $ANTLR start "T__32"

-	public final void mT__32() throws RecognitionException {

-		try {

-			int _type = T__32;

-			int _channel = DEFAULT_TOKEN_CHANNEL;

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:28:7: ( ')' )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:28:9: ')'

-			{

-				match(')');

-

-			}

-

-			state.type = _type;

-			state.channel = _channel;

-		} finally {

-		}

-	}

-

-	// $ANTLR end "T__32"

-

-	// $ANTLR start "T__33"

-	public final void mT__33() throws RecognitionException {

-		try {

-			int _type = T__33;

-			int _channel = DEFAULT_TOKEN_CHANNEL;

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:29:7: ( '::' )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:29:9: '::'

-			{

-				match("::");

-

-			}

-

-			state.type = _type;

-			state.channel = _channel;

-		} finally {

-		}

-	}

-

-	// $ANTLR end "T__33"

-

-	// $ANTLR start "T__34"

-	public final void mT__34() throws RecognitionException {

-		try {

-			int _type = T__34;

-			int _channel = DEFAULT_TOKEN_CHANNEL;

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:30:7: ( 'private' )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:30:9: 'private'

-			{

-				match("private");

-

-			}

-

-			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;

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:31:7: ( 'cached' )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:31:9: 'cached'

-			{

-				match("cached");

-

-			}

-

-			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;

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:32:7: ( 'JAVA' )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:32:9: 'JAVA'

-			{

-				match("JAVA");

-

-			}

-

-			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;

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:33:7: ( '.' )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:33:9: '.'

-			{

-				match('.');

-

-			}

-

-			state.type = _type;

-			state.channel = _channel;

-		} finally {

-		}

-	}

-

-	// $ANTLR end "T__37"

-

-	// $ANTLR start "T__38"

-	public final void mT__38() throws RecognitionException {

-		try {

-			int _type = T__38;

-			int _channel = DEFAULT_TOKEN_CHANNEL;

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:34:7: ( 'create' )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:34:9: 'create'

-			{

-				match("create");

-

-			}

-

-			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;

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:35:7: ( 'Collection' )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:35:9: 'Collection'

-			{

-				match("Collection");

-

-			}

-

-			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;

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:36:7: ( 'List' )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:36:9: 'List'

-			{

-				match("List");

-

-			}

-

-			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;

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:37:7: ( 'Set' )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:37:9: 'Set'

-			{

-				match("Set");

-

-			}

-

-			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;

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:38:7: ( 'let' )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:38:9: 'let'

-			{

-				match("let");

-

-			}

-

-			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;

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:39:7: ( '=' )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:39:9: '='

-			{

-				match('=');

-

-			}

-

-			state.type = _type;

-			state.channel = _channel;

-		} finally {

-		}

-	}

-

-	// $ANTLR end "T__43"

-

-	// $ANTLR start "T__44"

-	public final void mT__44() throws RecognitionException {

-		try {

-			int _type = T__44;

-			int _channel = DEFAULT_TOKEN_CHANNEL;

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:40:7: ( '->' )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:40:9: '->'

-			{

-				match("->");

-

-			}

-

-			state.type = _type;

-			state.channel = _channel;

-		} finally {

-		}

-	}

-

-	// $ANTLR end "T__44"

-

-	// $ANTLR start "T__45"

-	public final void mT__45() throws RecognitionException {

-		try {

-			int _type = T__45;

-			int _channel = DEFAULT_TOKEN_CHANNEL;

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:41:7: ( '?' )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:41:9: '?'

-			{

-				match('?');

-

-			}

-

-			state.type = _type;

-			state.channel = _channel;

-		} finally {

-		}

-	}

-

-	// $ANTLR end "T__45"

-

-	// $ANTLR start "T__46"

-	public final void mT__46() throws RecognitionException {

-		try {

-			int _type = T__46;

-			int _channel = DEFAULT_TOKEN_CHANNEL;

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:42:7: ( 'then' )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:42:9: 'then'

-			{

-				match("then");

-

-			}

-

-			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;

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:43:7: ( 'else' )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:43:9: 'else'

-			{

-				match("else");

-

-			}

-

-			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;

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:44:7: ( 'switch' )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:44:9: 'switch'

-			{

-				match("switch");

-

-			}

-

-			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;

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:45:7: ( '{' )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:45: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;

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:46:7: ( 'case' )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:46:9: 'case'

-			{

-				match("case");

-

-			}

-

-			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;

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:47:7: ( 'default' )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:47:9: 'default'

-			{

-				match("default");

-

-			}

-

-			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;

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:48:7: ( '}' )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:48: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;

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:49:7: ( '||' )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:49: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;

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:50:7: ( '&&' )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:50: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;

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:51:7: ( 'implies' )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:51:9: 'implies'

-			{

-				match("implies");

-

-			}

-

-			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;

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:52:7: ( '==' )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:52: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;

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:53:7: ( '!=' )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:53: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;

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:54:7: ( '>=' )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:54:9: '>='

-			{

-				match(">=");

-

-			}

-

-			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;

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:55:7: ( '<=' )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:55: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;

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:56:7: ( '>' )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:56: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;

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:57:7: ( '<' )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:57: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;

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:58:7: ( '+' )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:58: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;

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:59:7: ( '-' )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:59: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;

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:60:7: ( '/' )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:60: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;

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:61:7: ( '!' )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:61: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;

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:62:7: ( 'GLOBALVAR' )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:62:9: 'GLOBALVAR'

-			{

-				match("GLOBALVAR");

-

-			}

-

-			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;

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:63:7: ( 'new' )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:63:9: 'new'

-			{

-				match("new");

-

-			}

-

-			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;

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:64:7: ( 'false' )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:64:9: 'false'

-			{

-				match("false");

-

-			}

-

-			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;

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:65:7: ( 'true' )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:65:9: 'true'

-			{

-				match("true");

-

-			}

-

-			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;

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:66:7: ( 'null' )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:66:9: 'null'

-			{

-				match("null");

-

-			}

-

-			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;

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:67:7: ( 'typeSelect' )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:67:9: 'typeSelect'

-			{

-				match("typeSelect");

-

-			}

-

-			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;

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:68:7: ( 'collect' )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:68:9: 'collect'

-			{

-				match("collect");

-

-			}

-

-			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;

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:69:7: ( 'select' )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:69:9: 'select'

-			{

-				match("select");

-

-			}

-

-			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;

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:70:7: ( 'selectFirst' )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:70:9: 'selectFirst'

-			{

-				match("selectFirst");

-

-			}

-

-			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;

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:71:7: ( 'reject' )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:71:9: 'reject'

-			{

-				match("reject");

-

-			}

-

-			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;

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:72:7: ( 'exists' )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:72:9: 'exists'

-			{

-				match("exists");

-

-			}

-

-			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;

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:73:7: ( 'notExists' )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:73:9: 'notExists'

-			{

-				match("notExists");

-

-			}

-

-			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;

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:74:7: ( 'sortBy' )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:74:9: 'sortBy'

-			{

-				match("sortBy");

-

-			}

-

-			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;

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:75:7: ( 'forAll' )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:75:9: 'forAll'

-			{

-				match("forAll");

-

-			}

-

-			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;

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:76:7: ( '|' )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:76:9: '|'

-			{

-				match('|');

-

-			}

-

-			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;

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:77:7: ( '[' )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:77: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;

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:78:7: ( ']' )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:78:9: ']'

-			{

-				match(']');

-

-			}

-

-			state.type = _type;

-			state.channel = _channel;

-		} finally {

-		}

-	}

-

-	// $ANTLR end "T__82"

-

-	// $ANTLR start "IntLiteral"

-	public final void mIntLiteral() throws RecognitionException {

-		try {

-			int _type = IntLiteral;

-			int _channel = DEFAULT_TOKEN_CHANNEL;

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:434:12: ( ( '0' .. '9' )+ )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:434:14: ( '0' .. '9' )+

-			{

-				// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:434:14: ( '0' .. '9' )+

-				int cnt1 = 0;

-				loop1: do {

-					int alt1 = 2;

-					int LA1_0 = input.LA(1);

-

-					if ((((LA1_0 >= '0') && (LA1_0 <= '9')))) {

-						alt1 = 1;

-					}

-

-					switch (alt1) {

-					case 1:

-					// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:434:14: '0' .. '9'

-					{

-						matchRange('0', '9');

-

-					}

-						break;

-

-					default:

-						if (cnt1 >= 1) {

-							break loop1;

-						}

-						EarlyExitException eee = new EarlyExitException(1, input);

-						throw eee;

-					}

-					cnt1++;

-				} while (true);

-

-			}

-

-			state.type = _type;

-			state.channel = _channel;

-		} finally {

-		}

-	}

-

-	// $ANTLR end "IntLiteral"

-

-	// $ANTLR start "StringLiteral"

-	public final void mStringLiteral() throws RecognitionException {

-		try {

-			int _type = StringLiteral;

-			int _channel = DEFAULT_TOKEN_CHANNEL;

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:437:5: ( '\"' ( EscapeSequence | ~ ( '\\\\' | '\"' ) )* '\"' | '\\'' (

-			// EscapeSequence | ~ ( '\\'' | '\\\\' ) )* '\\'' )

-			int alt4 = 2;

-			int LA4_0 = input.LA(1);

-

-			if ((LA4_0 == '\"')) {

-				alt4 = 1;

-			} else if ((LA4_0 == '\'')) {

-				alt4 = 2;

-			} else {

-				NoViableAltException nvae = new NoViableAltException("", 4, 0, input);

-

-				throw nvae;

-			}

-			switch (alt4) {

-			case 1:

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:437:8: '\"' ( EscapeSequence | ~ ( '\\\\' | '\"' ) )* '\"'

-			{

-				match('\"');

-				// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:437:12: ( EscapeSequence | ~ ( '\\\\' | '\"' ) )*

-				loop2: do {

-					int alt2 = 3;

-					int LA2_0 = input.LA(1);

-

-					if ((LA2_0 == '\\')) {

-						alt2 = 1;

-					} else if ((((LA2_0 >= '\u0000') && (LA2_0 <= '!')) || ((LA2_0 >= '#') && (LA2_0 <= '[')) || ((LA2_0 >= ']') && (LA2_0 <= '\uFFFF')))) {

-						alt2 = 2;

-					}

-

-					switch (alt2) {

-					case 1:

-					// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:437:14: EscapeSequence

-					{

-						mEscapeSequence();

-

-					}

-						break;

-					case 2:

-					// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:437:31: ~ ( '\\\\' | '\"' )

-					{

-						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 loop2;

-					}

-				} while (true);

-

-				match('\"');

-

-			}

-				break;

-			case 2:

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:438:8: '\\'' ( EscapeSequence | ~ ( '\\'' | '\\\\' ) )* '\\''

-			{

-				match('\'');

-				// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:438:13: ( EscapeSequence | ~ ( '\\'' | '\\\\' ) )*

-				loop3: do {

-					int alt3 = 3;

-					int LA3_0 = input.LA(1);

-

-					if ((LA3_0 == '\\')) {

-						alt3 = 1;

-					} else if ((((LA3_0 >= '\u0000') && (LA3_0 <= '&')) || ((LA3_0 >= '(') && (LA3_0 <= '[')) || ((LA3_0 >= ']') && (LA3_0 <= '\uFFFF')))) {

-						alt3 = 2;

-					}

-

-					switch (alt3) {

-					case 1:

-					// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:438:15: EscapeSequence

-					{

-						mEscapeSequence();

-

-					}

-						break;

-					case 2:

-					// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:438:32: ~ ( '\\'' | '\\\\' )

-					{

-						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 loop3;

-					}

-				} while (true);

-

-				match('\'');

-

-			}

-				break;

-

-			}

-			state.type = _type;

-			state.channel = _channel;

-		} finally {

-		}

-	}

-

-	// $ANTLR end "StringLiteral"

-

-	// $ANTLR start "EscapeSequence"

-	public final void mEscapeSequence() throws RecognitionException {

-		try {

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:443:5: ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' ) |

-			// UnicodeEscape | OctalEscape )

-			int alt5 = 3;

-			int LA5_0 = input.LA(1);

-

-			if ((LA5_0 == '\\')) {

-				switch (input.LA(2)) {

-				case '\"':

-				case '\'':

-				case '\\':

-				case 'b':

-				case 'f':

-				case 'n':

-				case 'r':

-				case 't': {

-					alt5 = 1;

-				}

-					break;

-				case 'u': {

-					alt5 = 2;

-				}

-					break;

-				case '0':

-				case '1':

-				case '2':

-				case '3':

-				case '4':

-				case '5':

-				case '6':

-				case '7': {

-					alt5 = 3;

-				}

-					break;

-				default:

-					NoViableAltException nvae = new NoViableAltException("", 5, 1, input);

-

-					throw nvae;

-				}

-

-			} else {

-				NoViableAltException nvae = new NoViableAltException("", 5, 0, input);

-

-				throw nvae;

-			}

-			switch (alt5) {

-			case 1:

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:443:9: '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' )

-			{

-				match('\\');

-				if ((input.LA(1) == '\"') || (input.LA(1) == '\'') || (input.LA(1) == '\\') || (input.LA(1) == 'b') || (input.LA(1) == 'f')

-						|| (input.LA(1) == 'n') || (input.LA(1) == 'r') || (input.LA(1) == 't')) {

-					input.consume();

-

-				} else {

-					MismatchedSetException mse = new MismatchedSetException(null, input);

-					recover(mse);

-					throw mse;

-				}

-

-			}

-				break;

-			case 2:

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:444:9: UnicodeEscape

-			{

-				mUnicodeEscape();

-

-			}

-				break;

-			case 3:

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:445:9: OctalEscape

-			{

-				mOctalEscape();

-

-			}

-				break;

-

-			}

-		} finally {

-		}

-	}

-

-	// $ANTLR end "EscapeSequence"

-

-	// $ANTLR start "OctalEscape"

-	public final void mOctalEscape() throws RecognitionException {

-		try {

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:450:5: ( '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0'

-			// .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) )

-			int alt6 = 3;

-			int LA6_0 = input.LA(1);

-

-			if ((LA6_0 == '\\')) {

-				int LA6_1 = input.LA(2);

-

-				if ((((LA6_1 >= '0') && (LA6_1 <= '3')))) {

-					int LA6_2 = input.LA(3);

-

-					if ((((LA6_2 >= '0') && (LA6_2 <= '7')))) {

-						int LA6_4 = input.LA(4);

-

-						if ((((LA6_4 >= '0') && (LA6_4 <= '7')))) {

-							alt6 = 1;

-						} else {

-							alt6 = 2;

-						}

-					} else {

-						alt6 = 3;

-					}

-				} else if ((((LA6_1 >= '4') && (LA6_1 <= '7')))) {

-					int LA6_3 = input.LA(3);

-

-					if ((((LA6_3 >= '0') && (LA6_3 <= '7')))) {

-						alt6 = 2;

-					} else {

-						alt6 = 3;

-					}

-				} else {

-					NoViableAltException nvae = new NoViableAltException("", 6, 1, input);

-

-					throw nvae;

-				}

-			} else {

-				NoViableAltException nvae = new NoViableAltException("", 6, 0, input);

-

-				throw nvae;

-			}

-			switch (alt6) {

-			case 1:

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:450:9: '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' )

-			{

-				match('\\');

-				// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:450:14: ( '0' .. '3' )

-				// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:450:15: '0' .. '3'

-				{

-					matchRange('0', '3');

-

-				}

-

-				// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:450:25: ( '0' .. '7' )

-				// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:450:26: '0' .. '7'

-				{

-					matchRange('0', '7');

-

-				}

-

-				// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:450:36: ( '0' .. '7' )

-				// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:450:37: '0' .. '7'

-				{

-					matchRange('0', '7');

-

-				}

-

-			}

-				break;

-			case 2:

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:451:9: '\\\\' ( '0' .. '7' ) ( '0' .. '7' )

-			{

-				match('\\');

-				// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:451:14: ( '0' .. '7' )

-				// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:451:15: '0' .. '7'

-				{

-					matchRange('0', '7');

-

-				}

-

-				// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:451:25: ( '0' .. '7' )

-				// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:451:26: '0' .. '7'

-				{

-					matchRange('0', '7');

-

-				}

-

-			}

-				break;

-			case 3:

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:452:9: '\\\\' ( '0' .. '7' )

-			{

-				match('\\');

-				// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:452:14: ( '0' .. '7' )

-				// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:452:15: '0' .. '7'

-				{

-					matchRange('0', '7');

-

-				}

-

-			}

-				break;

-

-			}

-		} finally {

-		}

-	}

-

-	// $ANTLR end "OctalEscape"

-

-	// $ANTLR start "UnicodeEscape"

-	public final void mUnicodeEscape() throws RecognitionException {

-		try {

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:457:5: ( '\\\\' 'u' HexDigit HexDigit HexDigit HexDigit )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:457:9: '\\\\' 'u' HexDigit HexDigit HexDigit HexDigit

-			{

-				match('\\');

-				match('u');

-				mHexDigit();

-				mHexDigit();

-				mHexDigit();

-				mHexDigit();

-

-			}

-

-		} finally {

-		}

-	}

-

-	// $ANTLR end "UnicodeEscape"

-

-	// $ANTLR start "HexDigit"

-	public final void mHexDigit() throws RecognitionException {

-		try {

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:460:10: ( ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' ) )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:460:12: ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' )

-			{

-				if (((input.LA(1) >= '0') && (input.LA(1) <= '9')) || ((input.LA(1) >= 'A') && (input.LA(1) <= 'F'))

-						|| ((input.LA(1) >= 'a') && (input.LA(1) <= 'f'))) {

-					input.consume();

-

-				} else {

-					MismatchedSetException mse = new MismatchedSetException(null, input);

-					recover(mse);

-					throw mse;

-				}

-

-			}

-

-		} finally {

-		}

-	}

-

-	// $ANTLR end "HexDigit"

-

-	// $ANTLR start "Identifier"

-	public final void mIdentifier() throws RecognitionException {

-		try {

-			int _type = Identifier;

-			int _channel = DEFAULT_TOKEN_CHANNEL;

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:463:5: ( ( '^' )? Letter ( Letter | JavaIDDigit )* )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:463:9: ( '^' )? Letter ( Letter | JavaIDDigit )*

-			{

-				// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:463:9: ( '^' )?

-				int alt7 = 2;

-				int LA7_0 = input.LA(1);

-

-				if ((LA7_0 == '^')) {

-					alt7 = 1;

-				}

-				switch (alt7) {

-				case 1:

-				// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:463:10: '^'

-				{

-					match('^');

-

-				}

-					break;

-

-				}

-

-				mLetter();

-				// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:463:23: ( Letter | JavaIDDigit )*

-				loop8: do {

-					int alt8 = 2;

-					int LA8_0 = input.LA(1);

-

-					if (((LA8_0 == '$') || ((LA8_0 >= '0') && (LA8_0 <= '9')) || ((LA8_0 >= 'A') && (LA8_0 <= 'Z')) || (LA8_0 == '_')

-							|| ((LA8_0 >= 'a') && (LA8_0 <= 'z')) || ((LA8_0 >= '\u00C0') && (LA8_0 <= '\u00D6'))

-							|| ((LA8_0 >= '\u00D8') && (LA8_0 <= '\u00F6')) || ((LA8_0 >= '\u00F8') && (LA8_0 <= '\u1FFF'))

-							|| ((LA8_0 >= '\u3040') && (LA8_0 <= '\u318F')) || ((LA8_0 >= '\u3300') && (LA8_0 <= '\u337F'))

-							|| ((LA8_0 >= '\u3400') && (LA8_0 <= '\u3D2D')) || ((LA8_0 >= '\u4E00') && (LA8_0 <= '\u9FFF')) || ((LA8_0 >= '\uF900') && (LA8_0 <= '\uFAFF')))) {

-						alt8 = 1;

-					}

-

-					switch (alt8) {

-					case 1:

-					// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.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.LA(1) >= '\u00C0') && (input.LA(1) <= '\u00D6'))

-								|| ((input.LA(1) >= '\u00D8') && (input.LA(1) <= '\u00F6'))

-								|| ((input.LA(1) >= '\u00F8') && (input.LA(1) <= '\u1FFF'))

-								|| ((input.LA(1) >= '\u3040') && (input.LA(1) <= '\u318F'))

-								|| ((input.LA(1) >= '\u3300') && (input.LA(1) <= '\u337F'))

-								|| ((input.LA(1) >= '\u3400') && (input.LA(1) <= '\u3D2D'))

-								|| ((input.LA(1) >= '\u4E00') && (input.LA(1) <= '\u9FFF'))

-								|| ((input.LA(1) >= '\uF900') && (input.LA(1) <= '\uFAFF'))) {

-							input.consume();

-

-						} else {

-							MismatchedSetException mse = new MismatchedSetException(null, input);

-							recover(mse);

-							throw mse;

-						}

-

-					}

-						break;

-

-					default:

-						break loop8;

-					}

-				} while (true);

-

-			}

-

-			state.type = _type;

-			state.channel = _channel;

-		} finally {

-		}

-	}

-

-	// $ANTLR end "Identifier"

-

-	// $ANTLR start "Letter"

-	public final void mLetter() throws RecognitionException {

-		try {

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:468:5: ( '\\u0024' | '\\u0041' .. '\\u005a' | '\\u005f' | '\\u0061' ..

-			// '\\u007a' | '\\u00c0' .. '\\u00d6' | '\\u00d8' .. '\\u00f6' | '\\u00f8' .. '\\u00ff' | '\\u0100' .. '\\u1fff' | '\\u3040' .. '\\u318f'

-			// | '\\u3300' .. '\\u337f' | '\\u3400' .. '\\u3d2d' | '\\u4e00' .. '\\u9fff' | '\\uf900' .. '\\ufaff' )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:

-			{

-				if ((input.LA(1) == '$') || ((input.LA(1) >= 'A') && (input.LA(1) <= 'Z')) || (input.LA(1) == '_')

-						|| ((input.LA(1) >= 'a') && (input.LA(1) <= 'z')) || ((input.LA(1) >= '\u00C0') && (input.LA(1) <= '\u00D6'))

-						|| ((input.LA(1) >= '\u00D8') && (input.LA(1) <= '\u00F6')) || ((input.LA(1) >= '\u00F8') && (input.LA(1) <= '\u1FFF'))

-						|| ((input.LA(1) >= '\u3040') && (input.LA(1) <= '\u318F')) || ((input.LA(1) >= '\u3300') && (input.LA(1) <= '\u337F'))

-						|| ((input.LA(1) >= '\u3400') && (input.LA(1) <= '\u3D2D')) || ((input.LA(1) >= '\u4E00') && (input.LA(1) <= '\u9FFF'))

-						|| ((input.LA(1) >= '\uF900') && (input.LA(1) <= '\uFAFF'))) {

-					input.consume();

-

-				} else {

-					MismatchedSetException mse = new MismatchedSetException(null, input);

-					recover(mse);

-					throw mse;

-				}

-

-			}

-

-		} finally {

-		}

-	}

-

-	// $ANTLR end "Letter"

-

-	// $ANTLR start "JavaIDDigit"

-	public final void mJavaIDDigit() throws RecognitionException {

-		try {

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:485:5: ( '\\u0030' .. '\\u0039' | '\\u0660' .. '\\u0669' | '\\u06f0' ..

-			// '\\u06f9' | '\\u0966' .. '\\u096f' | '\\u09e6' .. '\\u09ef' | '\\u0a66' .. '\\u0a6f' | '\\u0ae6' .. '\\u0aef' | '\\u0b66' .. '\\u0b6f'

-			// | '\\u0be7' .. '\\u0bef' | '\\u0c66' .. '\\u0c6f' | '\\u0ce6' .. '\\u0cef' | '\\u0d66' .. '\\u0d6f' | '\\u0e50' .. '\\u0e59' |

-			// '\\u0ed0' .. '\\u0ed9' | '\\u1040' .. '\\u1049' )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:

-			{

-				if (((input.LA(1) >= '0') && (input.LA(1) <= '9')) || ((input.LA(1) >= '\u0660') && (input.LA(1) <= '\u0669'))

-						|| ((input.LA(1) >= '\u06F0') && (input.LA(1) <= '\u06F9')) || ((input.LA(1) >= '\u0966') && (input.LA(1) <= '\u096F'))

-						|| ((input.LA(1) >= '\u09E6') && (input.LA(1) <= '\u09EF')) || ((input.LA(1) >= '\u0A66') && (input.LA(1) <= '\u0A6F'))

-						|| ((input.LA(1) >= '\u0AE6') && (input.LA(1) <= '\u0AEF')) || ((input.LA(1) >= '\u0B66') && (input.LA(1) <= '\u0B6F'))

-						|| ((input.LA(1) >= '\u0BE7') && (input.LA(1) <= '\u0BEF')) || ((input.LA(1) >= '\u0C66') && (input.LA(1) <= '\u0C6F'))

-						|| ((input.LA(1) >= '\u0CE6') && (input.LA(1) <= '\u0CEF')) || ((input.LA(1) >= '\u0D66') && (input.LA(1) <= '\u0D6F'))

-						|| ((input.LA(1) >= '\u0E50') && (input.LA(1) <= '\u0E59')) || ((input.LA(1) >= '\u0ED0') && (input.LA(1) <= '\u0ED9'))

-						|| ((input.LA(1) >= '\u1040') && (input.LA(1) <= '\u1049'))) {

-					input.consume();

-

-				} else {

-					MismatchedSetException mse = new MismatchedSetException(null, input);

-					recover(mse);

-					throw mse;

-				}

-

-			}

-

-		} finally {

-		}

-	}

-

-	// $ANTLR end "JavaIDDigit"

-

-	// $ANTLR start "WS"

-	public final void mWS() throws RecognitionException {

-		try {

-			int _type = WS;

-			int _channel = DEFAULT_TOKEN_CHANNEL;

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:502:5: ( ( ' ' | '\\r' | '\\t' | '\ ' | '\\n' ) )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:502:8: ( ' ' | '\\r' | '\\t' | '\ ' | '\\n' )

-			{

-				if (((input.LA(1) >= '\t') && (input.LA(1) <= '\n')) || ((input.LA(1) >= '\f') && (input.LA(1) <= '\r')) || (input.LA(1) == ' ')) {

-					input.consume();

-

-				} else {

-					MismatchedSetException mse = new MismatchedSetException(null, input);

-					recover(mse);

-					throw mse;

-				}

-

-				_channel = HIDDEN;

-

-			}

-

-			state.type = _type;

-			state.channel = _channel;

-		} finally {

-		}

-	}

-

-	// $ANTLR end "WS"

-

-	// $ANTLR start "COMMENT"

-	public final void mCOMMENT() throws RecognitionException {

-		try {

-			int _type = COMMENT;

-			int _channel = DEFAULT_TOKEN_CHANNEL;

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:506:5: ( '/*' ( options {greedy=false; } : . )* '*/' )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:506:9: '/*' ( options {greedy=false; } : . )* '*/'

-			{

-				match("/*");

-

-				// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:506:14: ( options {greedy=false; } : . )*

-				loop9: do {

-					int alt9 = 2;

-					int LA9_0 = input.LA(1);

-

-					if ((LA9_0 == '*')) {

-						int LA9_1 = input.LA(2);

-

-						if ((LA9_1 == '/')) {

-							alt9 = 2;

-						} else if ((((LA9_1 >= '\u0000') && (LA9_1 <= '.')) || ((LA9_1 >= '0') && (LA9_1 <= '\uFFFF')))) {

-							alt9 = 1;

-						}

-

-					} else if ((((LA9_0 >= '\u0000') && (LA9_0 <= ')')) || ((LA9_0 >= '+') && (LA9_0 <= '\uFFFF')))) {

-						alt9 = 1;

-					}

-

-					switch (alt9) {

-					case 1:

-					// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:506:42: .

-					{

-						matchAny();

-

-					}

-						break;

-

-					default:

-						break loop9;

-					}

-				} while (true);

-

-				match("*/");

-

-				_channel = HIDDEN;

-

-			}

-

-			state.type = _type;

-			state.channel = _channel;

-		} finally {

-		}

-	}

-

-	// $ANTLR end "COMMENT"

-

-	// $ANTLR start "LINE_COMMENT"

-	public final void mLINE_COMMENT() throws RecognitionException {

-		try {

-			int _type = LINE_COMMENT;

-			int _channel = DEFAULT_TOKEN_CHANNEL;

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:510:5: ( '//' (~ ( '\\n' | '\\r' ) )* ( ( '\\r' )? '\\n' | EOF ) )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:510:7: '//' (~ ( '\\n' | '\\r' ) )* ( ( '\\r' )? '\\n' | EOF )

-			{

-				match("//");

-

-				// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:510:12: (~ ( '\\n' | '\\r' ) )*

-				loop10: do {

-					int alt10 = 2;

-					int LA10_0 = input.LA(1);

-

-					if ((((LA10_0 >= '\u0000') && (LA10_0 <= '\t')) || ((LA10_0 >= '\u000B') && (LA10_0 <= '\f')) || ((LA10_0 >= '\u000E') && (LA10_0 <= '\uFFFF')))) {

-						alt10 = 1;

-					}

-

-					switch (alt10) {

-					case 1:

-					// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:510:12: ~ ( '\\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 loop10;

-					}

-				} while (true);

-

-				// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:510:26: ( ( '\\r' )? '\\n' | EOF )

-				int alt12 = 2;

-				int LA12_0 = input.LA(1);

-

-				if (((LA12_0 == '\n') || (LA12_0 == '\r'))) {

-					alt12 = 1;

-				} else {

-					alt12 = 2;

-				}

-				switch (alt12) {

-				case 1:

-				// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:510:27: ( '\\r' )? '\\n'

-				{

-					// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:510:27: ( '\\r' )?

-					int alt11 = 2;

-					int LA11_0 = input.LA(1);

-

-					if ((LA11_0 == '\r')) {

-						alt11 = 1;

-					}

-					switch (alt11) {

-					case 1:

-					// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:510:27: '\\r'

-					{

-						match('\r');

-

-					}

-						break;

-

-					}

-

-					match('\n');

-

-				}

-					break;

-				case 2:

-				// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:510:38: EOF

-				{

-					match(EOF);

-

-				}

-					break;

-

-				}

-

-				_channel = HIDDEN;

-

-			}

-

-			state.type = _type;

-			state.channel = _channel;

-		} finally {

-		}

-	}

-

-	// $ANTLR end "LINE_COMMENT"

-

-	// $ANTLR start "XPAND_TAG_OPEN"

-	public final void mXPAND_TAG_OPEN() throws RecognitionException {

-		try {

-			int _type = XPAND_TAG_OPEN;

-			int _channel = DEFAULT_TOKEN_CHANNEL;

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:515:2: ( '\\u00AB' )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:515:4: '\\u00AB'

-			{

-				match('\u00AB');

-

-			}

-

-			state.type = _type;

-			state.channel = _channel;

-		} finally {

-		}

-	}

-

-	// $ANTLR end "XPAND_TAG_OPEN"

-

-	// $ANTLR start "XPAND_TAG_CLOSE"

-	public final void mXPAND_TAG_CLOSE() throws RecognitionException {

-		try {

-			int _type = XPAND_TAG_CLOSE;

-			int _channel = DEFAULT_TOKEN_CHANNEL;

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:517:2: ( '\\u00BB' )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:517:4: '\\u00BB'

-			{

-				match('\u00BB');

-

-			}

-

-			state.type = _type;

-			state.channel = _channel;

-		} finally {

-		}

-	}

-

-	// $ANTLR end "XPAND_TAG_CLOSE"

-

-	public void mTokens() throws RecognitionException {

-		// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:1:8: ( 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 | IntLiteral | StringLiteral | Identifier | WS | COMMENT | LINE_COMMENT | XPAND_TAG_OPEN |

-		// XPAND_TAG_CLOSE )

-		int alt13 = 73;

-		alt13 = dfa13.predict(input);

-		switch (alt13) {

-		case 1:

-		// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:1:10: T__18

-		{

-			mT__18();

-

-		}

-			break;

-		case 2:

-		// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:1:16: T__19

-		{

-			mT__19();

-

-		}

-			break;

-		case 3:

-		// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:1:22: T__20

-		{

-			mT__20();

-

-		}

-			break;

-		case 4:

-		// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:1:28: T__21

-		{

-			mT__21();

-

-		}

-			break;

-		case 5:

-		// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:1:34: T__22

-		{

-			mT__22();

-

-		}

-			break;

-		case 6:

-		// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:1:40: T__23

-		{

-			mT__23();

-

-		}

-			break;

-		case 7:

-		// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:1:46: T__24

-		{

-			mT__24();

-

-		}

-			break;

-		case 8:

-		// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:1:52: T__25

-		{

-			mT__25();

-

-		}

-			break;

-		case 9:

-		// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:1:58: T__26

-		{

-			mT__26();

-

-		}

-			break;

-		case 10:

-		// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:1:64: T__27

-		{

-			mT__27();

-

-		}

-			break;

-		case 11:

-		// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:1:70: T__28

-		{

-			mT__28();

-

-		}

-			break;

-		case 12:

-		// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:1:76: T__29

-		{

-			mT__29();

-

-		}

-			break;

-		case 13:

-		// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:1:82: T__30

-		{

-			mT__30();

-

-		}

-			break;

-		case 14:

-		// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:1:88: T__31

-		{

-			mT__31();

-

-		}

-			break;

-		case 15:

-		// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:1:94: T__32

-		{

-			mT__32();

-

-		}

-			break;

-		case 16:

-		// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:1:100: T__33

-		{

-			mT__33();

-

-		}

-			break;

-		case 17:

-		// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:1:106: T__34

-		{

-			mT__34();

-

-		}

-			break;

-		case 18:

-		// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:1:112: T__35

-		{

-			mT__35();

-

-		}

-			break;

-		case 19:

-		// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:1:118: T__36

-		{

-			mT__36();

-

-		}

-			break;

-		case 20:

-		// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:1:124: T__37

-		{

-			mT__37();

-

-		}

-			break;

-		case 21:

-		// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:1:130: T__38

-		{

-			mT__38();

-

-		}

-			break;

-		case 22:

-		// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:1:136: T__39

-		{

-			mT__39();

-

-		}

-			break;

-		case 23:

-		// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:1:142: T__40

-		{

-			mT__40();

-

-		}

-			break;

-		case 24:

-		// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:1:148: T__41

-		{

-			mT__41();

-

-		}

-			break;

-		case 25:

-		// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:1:154: T__42

-		{

-			mT__42();

-

-		}

-			break;

-		case 26:

-		// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:1:160: T__43

-		{

-			mT__43();

-

-		}

-			break;

-		case 27:

-		// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:1:166: T__44

-		{

-			mT__44();

-

-		}

-			break;

-		case 28:

-		// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:1:172: T__45

-		{

-			mT__45();

-

-		}

-			break;

-		case 29:

-		// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:1:178: T__46

-		{

-			mT__46();

-

-		}

-			break;

-		case 30:

-		// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:1:184: T__47

-		{

-			mT__47();

-

-		}

-			break;

-		case 31:

-		// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:1:190: T__48

-		{

-			mT__48();

-

-		}

-			break;

-		case 32:

-		// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:1:196: T__49

-		{

-			mT__49();

-

-		}

-			break;

-		case 33:

-		// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:1:202: T__50

-		{

-			mT__50();

-

-		}

-			break;

-		case 34:

-		// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:1:208: T__51

-		{

-			mT__51();

-

-		}

-			break;

-		case 35:

-		// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:1:214: T__52

-		{

-			mT__52();

-

-		}

-			break;

-		case 36:

-		// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:1:220: T__53

-		{

-			mT__53();

-

-		}

-			break;

-		case 37:

-		// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:1:226: T__54

-		{

-			mT__54();

-

-		}

-			break;

-		case 38:

-		// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:1:232: T__55

-		{

-			mT__55();

-

-		}

-			break;

-		case 39:

-		// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:1:238: T__56

-		{

-			mT__56();

-

-		}

-			break;

-		case 40:

-		// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:1:244: T__57

-		{

-			mT__57();

-

-		}

-			break;

-		case 41:

-		// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:1:250: T__58

-		{

-			mT__58();

-

-		}

-			break;

-		case 42:

-		// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:1:256: T__59

-		{

-			mT__59();

-

-		}

-			break;

-		case 43:

-		// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:1:262: T__60

-		{

-			mT__60();

-

-		}

-			break;

-		case 44:

-		// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:1:268: T__61

-		{

-			mT__61();

-

-		}

-			break;

-		case 45:

-		// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:1:274: T__62

-		{

-			mT__62();

-

-		}

-			break;

-		case 46:

-		// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:1:280: T__63

-		{

-			mT__63();

-

-		}

-			break;

-		case 47:

-		// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:1:286: T__64

-		{

-			mT__64();

-

-		}

-			break;

-		case 48:

-		// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:1:292: T__65

-		{

-			mT__65();

-

-		}

-			break;

-		case 49:

-		// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:1:298: T__66

-		{

-			mT__66();

-

-		}

-			break;

-		case 50:

-		// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:1:304: T__67

-		{

-			mT__67();

-

-		}

-			break;

-		case 51:

-		// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:1:310: T__68

-		{

-			mT__68();

-

-		}

-			break;

-		case 52:

-		// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:1:316: T__69

-		{

-			mT__69();

-

-		}

-			break;

-		case 53:

-		// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:1:322: T__70

-		{

-			mT__70();

-

-		}

-			break;

-		case 54:

-		// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:1:328: T__71

-		{

-			mT__71();

-

-		}

-			break;

-		case 55:

-		// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:1:334: T__72

-		{

-			mT__72();

-

-		}

-			break;

-		case 56:

-		// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:1:340: T__73

-		{

-			mT__73();

-

-		}

-			break;

-		case 57:

-		// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:1:346: T__74

-		{

-			mT__74();

-

-		}

-			break;

-		case 58:

-		// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:1:352: T__75

-		{

-			mT__75();

-

-		}

-			break;

-		case 59:

-		// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:1:358: T__76

-		{

-			mT__76();

-

-		}

-			break;

-		case 60:

-		// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:1:364: T__77

-		{

-			mT__77();

-

-		}

-			break;

-		case 61:

-		// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:1:370: T__78

-		{

-			mT__78();

-

-		}

-			break;

-		case 62:

-		// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:1:376: T__79

-		{

-			mT__79();

-

-		}

-			break;

-		case 63:

-		// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:1:382: T__80

-		{

-			mT__80();

-

-		}

-			break;

-		case 64:

-		// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:1:388: T__81

-		{

-			mT__81();

-

-		}

-			break;

-		case 65:

-		// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:1:394: T__82

-		{

-			mT__82();

-

-		}

-			break;

-		case 66:

-		// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:1:400: IntLiteral

-		{

-			mIntLiteral();

-

-		}

-			break;

-		case 67:

-		// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:1:411: StringLiteral

-		{

-			mStringLiteral();

-

-		}

-			break;

-		case 68:

-		// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:1:425: Identifier

-		{

-			mIdentifier();

-

-		}

-			break;

-		case 69:

-		// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:1:436: WS

-		{

-			mWS();

-

-		}

-			break;

-		case 70:

-		// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:1:439: COMMENT

-		{

-			mCOMMENT();

-

-		}

-			break;

-		case 71:

-		// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:1:447: LINE_COMMENT

-		{

-			mLINE_COMMENT();

-

-		}

-			break;

-		case 72:

-		// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:1:460: XPAND_TAG_OPEN

-		{

-			mXPAND_TAG_OPEN();

-

-		}

-			break;

-		case 73:

-		// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:1:475: XPAND_TAG_CLOSE

-		{

-			mXPAND_TAG_CLOSE();

-

-		}

-			break;

-

-		}

-

-	}

-

-	protected DFA13 dfa13 = new DFA13(this);

-	static final String DFA13_eotS = "\1\uffff\1\54\1\uffff\3\54\1\uffff\2\54\1\73\1\54\4\uffff\2\54"

-			+ "\1\uffff\4\54\1\104\1\106\1\uffff\2\54\1\uffff\1\54\1\uffff\1\117"

-			+ "\1\uffff\1\121\1\123\1\125\1\uffff\1\130\3\54\10\uffff\1\54\1\140"

-			+ "\10\54\2\uffff\7\54\4\uffff\7\54\13\uffff\7\54\1\uffff\21\54\1\u0094"

-			+ "\1\u0095\10\54\1\u009e\10\54\1\u00a7\5\54\1\u00ad\5\54\1\u00b3\1" + "\54\1\u00b5\2\uffff\1\u00b6\1\u00b7\6\54\1\uffff\1\u00be\7\54\1"

-			+ "\uffff\5\54\1\uffff\1\54\1\u00cc\3\54\1\uffff\1\54\3\uffff\6\54" + "\1\uffff\1\54\1\u00d8\1\54\1\u00da\2\54\1\u00dd\1\54\1\u00df\2\54"

-			+ "\1\u00e2\1\u00e3\1\uffff\1\54\1\u00e5\3\54\1\u00e9\1\u00eb\1\u00ec"

-			+ "\3\54\1\uffff\1\u00f0\1\uffff\1\u00f1\1\54\1\uffff\1\54\1\uffff" + "\1\u00f4\1\u00f5\2\uffff\1\u00f6\1\uffff\1\u00f7\2\54\1\uffff\1"

-			+ "\54\2\uffff\1\u00fb\2\54\2\uffff\1\54\1\u00ff\4\uffff\3\54\1\uffff"

-			+ "\2\54\1\u0105\1\uffff\3\54\1\u0109\1\u010a\1\uffff\1\u010b\1\u010c" + "\1\54\4\uffff\1\u010e\1\uffff";

-	static final String DFA13_eofS = "\u010f\uffff";

-	static final String DFA13_minS = "\1\11\1\146\1\uffff\1\154\1\145\1\141\1\uffff\1\122\1\101\1\72"

-			+ "\1\162\4\uffff\1\162\1\101\1\uffff\1\157\1\151\2\145\1\75\1\76\1"

-			+ "\uffff\1\150\1\145\1\uffff\1\145\1\uffff\1\174\1\uffff\3\75\1\uffff"

-			+ "\1\52\1\114\1\145\1\141\10\uffff\1\160\1\44\1\151\1\163\1\145\1"

-			+ "\154\1\143\1\145\2\122\2\uffff\1\157\1\151\1\126\1\154\1\163\2\164"

-			+ "\4\uffff\1\145\1\165\1\160\1\151\1\154\1\162\1\146\13\uffff\1\117"

-			+ "\1\167\1\154\1\164\1\154\1\162\1\154\1\uffff\1\145\1\163\1\145\1" + "\170\1\145\1\164\1\154\1\150\1\145\1\141\1\117\1\116\1\165\1\166"

-			+ "\1\101\1\154\1\164\2\44\1\156\2\145\1\164\1\145\1\164\1\141\1\102"

-			+ "\1\44\1\154\1\105\1\163\1\101\1\162\1\151\1\156\1\164\1\44\1\160" + "\1\143\3\145\1\44\1\164\1\122\1\111\1\156\1\141\1\44\1\145\1\44"

-			+ "\2\uffff\2\44\1\123\2\143\1\102\1\165\1\101\1\uffff\1\44\1\170\1"

-			+ "\145\1\154\1\164\1\145\2\163\1\uffff\1\157\1\164\1\170\1\143\1\144"

-			+ "\1\uffff\1\145\1\44\1\116\1\144\1\164\1\uffff\1\143\3\uffff\1\145"

-			+ "\1\150\1\164\1\171\1\154\1\114\1\uffff\1\151\1\44\1\154\1\44\1\163"

-			+ "\1\151\1\44\1\162\1\44\2\164\2\44\1\uffff\1\107\1\44\1\145\1\164" + "\1\154\3\44\1\164\1\126\1\163\1\uffff\1\44\1\uffff\1\44\1\157\1"

-			+ "\uffff\1\164\1\uffff\2\44\2\uffff\1\44\1\uffff\1\44\1\151\1\145"

-			+ "\1\uffff\1\151\2\uffff\1\44\1\101\1\164\2\uffff\1\156\1\44\4\uffff"

-			+ "\1\157\1\143\1\162\1\uffff\1\122\1\163\1\44\1\uffff\1\156\1\164" + "\1\163\2\44\1\uffff\2\44\1\164\4\uffff\1\44\1\uffff";

-	static final String DFA13_maxS = "\1\ufaff\1\155\1\uffff\1\170\1\145\1\162\1\uffff\1\122\1\101\1"

-			+ "\72\1\162\4\uffff\1\162\1\101\1\uffff\1\157\1\151\2\145\1\75\1\76" + "\1\uffff\1\171\1\167\1\uffff\1\145\1\uffff\1\174\1\uffff\3\75\1"

-			+ "\uffff\1\57\1\114\1\165\1\157\10\uffff\1\160\1\ufaff\1\164\1\163" + "\1\152\1\156\1\163\1\145\2\122\2\uffff\1\157\1\151\1\126\1\154\1"

-			+ "\163\2\164\4\uffff\1\145\1\165\1\160\1\151\1\154\1\162\1\146\13" + "\uffff\1\117\1\167\1\154\1\164\1\154\1\162\1\157\1\uffff\1\145\1"

-			+ "\163\1\145\1\170\1\145\1\164\1\154\1\150\1\145\1\141\1\117\1\116" + "\1\165\1\166\1\101\1\154\1\164\2\ufaff\1\156\2\145\1\164\1\145\1"

-			+ "\164\1\141\1\102\1\ufaff\1\154\1\105\1\163\1\101\1\162\1\151\1\156"

-			+ "\1\164\1\ufaff\1\160\1\143\3\145\1\ufaff\1\164\1\122\1\111\1\156" + "\1\141\1\ufaff\1\145\1\ufaff\2\uffff\2\ufaff\1\123\2\143\1\102\1"

-			+ "\165\1\101\1\uffff\1\ufaff\1\170\1\145\1\154\1\164\1\145\2\163\1" + "\uffff\1\157\1\164\1\170\1\143\1\144\1\uffff\1\145\1\ufaff\1\116"

-			+ "\1\144\1\164\1\uffff\1\143\3\uffff\1\145\1\150\1\164\1\171\1\154" + "\1\114\1\uffff\1\151\1\ufaff\1\154\1\ufaff\1\163\1\151\1\ufaff\1"

-			+ "\162\1\ufaff\2\164\2\ufaff\1\uffff\1\107\1\ufaff\1\145\1\164\1\154"

-			+ "\3\ufaff\1\164\1\126\1\163\1\uffff\1\ufaff\1\uffff\1\ufaff\1\157" + "\1\uffff\1\164\1\uffff\2\ufaff\2\uffff\1\ufaff\1\uffff\1\ufaff\1"

-			+ "\151\1\145\1\uffff\1\151\2\uffff\1\ufaff\1\101\1\164\2\uffff\1\156"

-			+ "\1\ufaff\4\uffff\1\157\1\143\1\162\1\uffff\1\122\1\163\1\ufaff\1" + "\uffff\1\156\1\164\1\163\2\ufaff\1\uffff\2\ufaff\1\164\4\uffff\1"

-			+ "\ufaff\1\uffff";

-	static final String DFA13_acceptS = "\2\uffff\1\2\3\uffff\1\6\4\uffff\1\14\1\15\1\16\1\17\2\uffff\1"

-			+ "\24\6\uffff\1\34\2\uffff\1\40\1\uffff\1\43\1\uffff\1\45\3\uffff" + "\1\55\4\uffff\1\100\1\101\1\102\1\103\1\104\1\105\1\110\1\111\12"

-			+ "\uffff\1\20\1\12\7\uffff\1\47\1\32\1\33\1\56\7\uffff\1\44\1\77\1"

-			+ "\50\1\60\1\51\1\53\1\52\1\54\1\106\1\107\1\57\7\uffff\1\7\63\uffff"

-			+ "\1\30\1\31\10\uffff\1\62\10\uffff\1\36\5\uffff\1\41\5\uffff\1\23" + "\1\uffff\1\27\1\35\1\64\6\uffff\1\65\15\uffff\1\10\13\uffff\1\63"

-			+ "\1\uffff\1\1\2\uffff\1\73\1\uffff\1\72\2\uffff\1\22\1\25\1\uffff" + "\1\13\3\uffff\1\37\1\uffff\1\70\1\75\3\uffff\1\76\1\46\2\uffff\1"

-			+ "\5\1\67\1\11\1\21\3\uffff\1\42\3\uffff\1\4\5\uffff\1\3\3\uffff\1" + "\61\1\74\1\26\1\66\1\uffff\1\71";

-	static final String DFA13_specialS = "\u010f\uffff}>";

-	static final String[] DFA13_transitionS = {

-			"\2\55\1\uffff\2\55\22\uffff\1\55\1\40\1\53\1\6\1\54\1\uffff" + "\1\37\1\53\1\13\1\16\1\15\1\43\1\14\1\27\1\21\1\44\12\52\1\11"

-					+ "\1\2\1\42\1\26\1\41\1\30\1\uffff\2\54\1\22\1\54\1\7\1\54\1\45"

-					+ "\2\54\1\20\1\54\1\23\6\54\1\24\3\54\1\10\3\54\1\50\1\uffff\1" + "\51\2\54\1\uffff\1\12\1\54\1\5\1\34\1\3\1\47\2\54\1\1\2\54\1"

-					+ "\25\1\54\1\46\1\54\1\17\1\54\1\4\1\32\1\31\6\54\1\33\1\36\1" + "\35\55\uffff\1\56\17\uffff\1\57\4\uffff\27\54\1\uffff\37\54"

-					+ "\1\uffff\u1f08\54\u1040\uffff\u0150\54\u0170\uffff\u0080\54" + "\u0080\uffff\u092e\54\u10d2\uffff\u5200\54\u5900\uffff\u0200"

-					+ "\54",

-			"\1\61\6\uffff\1\60",

-			"",

-			"\1\63\13\uffff\1\62",

-			"\1\64",

-			"\1\66\15\uffff\1\65\2\uffff\1\67",

-			"",

-			"\1\70",

-			"\1\71",

-			"\1\72",

-			"\1\74",

-			"",

-			"",

-			"",

-			"",

-			"\1\75",

-			"\1\76",

-			"",

-			"\1\77",

-			"\1\100",

-			"\1\101",

-			"\1\102",

-			"\1\103",

-			"\1\105",

-			"",

-			"\1\107\11\uffff\1\110\6\uffff\1\111",

-			"\1\113\11\uffff\1\114\7\uffff\1\112",

-			"",

-			"\1\115",

-			"",

-			"\1\116",

-			"",

-			"\1\120",

-			"\1\122",

-			"\1\124",

-			"",

-			"\1\126\4\uffff\1\127",

-			"\1\131",

-			"\1\132\11\uffff\1\134\5\uffff\1\133",

-			"\1\135\15\uffff\1\136",

-			"",

-			"",

-			"",

-			"",

-			"",

-			"",

-			"",

-			"",

-			"\1\137",

-			"\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"

-					+ "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",

-			"\1\142\12\uffff\1\141",

-			"\1\143",

-			"\1\144\4\uffff\1\145",

-			"\1\147\1\uffff\1\146",

-			"\1\150\17\uffff\1\151",

-			"\1\152",

-			"\1\153",

-			"\1\154",

-			"",

-			"",

-			"\1\155",

-			"\1\156",

-			"\1\157",

-			"\1\160",

-			"\1\161",

-			"\1\162",

-			"\1\163",

-			"",

-			"",

-			"",

-			"",

-			"\1\164",

-			"\1\165",

-			"\1\166",

-			"\1\167",

-			"\1\170",

-			"\1\171",

-			"\1\172",

-			"",

-			"",

-			"",

-			"",

-			"",

-			"",

-			"",

-			"",

-			"",

-			"",

-			"",

-			"\1\173",

-			"\1\174",

-			"\1\175",

-			"\1\176",

-			"\1\177",

-			"\1\u0080",

-			"\1\u0082\2\uffff\1\u0081",

-			"",

-			"\1\u0083",

-			"\1\u0084",

-			"\1\u0085",

-			"\1\u0086",

-			"\1\u0087",

-			"\1\u0088",

-			"\1\u0089",

-			"\1\u008a",

-			"\1\u008b",

-			"\1\u008c",

-			"\1\u008d",

-			"\1\u008e",

-			"\1\u008f",

-			"\1\u0090",

-			"\1\u0091",

-			"\1\u0092",

-			"\1\u0093",

-			"\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"

-					+ "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",

-			"\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"

-					+ "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",

-			"\1\u0096",

-			"\1\u0097",

-			"\1\u0098",

-			"\1\u0099",

-			"\1\u009a",

-			"\1\u009b",

-			"\1\u009c",

-			"\1\u009d",

-			"\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"

-					+ "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",

-			"\1\u009f",

-			"\1\u00a0",

-			"\1\u00a1",

-			"\1\u00a2",

-			"\1\u00a3",

-			"\1\u00a4",

-			"\1\u00a5",

-			"\1\u00a6",

-			"\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"

-					+ "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",

-			"\1\u00a8",

-			"\1\u00a9",

-			"\1\u00aa",

-			"\1\u00ab",

-			"\1\u00ac",

-			"\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"

-					+ "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",

-			"\1\u00ae",

-			"\1\u00af",

-			"\1\u00b0",

-			"\1\u00b1",

-			"\1\u00b2",

-			"\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"

-					+ "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",

-			"\1\u00b4",

-			"\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"

-					+ "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",

-			"",

-			"",

-			"\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"

-					+ "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",

-			"\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"

-					+ "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",

-			"\1\u00b8",

-			"\1\u00b9",

-			"\1\u00ba",

-			"\1\u00bb",

-			"\1\u00bc",

-			"\1\u00bd",

-			"",

-			"\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"

-					+ "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",

-			"\1\u00bf",

-			"\1\u00c0",

-			"\1\u00c1",

-			"\1\u00c2",

-			"\1\u00c3",

-			"\1\u00c4",

-			"\1\u00c5",

-			"",

-			"\1\u00c6",

-			"\1\u00c7",

-			"\1\u00c8",

-			"\1\u00c9",

-			"\1\u00ca",

-			"",

-			"\1\u00cb",

-			"\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"

-					+ "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",

-			"\1\u00cd",

-			"\1\u00ce",

-			"\1\u00cf",

-			"",

-			"\1\u00d0",

-			"",

-			"",

-			"",

-			"\1\u00d1",

-			"\1\u00d2",

-			"\1\u00d3",

-			"\1\u00d4",

-			"\1\u00d5",

-			"\1\u00d6",

-			"",

-			"\1\u00d7",

-			"\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"

-					+ "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",

-			"\1\u00d9",

-			"\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"

-					+ "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",

-			"\1\u00db",

-			"\1\u00dc",

-			"\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"

-					+ "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",

-			"\1\u00de",

-			"\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"

-					+ "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",

-			"\1\u00e0",

-			"\1\u00e1",

-			"\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"

-					+ "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",

-			"\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"

-					+ "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",

-			"",

-			"\1\u00e4",

-			"\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"

-					+ "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",

-			"\1\u00e6",

-			"\1\u00e7",

-			"\1\u00e8",

-			"\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"

-					+ "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",

-			"\1\54\13\uffff\12\54\7\uffff\5\54\1\u00ea\24\54\4\uffff\1" + "\54\1\uffff\32\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08"

-					+ "\54\u1040\uffff\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e" + "\54\u10d2\uffff\u5200\54\u5900\uffff\u0200\54",

-			"\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"

-					+ "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",

-			"\1\u00ed",

-			"\1\u00ee",

-			"\1\u00ef",

-			"",

-			"\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"

-					+ "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",

-			"",

-			"\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"

-					+ "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",

-			"\1\u00f2",

-			"",

-			"\1\u00f3",

-			"",

-			"\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"

-					+ "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",

-			"\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"

-					+ "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",

-			"",

-			"",

-			"\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"

-					+ "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",

-			"",

-			"\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"

-					+ "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",

-			"\1\u00f8",

-			"\1\u00f9",

-			"",

-			"\1\u00fa",

-			"",

-			"",

-			"\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"

-					+ "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",

-			"\1\u00fc",

-			"\1\u00fd",

-			"",

-			"",

-			"\1\u00fe",

-			"\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"

-					+ "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",

-			"",

-			"",

-			"",

-			"",

-			"\1\u0100",

-			"\1\u0101",

-			"\1\u0102",

-			"",

-			"\1\u0103",

-			"\1\u0104",

-			"\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"

-					+ "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",

-			"",

-			"\1\u0106",

-			"\1\u0107",

-			"\1\u0108",

-			"\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"

-					+ "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",

-			"\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"

-					+ "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",

-			"",

-			"\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"

-					+ "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",

-			"\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"

-					+ "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",

-			"\1\u010d",

-			"",

-			"",

-			"",

-			"",

-			"\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"

-					+ "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54", "" };

-

-	static final short[] DFA13_eot = DFA.unpackEncodedString(DFA13_eotS);

-	static final short[] DFA13_eof = DFA.unpackEncodedString(DFA13_eofS);

-	static final char[] DFA13_min = DFA.unpackEncodedStringToUnsignedChars(DFA13_minS);

-	static final char[] DFA13_max = DFA.unpackEncodedStringToUnsignedChars(DFA13_maxS);

-	static final short[] DFA13_accept = DFA.unpackEncodedString(DFA13_acceptS);

-	static final short[] DFA13_special = DFA.unpackEncodedString(DFA13_specialS);

-	static final short[][] DFA13_transition;

-

-	static {

-		int numStates = DFA13_transitionS.length;

-		DFA13_transition = new short[numStates][];

-		for (int i = 0; i < numStates; i++) {

-			DFA13_transition[i] = DFA.unpackEncodedString(DFA13_transitionS[i]);

-		}

-	}

-

-	class DFA13 extends DFA {

-

-		public DFA13(final BaseRecognizer recognizer) {

-			this.recognizer = recognizer;

-			decisionNumber = 13;

-			eot = DFA13_eot;

-			eof = DFA13_eof;

-			min = DFA13_min;

-			max = DFA13_max;

-			accept = DFA13_accept;

-			special = DFA13_special;

-			transition = DFA13_transition;

-		}

-

-		public String getDescription() {

-			return "1:1: Tokens : ( 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 | IntLiteral | StringLiteral | Identifier | WS | COMMENT | LINE_COMMENT | XPAND_TAG_OPEN | XPAND_TAG_CLOSE );";

-		}

-	}

-

+// $ANTLR 3.2 Sep 23, 2009 12:02:23 src/org/eclipse/internal/xtend/xtend/parser/Xtend.g 2015-11-18 22:41:58
+
+package org.eclipse.internal.xtend.xtend.parser;
+
+import org.antlr.runtime.BaseRecognizer;
+import org.antlr.runtime.CharStream;
+import org.antlr.runtime.DFA;
+import org.antlr.runtime.EarlyExitException;
+import org.antlr.runtime.Lexer;
+import org.antlr.runtime.MismatchedSetException;
+import org.antlr.runtime.NoViableAltException;
+import org.antlr.runtime.RecognitionException;
+import org.antlr.runtime.RecognizerSharedState;
+
+@SuppressWarnings("all")
+public class XtendLexer extends Lexer {
+	public static final int T__50 = 50;
+	public static final int T__19 = 19;
+	public static final int Identifier = 6;
+	public static final int T__59 = 59;
+	public static final int T__18 = 18;
+	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 IntLiteral = 5;
+	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 HexDigit = 10;
+	public static final int Letter = 11;
+	public static final int LINE_COMMENT = 15;
+	public static final int T__26 = 26;
+	public static final int StringLiteral = 4;
+	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__66 = 66;
+	public static final int T__23 = 23;
+	public static final int T__67 = 67;
+	public static final int T__24 = 24;
+	public static final int T__68 = 68;
+	public static final int T__25 = 25;
+	public static final int T__69 = 69;
+	public static final int T__62 = 62;
+	public static final int OctalEscape = 9;
+	public static final int JavaIDDigit = 12;
+	public static final int T__63 = 63;
+	public static final int T__20 = 20;
+	public static final int T__64 = 64;
+	public static final int T__21 = 21;
+	public static final int T__65 = 65;
+	public static final int T__70 = 70;
+	public static final int T__71 = 71;
+	public static final int T__72 = 72;
+	public static final int COMMENT = 14;
+	public static final int XPAND_TAG_OPEN = 16;
+	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__77 = 77;
+	public static final int T__34 = 34;
+	public static final int T__78 = 78;
+	public static final int T__35 = 35;
+	public static final int T__79 = 79;
+	public static final int T__36 = 36;
+	public static final int T__73 = 73;
+	public static final int UnicodeEscape = 8;
+	public static final int WS = 13;
+	public static final int EOF = -1;
+	public static final int T__30 = 30;
+	public static final int T__74 = 74;
+	public static final int T__31 = 31;
+	public static final int T__75 = 75;
+	public static final int T__32 = 32;
+	public static final int T__76 = 76;
+	public static final int XPAND_TAG_CLOSE = 17;
+	public static final int T__80 = 80;
+	public static final int T__81 = 81;
+	public static final int T__82 = 82;
+	public static final int EscapeSequence = 7;
+	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;
+
+	// delegates
+	// delegators
+
+	public XtendLexer() {
+		;
+	}
+
+	public XtendLexer(CharStream input) {
+		this(input, new RecognizerSharedState());
+	}
+
+	public XtendLexer(CharStream input, RecognizerSharedState state) {
+		super(input, state);
+
+	}
+
+	public String getGrammarFileName() {
+		return "src/org/eclipse/internal/xtend/xtend/parser/Xtend.g";
+	}
+
+	// $ANTLR start "T__18"
+	public final void mT__18() throws RecognitionException {
+		try {
+			int _type = T__18;
+			int _channel = DEFAULT_TOKEN_CHANNEL;
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:14:7: ( 'import' )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:14:9: 'import'
+			{
+				match("import");
+
+			}
+
+			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;
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:15:7: ( ';' )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:15:9: ';'
+			{
+				match(';');
+
+			}
+
+			state.type = _type;
+			state.channel = _channel;
+		} finally {
+		}
+	}
+
+	// $ANTLR end "T__19"
+
+	// $ANTLR start "T__20"
+	public final void mT__20() throws RecognitionException {
+		try {
+			int _type = T__20;
+			int _channel = DEFAULT_TOKEN_CHANNEL;
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:16:7: ( 'extension' )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:16:9: 'extension'
+			{
+				match("extension");
+
+			}
+
+			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;
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:17:7: ( 'reexport' )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:17:9: 'reexport'
+			{
+				match("reexport");
+
+			}
+
+			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;
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:18:7: ( 'context' )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:18:9: 'context'
+			{
+				match("context");
+
+			}
+
+			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;
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:19:7: ( '#' )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:19:9: '#'
+			{
+				match('#');
+
+			}
+
+			state.type = _type;
+			state.channel = _channel;
+		} finally {
+		}
+	}
+
+	// $ANTLR end "T__23"
+
+	// $ANTLR start "T__24"
+	public final void mT__24() throws RecognitionException {
+		try {
+			int _type = T__24;
+			int _channel = DEFAULT_TOKEN_CHANNEL;
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:20:7: ( 'if' )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:20:9: 'if'
+			{
+				match("if");
+
+			}
+
+			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;
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:21:7: ( 'ERROR' )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:21:9: 'ERROR'
+			{
+				match("ERROR");
+
+			}
+
+			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;
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:22:7: ( 'WARNING' )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:22:9: 'WARNING'
+			{
+				match("WARNING");
+
+			}
+
+			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;
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:23:7: ( ':' )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:23:9: ':'
+			{
+				match(':');
+
+			}
+
+			state.type = _type;
+			state.channel = _channel;
+		} finally {
+		}
+	}
+
+	// $ANTLR end "T__27"
+
+	// $ANTLR start "T__28"
+	public final void mT__28() throws RecognitionException {
+		try {
+			int _type = T__28;
+			int _channel = DEFAULT_TOKEN_CHANNEL;
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:24:7: ( 'around' )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:24:9: 'around'
+			{
+				match("around");
+
+			}
+
+			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;
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:25:7: ( '(' )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:25:9: '('
+			{
+				match('(');
+
+			}
+
+			state.type = _type;
+			state.channel = _channel;
+		} finally {
+		}
+	}
+
+	// $ANTLR end "T__29"
+
+	// $ANTLR start "T__30"
+	public final void mT__30() throws RecognitionException {
+		try {
+			int _type = T__30;
+			int _channel = DEFAULT_TOKEN_CHANNEL;
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:26:7: ( ',' )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:26:9: ','
+			{
+				match(',');
+
+			}
+
+			state.type = _type;
+			state.channel = _channel;
+		} finally {
+		}
+	}
+
+	// $ANTLR end "T__30"
+
+	// $ANTLR start "T__31"
+	public final void mT__31() throws RecognitionException {
+		try {
+			int _type = T__31;
+			int _channel = DEFAULT_TOKEN_CHANNEL;
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:27:7: ( '*' )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:27:9: '*'
+			{
+				match('*');
+
+			}
+
+			state.type = _type;
+			state.channel = _channel;
+		} finally {
+		}
+	}
+
+	// $ANTLR end "T__31"
+
+	// $ANTLR start "T__32"
+	public final void mT__32() throws RecognitionException {
+		try {
+			int _type = T__32;
+			int _channel = DEFAULT_TOKEN_CHANNEL;
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:28:7: ( ')' )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:28:9: ')'
+			{
+				match(')');
+
+			}
+
+			state.type = _type;
+			state.channel = _channel;
+		} finally {
+		}
+	}
+
+	// $ANTLR end "T__32"
+
+	// $ANTLR start "T__33"
+	public final void mT__33() throws RecognitionException {
+		try {
+			int _type = T__33;
+			int _channel = DEFAULT_TOKEN_CHANNEL;
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:29:7: ( '::' )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:29:9: '::'
+			{
+				match("::");
+
+			}
+
+			state.type = _type;
+			state.channel = _channel;
+		} finally {
+		}
+	}
+
+	// $ANTLR end "T__33"
+
+	// $ANTLR start "T__34"
+	public final void mT__34() throws RecognitionException {
+		try {
+			int _type = T__34;
+			int _channel = DEFAULT_TOKEN_CHANNEL;
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:30:7: ( 'private' )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:30:9: 'private'
+			{
+				match("private");
+
+			}
+
+			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;
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:31:7: ( 'cached' )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:31:9: 'cached'
+			{
+				match("cached");
+
+			}
+
+			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;
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:32:7: ( 'JAVA' )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:32:9: 'JAVA'
+			{
+				match("JAVA");
+
+			}
+
+			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;
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:33:7: ( '.' )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:33:9: '.'
+			{
+				match('.');
+
+			}
+
+			state.type = _type;
+			state.channel = _channel;
+		} finally {
+		}
+	}
+
+	// $ANTLR end "T__37"
+
+	// $ANTLR start "T__38"
+	public final void mT__38() throws RecognitionException {
+		try {
+			int _type = T__38;
+			int _channel = DEFAULT_TOKEN_CHANNEL;
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:34:7: ( 'create' )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:34:9: 'create'
+			{
+				match("create");
+
+			}
+
+			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;
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:35:7: ( 'Collection' )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:35:9: 'Collection'
+			{
+				match("Collection");
+
+			}
+
+			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;
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:36:7: ( 'List' )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:36:9: 'List'
+			{
+				match("List");
+
+			}
+
+			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;
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:37:7: ( 'Set' )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:37:9: 'Set'
+			{
+				match("Set");
+
+			}
+
+			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;
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:38:7: ( 'let' )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:38:9: 'let'
+			{
+				match("let");
+
+			}
+
+			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;
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:39:7: ( '=' )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:39:9: '='
+			{
+				match('=');
+
+			}
+
+			state.type = _type;
+			state.channel = _channel;
+		} finally {
+		}
+	}
+
+	// $ANTLR end "T__43"
+
+	// $ANTLR start "T__44"
+	public final void mT__44() throws RecognitionException {
+		try {
+			int _type = T__44;
+			int _channel = DEFAULT_TOKEN_CHANNEL;
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:40:7: ( '->' )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:40:9: '->'
+			{
+				match("->");
+
+			}
+
+			state.type = _type;
+			state.channel = _channel;
+		} finally {
+		}
+	}
+
+	// $ANTLR end "T__44"
+
+	// $ANTLR start "T__45"
+	public final void mT__45() throws RecognitionException {
+		try {
+			int _type = T__45;
+			int _channel = DEFAULT_TOKEN_CHANNEL;
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:41:7: ( '?' )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:41:9: '?'
+			{
+				match('?');
+
+			}
+
+			state.type = _type;
+			state.channel = _channel;
+		} finally {
+		}
+	}
+
+	// $ANTLR end "T__45"
+
+	// $ANTLR start "T__46"
+	public final void mT__46() throws RecognitionException {
+		try {
+			int _type = T__46;
+			int _channel = DEFAULT_TOKEN_CHANNEL;
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:42:7: ( 'then' )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:42:9: 'then'
+			{
+				match("then");
+
+			}
+
+			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;
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:43:7: ( 'else' )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:43:9: 'else'
+			{
+				match("else");
+
+			}
+
+			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;
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:44:7: ( 'switch' )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:44:9: 'switch'
+			{
+				match("switch");
+
+			}
+
+			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;
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:45:7: ( '{' )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:45: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;
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:46:7: ( 'case' )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:46:9: 'case'
+			{
+				match("case");
+
+			}
+
+			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;
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:47:7: ( 'default' )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:47:9: 'default'
+			{
+				match("default");
+
+			}
+
+			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;
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:48:7: ( '}' )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:48: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;
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:49:7: ( '||' )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:49: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;
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:50:7: ( '&&' )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:50: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;
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:51:7: ( 'implies' )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:51:9: 'implies'
+			{
+				match("implies");
+
+			}
+
+			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;
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:52:7: ( '==' )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:52: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;
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:53:7: ( '!=' )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:53: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;
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:54:7: ( '>=' )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:54:9: '>='
+			{
+				match(">=");
+
+			}
+
+			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;
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:55:7: ( '<=' )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:55: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;
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:56:7: ( '>' )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:56: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;
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:57:7: ( '<' )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:57: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;
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:58:7: ( '+' )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:58: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;
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:59:7: ( '-' )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:59: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;
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:60:7: ( '/' )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:60: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;
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:61:7: ( '!' )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:61: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;
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:62:7: ( 'GLOBALVAR' )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:62:9: 'GLOBALVAR'
+			{
+				match("GLOBALVAR");
+
+			}
+
+			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;
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:63:7: ( 'new' )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:63:9: 'new'
+			{
+				match("new");
+
+			}
+
+			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;
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:64:7: ( 'false' )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:64:9: 'false'
+			{
+				match("false");
+
+			}
+
+			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;
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:65:7: ( 'true' )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:65:9: 'true'
+			{
+				match("true");
+
+			}
+
+			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;
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:66:7: ( 'null' )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:66:9: 'null'
+			{
+				match("null");
+
+			}
+
+			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;
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:67:7: ( 'typeSelect' )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:67:9: 'typeSelect'
+			{
+				match("typeSelect");
+
+			}
+
+			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;
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:68:7: ( 'collect' )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:68:9: 'collect'
+			{
+				match("collect");
+
+			}
+
+			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;
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:69:7: ( 'select' )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:69:9: 'select'
+			{
+				match("select");
+
+			}
+
+			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;
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:70:7: ( 'selectFirst' )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:70:9: 'selectFirst'
+			{
+				match("selectFirst");
+
+			}
+
+			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;
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:71:7: ( 'reject' )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:71:9: 'reject'
+			{
+				match("reject");
+
+			}
+
+			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;
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:72:7: ( 'exists' )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:72:9: 'exists'
+			{
+				match("exists");
+
+			}
+
+			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;
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:73:7: ( 'notExists' )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:73:9: 'notExists'
+			{
+				match("notExists");
+
+			}
+
+			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;
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:74:7: ( 'sortBy' )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:74:9: 'sortBy'
+			{
+				match("sortBy");
+
+			}
+
+			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;
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:75:7: ( 'forAll' )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:75:9: 'forAll'
+			{
+				match("forAll");
+
+			}
+
+			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;
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:76:7: ( '|' )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:76:9: '|'
+			{
+				match('|');
+
+			}
+
+			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;
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:77:7: ( '[' )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:77: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;
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:78:7: ( ']' )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:78:9: ']'
+			{
+				match(']');
+
+			}
+
+			state.type = _type;
+			state.channel = _channel;
+		} finally {
+		}
+	}
+
+	// $ANTLR end "T__82"
+
+	// $ANTLR start "IntLiteral"
+	public final void mIntLiteral() throws RecognitionException {
+		try {
+			int _type = IntLiteral;
+			int _channel = DEFAULT_TOKEN_CHANNEL;
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:427:12: ( ( '0' .. '9' )+ )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:427:14: ( '0' .. '9' )+
+			{
+				// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:427:14: ( '0' .. '9' )+
+				int cnt1 = 0;
+				loop1: do {
+					int alt1 = 2;
+					int LA1_0 = input.LA(1);
+
+					if (((LA1_0 >= '0' && LA1_0 <= '9'))) {
+						alt1 = 1;
+					}
+
+					switch (alt1) {
+					case 1:
+					// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:427:14: '0' .. '9'
+					{
+						matchRange('0', '9');
+
+					}
+						break;
+
+					default:
+						if (cnt1 >= 1)
+							break loop1;
+						EarlyExitException eee = new EarlyExitException(1, input);
+						throw eee;
+					}
+					cnt1++;
+				} while (true);
+
+			}
+
+			state.type = _type;
+			state.channel = _channel;
+		} finally {
+		}
+	}
+
+	// $ANTLR end "IntLiteral"
+
+	// $ANTLR start "StringLiteral"
+	public final void mStringLiteral() throws RecognitionException {
+		try {
+			int _type = StringLiteral;
+			int _channel = DEFAULT_TOKEN_CHANNEL;
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:430:5: ( '\"' ( EscapeSequence | ~ ( '\\\\' | '\"' ) )* '\"' | '\\'' (
+			// EscapeSequence | ~ ( '\\'' | '\\\\' ) )* '\\'' )
+			int alt4 = 2;
+			int LA4_0 = input.LA(1);
+
+			if ((LA4_0 == '\"')) {
+				alt4 = 1;
+			} else if ((LA4_0 == '\'')) {
+				alt4 = 2;
+			} else {
+				NoViableAltException nvae = new NoViableAltException("", 4, 0, input);
+
+				throw nvae;
+			}
+			switch (alt4) {
+			case 1:
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:430:8: '\"' ( EscapeSequence | ~ ( '\\\\' | '\"' ) )* '\"'
+			{
+				match('\"');
+				// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:430:12: ( EscapeSequence | ~ ( '\\\\' | '\"' ) )*
+				loop2: do {
+					int alt2 = 3;
+					int LA2_0 = input.LA(1);
+
+					if ((LA2_0 == '\\')) {
+						alt2 = 1;
+					} else if (((LA2_0 >= '\u0000' && LA2_0 <= '!') || (LA2_0 >= '#' && LA2_0 <= '[') || (LA2_0 >= ']' && LA2_0 <= '\uFFFF'))) {
+						alt2 = 2;
+					}
+
+					switch (alt2) {
+					case 1:
+					// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:430:14: EscapeSequence
+					{
+						mEscapeSequence();
+
+					}
+						break;
+					case 2:
+					// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:430:31: ~ ( '\\\\' | '\"' )
+					{
+						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 loop2;
+					}
+				} while (true);
+
+				match('\"');
+
+			}
+				break;
+			case 2:
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:431:8: '\\'' ( EscapeSequence | ~ ( '\\'' | '\\\\' ) )* '\\''
+			{
+				match('\'');
+				// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:431:13: ( EscapeSequence | ~ ( '\\'' | '\\\\' ) )*
+				loop3: do {
+					int alt3 = 3;
+					int LA3_0 = input.LA(1);
+
+					if ((LA3_0 == '\\')) {
+						alt3 = 1;
+					} else if (((LA3_0 >= '\u0000' && LA3_0 <= '&') || (LA3_0 >= '(' && LA3_0 <= '[') || (LA3_0 >= ']' && LA3_0 <= '\uFFFF'))) {
+						alt3 = 2;
+					}
+
+					switch (alt3) {
+					case 1:
+					// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:431:15: EscapeSequence
+					{
+						mEscapeSequence();
+
+					}
+						break;
+					case 2:
+					// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:431:32: ~ ( '\\'' | '\\\\' )
+					{
+						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 loop3;
+					}
+				} while (true);
+
+				match('\'');
+
+			}
+				break;
+
+			}
+			state.type = _type;
+			state.channel = _channel;
+		} finally {
+		}
+	}
+
+	// $ANTLR end "StringLiteral"
+
+	// $ANTLR start "EscapeSequence"
+	public final void mEscapeSequence() throws RecognitionException {
+		try {
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:436:5: ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' ) |
+			// UnicodeEscape | OctalEscape )
+			int alt5 = 3;
+			int LA5_0 = input.LA(1);
+
+			if ((LA5_0 == '\\')) {
+				switch (input.LA(2)) {
+				case '\"':
+				case '\'':
+				case '\\':
+				case 'b':
+				case 'f':
+				case 'n':
+				case 'r':
+				case 't': {
+					alt5 = 1;
+				}
+					break;
+				case 'u': {
+					alt5 = 2;
+				}
+					break;
+				case '0':
+				case '1':
+				case '2':
+				case '3':
+				case '4':
+				case '5':
+				case '6':
+				case '7': {
+					alt5 = 3;
+				}
+					break;
+				default:
+					NoViableAltException nvae = new NoViableAltException("", 5, 1, input);
+
+					throw nvae;
+				}
+
+			} else {
+				NoViableAltException nvae = new NoViableAltException("", 5, 0, input);
+
+				throw nvae;
+			}
+			switch (alt5) {
+			case 1:
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:436:9: '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' )
+			{
+				match('\\');
+				if (input.LA(1) == '\"' || input.LA(1) == '\'' || input.LA(1) == '\\' || input.LA(1) == 'b' || input.LA(1) == 'f'
+						|| input.LA(1) == 'n' || input.LA(1) == 'r' || input.LA(1) == 't') {
+					input.consume();
+
+				} else {
+					MismatchedSetException mse = new MismatchedSetException(null, input);
+					recover(mse);
+					throw mse;
+				}
+
+			}
+				break;
+			case 2:
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:437:9: UnicodeEscape
+			{
+				mUnicodeEscape();
+
+			}
+				break;
+			case 3:
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:438:9: OctalEscape
+			{
+				mOctalEscape();
+
+			}
+				break;
+
+			}
+		} finally {
+		}
+	}
+
+	// $ANTLR end "EscapeSequence"
+
+	// $ANTLR start "OctalEscape"
+	public final void mOctalEscape() throws RecognitionException {
+		try {
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:443:5: ( '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7'
+			// ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) )
+			int alt6 = 3;
+			int LA6_0 = input.LA(1);
+
+			if ((LA6_0 == '\\')) {
+				int LA6_1 = input.LA(2);
+
+				if (((LA6_1 >= '0' && LA6_1 <= '3'))) {
+					int LA6_2 = input.LA(3);
+
+					if (((LA6_2 >= '0' && LA6_2 <= '7'))) {
+						int LA6_4 = input.LA(4);
+
+						if (((LA6_4 >= '0' && LA6_4 <= '7'))) {
+							alt6 = 1;
+						} else {
+							alt6 = 2;
+						}
+					} else {
+						alt6 = 3;
+					}
+				} else if (((LA6_1 >= '4' && LA6_1 <= '7'))) {
+					int LA6_3 = input.LA(3);
+
+					if (((LA6_3 >= '0' && LA6_3 <= '7'))) {
+						alt6 = 2;
+					} else {
+						alt6 = 3;
+					}
+				} else {
+					NoViableAltException nvae = new NoViableAltException("", 6, 1, input);
+
+					throw nvae;
+				}
+			} else {
+				NoViableAltException nvae = new NoViableAltException("", 6, 0, input);
+
+				throw nvae;
+			}
+			switch (alt6) {
+			case 1:
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:443:9: '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' )
+			{
+				match('\\');
+				// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:443:14: ( '0' .. '3' )
+				// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:443:15: '0' .. '3'
+				{
+					matchRange('0', '3');
+
+				}
+
+				// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:443:25: ( '0' .. '7' )
+				// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:443:26: '0' .. '7'
+				{
+					matchRange('0', '7');
+
+				}
+
+				// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:443:36: ( '0' .. '7' )
+				// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:443:37: '0' .. '7'
+				{
+					matchRange('0', '7');
+
+				}
+
+			}
+				break;
+			case 2:
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:444:9: '\\\\' ( '0' .. '7' ) ( '0' .. '7' )
+			{
+				match('\\');
+				// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:444:14: ( '0' .. '7' )
+				// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:444:15: '0' .. '7'
+				{
+					matchRange('0', '7');
+
+				}
+
+				// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:444:25: ( '0' .. '7' )
+				// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:444:26: '0' .. '7'
+				{
+					matchRange('0', '7');
+
+				}
+
+			}
+				break;
+			case 3:
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:445:9: '\\\\' ( '0' .. '7' )
+			{
+				match('\\');
+				// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:445:14: ( '0' .. '7' )
+				// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:445:15: '0' .. '7'
+				{
+					matchRange('0', '7');
+
+				}
+
+			}
+				break;
+
+			}
+		} finally {
+		}
+	}
+
+	// $ANTLR end "OctalEscape"
+
+	// $ANTLR start "UnicodeEscape"
+	public final void mUnicodeEscape() throws RecognitionException {
+		try {
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:450:5: ( '\\\\' 'u' HexDigit HexDigit HexDigit HexDigit )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:450:9: '\\\\' 'u' HexDigit HexDigit HexDigit HexDigit
+			{
+				match('\\');
+				match('u');
+				mHexDigit();
+				mHexDigit();
+				mHexDigit();
+				mHexDigit();
+
+			}
+
+		} finally {
+		}
+	}
+
+	// $ANTLR end "UnicodeEscape"
+
+	// $ANTLR start "HexDigit"
+	public final void mHexDigit() throws RecognitionException {
+		try {
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:453:10: ( ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' ) )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:453:12: ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' )
+			{
+				if ((input.LA(1) >= '0' && input.LA(1) <= '9') || (input.LA(1) >= 'A' && input.LA(1) <= 'F')
+						|| (input.LA(1) >= 'a' && input.LA(1) <= 'f')) {
+					input.consume();
+
+				} else {
+					MismatchedSetException mse = new MismatchedSetException(null, input);
+					recover(mse);
+					throw mse;
+				}
+
+			}
+
+		} finally {
+		}
+	}
+
+	// $ANTLR end "HexDigit"
+
+	// $ANTLR start "Identifier"
+	public final void mIdentifier() throws RecognitionException {
+		try {
+			int _type = Identifier;
+			int _channel = DEFAULT_TOKEN_CHANNEL;
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:456:5: ( ( '^' )? Letter ( Letter | JavaIDDigit )* )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:456:9: ( '^' )? Letter ( Letter | JavaIDDigit )*
+			{
+				// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:456:9: ( '^' )?
+				int alt7 = 2;
+				int LA7_0 = input.LA(1);
+
+				if ((LA7_0 == '^')) {
+					alt7 = 1;
+				}
+				switch (alt7) {
+				case 1:
+				// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:456:10: '^'
+				{
+					match('^');
+
+				}
+					break;
+
+				}
+
+				mLetter();
+				// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:456:23: ( Letter | JavaIDDigit )*
+				loop8: do {
+					int alt8 = 2;
+					int LA8_0 = input.LA(1);
+
+					if ((LA8_0 == '$' || (LA8_0 >= '0' && LA8_0 <= '9') || (LA8_0 >= 'A' && LA8_0 <= 'Z') || LA8_0 == '_'
+							|| (LA8_0 >= 'a' && LA8_0 <= 'z') || (LA8_0 >= '\u00C0' && LA8_0 <= '\u00D6') || (LA8_0 >= '\u00D8' && LA8_0 <= '\u00F6')
+							|| (LA8_0 >= '\u00F8' && LA8_0 <= '\u1FFF') || (LA8_0 >= '\u3040' && LA8_0 <= '\u318F')
+							|| (LA8_0 >= '\u3300' && LA8_0 <= '\u337F') || (LA8_0 >= '\u3400' && LA8_0 <= '\u3D2D')
+							|| (LA8_0 >= '\u4E00' && LA8_0 <= '\u9FFF') || (LA8_0 >= '\uF900' && LA8_0 <= '\uFAFF'))) {
+						alt8 = 1;
+					}
+
+					switch (alt8) {
+					case 1:
+					// src/org/eclipse/internal/xtend/xtend/parser/Xtend.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.LA(1) >= '\u00C0' && input.LA(1) <= '\u00D6') || (input.LA(1) >= '\u00D8' && input.LA(1) <= '\u00F6')
+								|| (input.LA(1) >= '\u00F8' && input.LA(1) <= '\u1FFF') || (input.LA(1) >= '\u3040' && input.LA(1) <= '\u318F')
+								|| (input.LA(1) >= '\u3300' && input.LA(1) <= '\u337F') || (input.LA(1) >= '\u3400' && input.LA(1) <= '\u3D2D')
+								|| (input.LA(1) >= '\u4E00' && input.LA(1) <= '\u9FFF') || (input.LA(1) >= '\uF900' && input.LA(1) <= '\uFAFF')) {
+							input.consume();
+
+						} else {
+							MismatchedSetException mse = new MismatchedSetException(null, input);
+							recover(mse);
+							throw mse;
+						}
+
+					}
+						break;
+
+					default:
+						break loop8;
+					}
+				} while (true);
+
+			}
+
+			state.type = _type;
+			state.channel = _channel;
+		} finally {
+		}
+	}
+
+	// $ANTLR end "Identifier"
+
+	// $ANTLR start "Letter"
+	public final void mLetter() throws RecognitionException {
+		try {
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:461:5: ( '\\u0024' | '\\u0041' .. '\\u005a' | '\\u005f' | '\\u0061' .. '\\u007a' |
+			// '\\u00c0' .. '\\u00d6' | '\\u00d8' .. '\\u00f6' | '\\u00f8' .. '\\u00ff' | '\\u0100' .. '\\u1fff' | '\\u3040' .. '\\u318f' | '\\u3300'
+			// .. '\\u337f' | '\\u3400' .. '\\u3d2d' | '\\u4e00' .. '\\u9fff' | '\\uf900' .. '\\ufaff' )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:
+			{
+				if (input.LA(1) == '$' || (input.LA(1) >= 'A' && input.LA(1) <= 'Z') || input.LA(1) == '_'
+						|| (input.LA(1) >= 'a' && input.LA(1) <= 'z') || (input.LA(1) >= '\u00C0' && input.LA(1) <= '\u00D6')
+						|| (input.LA(1) >= '\u00D8' && input.LA(1) <= '\u00F6') || (input.LA(1) >= '\u00F8' && input.LA(1) <= '\u1FFF')
+						|| (input.LA(1) >= '\u3040' && input.LA(1) <= '\u318F') || (input.LA(1) >= '\u3300' && input.LA(1) <= '\u337F')
+						|| (input.LA(1) >= '\u3400' && input.LA(1) <= '\u3D2D') || (input.LA(1) >= '\u4E00' && input.LA(1) <= '\u9FFF')
+						|| (input.LA(1) >= '\uF900' && input.LA(1) <= '\uFAFF')) {
+					input.consume();
+
+				} else {
+					MismatchedSetException mse = new MismatchedSetException(null, input);
+					recover(mse);
+					throw mse;
+				}
+
+			}
+
+		} finally {
+		}
+	}
+
+	// $ANTLR end "Letter"
+
+	// $ANTLR start "JavaIDDigit"
+	public final void mJavaIDDigit() throws RecognitionException {
+		try {
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:478:5: ( '\\u0030' .. '\\u0039' | '\\u0660' .. '\\u0669' | '\\u06f0' .. '\\u06f9' |
+			// '\\u0966' .. '\\u096f' | '\\u09e6' .. '\\u09ef' | '\\u0a66' .. '\\u0a6f' | '\\u0ae6' .. '\\u0aef' | '\\u0b66' .. '\\u0b6f' | '\\u0be7'
+			// .. '\\u0bef' | '\\u0c66' .. '\\u0c6f' | '\\u0ce6' .. '\\u0cef' | '\\u0d66' .. '\\u0d6f' | '\\u0e50' .. '\\u0e59' | '\\u0ed0' ..
+			// '\\u0ed9' | '\\u1040' .. '\\u1049' )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:
+			{
+				if ((input.LA(1) >= '0' && input.LA(1) <= '9') || (input.LA(1) >= '\u0660' && input.LA(1) <= '\u0669')
+						|| (input.LA(1) >= '\u06F0' && input.LA(1) <= '\u06F9') || (input.LA(1) >= '\u0966' && input.LA(1) <= '\u096F')
+						|| (input.LA(1) >= '\u09E6' && input.LA(1) <= '\u09EF') || (input.LA(1) >= '\u0A66' && input.LA(1) <= '\u0A6F')
+						|| (input.LA(1) >= '\u0AE6' && input.LA(1) <= '\u0AEF') || (input.LA(1) >= '\u0B66' && input.LA(1) <= '\u0B6F')
+						|| (input.LA(1) >= '\u0BE7' && input.LA(1) <= '\u0BEF') || (input.LA(1) >= '\u0C66' && input.LA(1) <= '\u0C6F')
+						|| (input.LA(1) >= '\u0CE6' && input.LA(1) <= '\u0CEF') || (input.LA(1) >= '\u0D66' && input.LA(1) <= '\u0D6F')
+						|| (input.LA(1) >= '\u0E50' && input.LA(1) <= '\u0E59') || (input.LA(1) >= '\u0ED0' && input.LA(1) <= '\u0ED9')
+						|| (input.LA(1) >= '\u1040' && input.LA(1) <= '\u1049')) {
+					input.consume();
+
+				} else {
+					MismatchedSetException mse = new MismatchedSetException(null, input);
+					recover(mse);
+					throw mse;
+				}
+
+			}
+
+		} finally {
+		}
+	}
+
+	// $ANTLR end "JavaIDDigit"
+
+	// $ANTLR start "WS"
+	public final void mWS() throws RecognitionException {
+		try {
+			int _type = WS;
+			int _channel = DEFAULT_TOKEN_CHANNEL;
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:495:5: ( ( ' ' | '\\r' | '\\t' | '\ ' | '\\n' ) )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:495:8: ( ' ' | '\\r' | '\\t' | '\ ' | '\\n' )
+			{
+				if ((input.LA(1) >= '\t' && input.LA(1) <= '\n') || (input.LA(1) >= '\f' && input.LA(1) <= '\r') || input.LA(1) == ' ') {
+					input.consume();
+
+				} else {
+					MismatchedSetException mse = new MismatchedSetException(null, input);
+					recover(mse);
+					throw mse;
+				}
+
+				_channel = HIDDEN;
+
+			}
+
+			state.type = _type;
+			state.channel = _channel;
+		} finally {
+		}
+	}
+
+	// $ANTLR end "WS"
+
+	// $ANTLR start "COMMENT"
+	public final void mCOMMENT() throws RecognitionException {
+		try {
+			int _type = COMMENT;
+			int _channel = DEFAULT_TOKEN_CHANNEL;
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:499:5: ( '/*' ( options {greedy=false; } : . )* '*/' )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:499:9: '/*' ( options {greedy=false; } : . )* '*/'
+			{
+				match("/*");
+
+				// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:499:14: ( options {greedy=false; } : . )*
+				loop9: do {
+					int alt9 = 2;
+					int LA9_0 = input.LA(1);
+
+					if ((LA9_0 == '*')) {
+						int LA9_1 = input.LA(2);
+
+						if ((LA9_1 == '/')) {
+							alt9 = 2;
+						} else if (((LA9_1 >= '\u0000' && LA9_1 <= '.') || (LA9_1 >= '0' && LA9_1 <= '\uFFFF'))) {
+							alt9 = 1;
+						}
+
+					} else if (((LA9_0 >= '\u0000' && LA9_0 <= ')') || (LA9_0 >= '+' && LA9_0 <= '\uFFFF'))) {
+						alt9 = 1;
+					}
+
+					switch (alt9) {
+					case 1:
+					// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:499:42: .
+					{
+						matchAny();
+
+					}
+						break;
+
+					default:
+						break loop9;
+					}
+				} while (true);
+
+				match("*/");
+
+				_channel = HIDDEN;
+
+			}
+
+			state.type = _type;
+			state.channel = _channel;
+		} finally {
+		}
+	}
+
+	// $ANTLR end "COMMENT"
+
+	// $ANTLR start "LINE_COMMENT"
+	public final void mLINE_COMMENT() throws RecognitionException {
+		try {
+			int _type = LINE_COMMENT;
+			int _channel = DEFAULT_TOKEN_CHANNEL;
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:503:5: ( '//' (~ ( '\\n' | '\\r' ) )* ( ( '\\r' )? '\\n' | EOF ) )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:503:7: '//' (~ ( '\\n' | '\\r' ) )* ( ( '\\r' )? '\\n' | EOF )
+			{
+				match("//");
+
+				// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:503:12: (~ ( '\\n' | '\\r' ) )*
+				loop10: do {
+					int alt10 = 2;
+					int LA10_0 = input.LA(1);
+
+					if (((LA10_0 >= '\u0000' && LA10_0 <= '\t') || (LA10_0 >= '\u000B' && LA10_0 <= '\f') || (LA10_0 >= '\u000E' && LA10_0 <= '\uFFFF'))) {
+						alt10 = 1;
+					}
+
+					switch (alt10) {
+					case 1:
+					// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:503:12: ~ ( '\\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 loop10;
+					}
+				} while (true);
+
+				// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:503:26: ( ( '\\r' )? '\\n' | EOF )
+				int alt12 = 2;
+				int LA12_0 = input.LA(1);
+
+				if ((LA12_0 == '\n' || LA12_0 == '\r')) {
+					alt12 = 1;
+				} else {
+					alt12 = 2;
+				}
+				switch (alt12) {
+				case 1:
+				// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:503:27: ( '\\r' )? '\\n'
+				{
+					// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:503:27: ( '\\r' )?
+					int alt11 = 2;
+					int LA11_0 = input.LA(1);
+
+					if ((LA11_0 == '\r')) {
+						alt11 = 1;
+					}
+					switch (alt11) {
+					case 1:
+					// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:503:27: '\\r'
+					{
+						match('\r');
+
+					}
+						break;
+
+					}
+
+					match('\n');
+
+				}
+					break;
+				case 2:
+				// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:503:38: EOF
+				{
+					match(EOF);
+
+				}
+					break;
+
+				}
+
+				_channel = HIDDEN;
+
+			}
+
+			state.type = _type;
+			state.channel = _channel;
+		} finally {
+		}
+	}
+
+	// $ANTLR end "LINE_COMMENT"
+
+	// $ANTLR start "XPAND_TAG_OPEN"
+	public final void mXPAND_TAG_OPEN() throws RecognitionException {
+		try {
+			int _type = XPAND_TAG_OPEN;
+			int _channel = DEFAULT_TOKEN_CHANNEL;
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:508:2: ( '\\u00AB' )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:508:4: '\\u00AB'
+			{
+				match('\u00AB');
+
+			}
+
+			state.type = _type;
+			state.channel = _channel;
+		} finally {
+		}
+	}
+
+	// $ANTLR end "XPAND_TAG_OPEN"
+
+	// $ANTLR start "XPAND_TAG_CLOSE"
+	public final void mXPAND_TAG_CLOSE() throws RecognitionException {
+		try {
+			int _type = XPAND_TAG_CLOSE;
+			int _channel = DEFAULT_TOKEN_CHANNEL;
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:510:2: ( '\\u00BB' )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:510:4: '\\u00BB'
+			{
+				match('\u00BB');
+
+			}
+
+			state.type = _type;
+			state.channel = _channel;
+		} finally {
+		}
+	}
+
+	// $ANTLR end "XPAND_TAG_CLOSE"
+
+	public void mTokens() throws RecognitionException {
+		// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:1:8: ( 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 | IntLiteral | StringLiteral | Identifier | WS | COMMENT | LINE_COMMENT | XPAND_TAG_OPEN | XPAND_TAG_CLOSE )
+		int alt13 = 73;
+		alt13 = dfa13.predict(input);
+		switch (alt13) {
+		case 1:
+		// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:1:10: T__18
+		{
+			mT__18();
+
+		}
+			break;
+		case 2:
+		// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:1:16: T__19
+		{
+			mT__19();
+
+		}
+			break;
+		case 3:
+		// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:1:22: T__20
+		{
+			mT__20();
+
+		}
+			break;
+		case 4:
+		// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:1:28: T__21
+		{
+			mT__21();
+
+		}
+			break;
+		case 5:
+		// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:1:34: T__22
+		{
+			mT__22();
+
+		}
+			break;
+		case 6:
+		// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:1:40: T__23
+		{
+			mT__23();
+
+		}
+			break;
+		case 7:
+		// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:1:46: T__24
+		{
+			mT__24();
+
+		}
+			break;
+		case 8:
+		// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:1:52: T__25
+		{
+			mT__25();
+
+		}
+			break;
+		case 9:
+		// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:1:58: T__26
+		{
+			mT__26();
+
+		}
+			break;
+		case 10:
+		// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:1:64: T__27
+		{
+			mT__27();
+
+		}
+			break;
+		case 11:
+		// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:1:70: T__28
+		{
+			mT__28();
+
+		}
+			break;
+		case 12:
+		// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:1:76: T__29
+		{
+			mT__29();
+
+		}
+			break;
+		case 13:
+		// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:1:82: T__30
+		{
+			mT__30();
+
+		}
+			break;
+		case 14:
+		// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:1:88: T__31
+		{
+			mT__31();
+
+		}
+			break;
+		case 15:
+		// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:1:94: T__32
+		{
+			mT__32();
+
+		}
+			break;
+		case 16:
+		// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:1:100: T__33
+		{
+			mT__33();
+
+		}
+			break;
+		case 17:
+		// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:1:106: T__34
+		{
+			mT__34();
+
+		}
+			break;
+		case 18:
+		// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:1:112: T__35
+		{
+			mT__35();
+
+		}
+			break;
+		case 19:
+		// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:1:118: T__36
+		{
+			mT__36();
+
+		}
+			break;
+		case 20:
+		// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:1:124: T__37
+		{
+			mT__37();
+
+		}
+			break;
+		case 21:
+		// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:1:130: T__38
+		{
+			mT__38();
+
+		}
+			break;
+		case 22:
+		// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:1:136: T__39
+		{
+			mT__39();
+
+		}
+			break;
+		case 23:
+		// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:1:142: T__40
+		{
+			mT__40();
+
+		}
+			break;
+		case 24:
+		// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:1:148: T__41
+		{
+			mT__41();
+
+		}
+			break;
+		case 25:
+		// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:1:154: T__42
+		{
+			mT__42();
+
+		}
+			break;
+		case 26:
+		// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:1:160: T__43
+		{
+			mT__43();
+
+		}
+			break;
+		case 27:
+		// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:1:166: T__44
+		{
+			mT__44();
+
+		}
+			break;
+		case 28:
+		// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:1:172: T__45
+		{
+			mT__45();
+
+		}
+			break;
+		case 29:
+		// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:1:178: T__46
+		{
+			mT__46();
+
+		}
+			break;
+		case 30:
+		// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:1:184: T__47
+		{
+			mT__47();
+
+		}
+			break;
+		case 31:
+		// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:1:190: T__48
+		{
+			mT__48();
+
+		}
+			break;
+		case 32:
+		// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:1:196: T__49
+		{
+			mT__49();
+
+		}
+			break;
+		case 33:
+		// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:1:202: T__50
+		{
+			mT__50();
+
+		}
+			break;
+		case 34:
+		// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:1:208: T__51
+		{
+			mT__51();
+
+		}
+			break;
+		case 35:
+		// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:1:214: T__52
+		{
+			mT__52();
+
+		}
+			break;
+		case 36:
+		// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:1:220: T__53
+		{
+			mT__53();
+
+		}
+			break;
+		case 37:
+		// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:1:226: T__54
+		{
+			mT__54();
+
+		}
+			break;
+		case 38:
+		// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:1:232: T__55
+		{
+			mT__55();
+
+		}
+			break;
+		case 39:
+		// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:1:238: T__56
+		{
+			mT__56();
+
+		}
+			break;
+		case 40:
+		// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:1:244: T__57
+		{
+			mT__57();
+
+		}
+			break;
+		case 41:
+		// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:1:250: T__58
+		{
+			mT__58();
+
+		}
+			break;
+		case 42:
+		// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:1:256: T__59
+		{
+			mT__59();
+
+		}
+			break;
+		case 43:
+		// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:1:262: T__60
+		{
+			mT__60();
+
+		}
+			break;
+		case 44:
+		// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:1:268: T__61
+		{
+			mT__61();
+
+		}
+			break;
+		case 45:
+		// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:1:274: T__62
+		{
+			mT__62();
+
+		}
+			break;
+		case 46:
+		// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:1:280: T__63
+		{
+			mT__63();
+
+		}
+			break;
+		case 47:
+		// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:1:286: T__64
+		{
+			mT__64();
+
+		}
+			break;
+		case 48:
+		// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:1:292: T__65
+		{
+			mT__65();
+
+		}
+			break;
+		case 49:
+		// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:1:298: T__66
+		{
+			mT__66();
+
+		}
+			break;
+		case 50:
+		// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:1:304: T__67
+		{
+			mT__67();
+
+		}
+			break;
+		case 51:
+		// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:1:310: T__68
+		{
+			mT__68();
+
+		}
+			break;
+		case 52:
+		// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:1:316: T__69
+		{
+			mT__69();
+
+		}
+			break;
+		case 53:
+		// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:1:322: T__70
+		{
+			mT__70();
+
+		}
+			break;
+		case 54:
+		// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:1:328: T__71
+		{
+			mT__71();
+
+		}
+			break;
+		case 55:
+		// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:1:334: T__72
+		{
+			mT__72();
+
+		}
+			break;
+		case 56:
+		// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:1:340: T__73
+		{
+			mT__73();
+
+		}
+			break;
+		case 57:
+		// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:1:346: T__74
+		{
+			mT__74();
+
+		}
+			break;
+		case 58:
+		// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:1:352: T__75
+		{
+			mT__75();
+
+		}
+			break;
+		case 59:
+		// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:1:358: T__76
+		{
+			mT__76();
+
+		}
+			break;
+		case 60:
+		// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:1:364: T__77
+		{
+			mT__77();
+
+		}
+			break;
+		case 61:
+		// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:1:370: T__78
+		{
+			mT__78();
+
+		}
+			break;
+		case 62:
+		// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:1:376: T__79
+		{
+			mT__79();
+
+		}
+			break;
+		case 63:
+		// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:1:382: T__80
+		{
+			mT__80();
+
+		}
+			break;
+		case 64:
+		// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:1:388: T__81
+		{
+			mT__81();
+
+		}
+			break;
+		case 65:
+		// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:1:394: T__82
+		{
+			mT__82();
+
+		}
+			break;
+		case 66:
+		// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:1:400: IntLiteral
+		{
+			mIntLiteral();
+
+		}
+			break;
+		case 67:
+		// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:1:411: StringLiteral
+		{
+			mStringLiteral();
+
+		}
+			break;
+		case 68:
+		// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:1:425: Identifier
+		{
+			mIdentifier();
+
+		}
+			break;
+		case 69:
+		// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:1:436: WS
+		{
+			mWS();
+
+		}
+			break;
+		case 70:
+		// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:1:439: COMMENT
+		{
+			mCOMMENT();
+
+		}
+			break;
+		case 71:
+		// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:1:447: LINE_COMMENT
+		{
+			mLINE_COMMENT();
+
+		}
+			break;
+		case 72:
+		// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:1:460: XPAND_TAG_OPEN
+		{
+			mXPAND_TAG_OPEN();
+
+		}
+			break;
+		case 73:
+		// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:1:475: XPAND_TAG_CLOSE
+		{
+			mXPAND_TAG_CLOSE();
+
+		}
+			break;
+
+		}
+
+	}
+
+	protected DFA13 dfa13 = new DFA13(this);
+	static final String DFA13_eotS = "\1\uffff\1\54\1\uffff\3\54\1\uffff\2\54\1\73\1\54\4\uffff\2\54\1"
+			+ "\uffff\4\54\1\104\1\106\1\uffff\2\54\1\uffff\1\54\1\uffff\1\117" + "\1\uffff\1\121\1\123\1\125\1\uffff\1\130\3\54\10\uffff\1\54\1\140"
+			+ "\10\54\2\uffff\7\54\4\uffff\7\54\13\uffff\7\54\1\uffff\21\54\1\u0094"
+			+ "\1\u0095\10\54\1\u009e\10\54\1\u00a7\5\54\1\u00ad\5\54\1\u00b3\1" + "\54\1\u00b5\2\uffff\1\u00b6\1\u00b7\6\54\1\uffff\1\u00be\7\54\1"
+			+ "\uffff\5\54\1\uffff\1\54\1\u00cc\3\54\1\uffff\1\54\3\uffff\6\54" + "\1\uffff\1\54\1\u00d8\1\54\1\u00da\2\54\1\u00dd\1\54\1\u00df\2\54"
+			+ "\1\u00e2\1\u00e3\1\uffff\1\54\1\u00e5\3\54\1\u00e9\1\u00eb\1\u00ec"
+			+ "\3\54\1\uffff\1\u00f0\1\uffff\1\u00f1\1\54\1\uffff\1\54\1\uffff" + "\1\u00f4\1\u00f5\2\uffff\1\u00f6\1\uffff\1\u00f7\2\54\1\uffff\1"
+			+ "\54\2\uffff\1\u00fb\2\54\2\uffff\1\54\1\u00ff\4\uffff\3\54\1\uffff"
+			+ "\2\54\1\u0105\1\uffff\3\54\1\u0109\1\u010a\1\uffff\1\u010b\1\u010c" + "\1\54\4\uffff\1\u010e\1\uffff";
+	static final String DFA13_eofS = "\u010f\uffff";
+	static final String DFA13_minS = "\1\11\1\146\1\uffff\1\154\1\145\1\141\1\uffff\1\122\1\101\1\72\1"
+			+ "\162\4\uffff\1\162\1\101\1\uffff\1\157\1\151\2\145\1\75\1\76\1\uffff"
+			+ "\1\150\1\145\1\uffff\1\145\1\uffff\1\174\1\uffff\3\75\1\uffff\1" + "\52\1\114\1\145\1\141\10\uffff\1\160\1\44\1\151\1\163\1\145\1\154"
+			+ "\1\143\1\145\2\122\2\uffff\1\157\1\151\1\126\1\154\1\163\2\164\4" + "\uffff\1\145\1\165\1\160\1\151\1\154\1\162\1\146\13\uffff\1\117"
+			+ "\1\167\1\154\1\164\1\154\1\162\1\154\1\uffff\1\145\1\163\1\145\1" + "\170\1\145\1\164\1\154\1\150\1\145\1\141\1\117\1\116\1\165\1\166"
+			+ "\1\101\1\154\1\164\2\44\1\156\2\145\1\164\1\145\1\164\1\141\1\102"
+			+ "\1\44\1\154\1\105\1\163\1\101\1\162\1\151\1\156\1\164\1\44\1\160" + "\1\143\3\145\1\44\1\164\1\122\1\111\1\156\1\141\1\44\1\145\1\44"
+			+ "\2\uffff\2\44\1\123\2\143\1\102\1\165\1\101\1\uffff\1\44\1\170\1"
+			+ "\145\1\154\1\164\1\145\2\163\1\uffff\1\157\1\164\1\170\1\143\1\144"
+			+ "\1\uffff\1\145\1\44\1\116\1\144\1\164\1\uffff\1\143\3\uffff\1\145"
+			+ "\1\150\1\164\1\171\1\154\1\114\1\uffff\1\151\1\44\1\154\1\44\1\163"
+			+ "\1\151\1\44\1\162\1\44\2\164\2\44\1\uffff\1\107\1\44\1\145\1\164" + "\1\154\3\44\1\164\1\126\1\163\1\uffff\1\44\1\uffff\1\44\1\157\1"
+			+ "\uffff\1\164\1\uffff\2\44\2\uffff\1\44\1\uffff\1\44\1\151\1\145"
+			+ "\1\uffff\1\151\2\uffff\1\44\1\101\1\164\2\uffff\1\156\1\44\4\uffff"
+			+ "\1\157\1\143\1\162\1\uffff\1\122\1\163\1\44\1\uffff\1\156\1\164" + "\1\163\2\44\1\uffff\2\44\1\164\4\uffff\1\44\1\uffff";
+	static final String DFA13_maxS = "\1\ufaff\1\155\1\uffff\1\170\1\145\1\162\1\uffff\1\122\1\101\1\72"
+			+ "\1\162\4\uffff\1\162\1\101\1\uffff\1\157\1\151\2\145\1\75\1\76\1"
+			+ "\uffff\1\171\1\167\1\uffff\1\145\1\uffff\1\174\1\uffff\3\75\1\uffff"
+			+ "\1\57\1\114\1\165\1\157\10\uffff\1\160\1\ufaff\1\164\1\163\1\152" + "\1\156\1\163\1\145\2\122\2\uffff\1\157\1\151\1\126\1\154\1\163\2"
+			+ "\164\4\uffff\1\145\1\165\1\160\1\151\1\154\1\162\1\146\13\uffff" + "\1\117\1\167\1\154\1\164\1\154\1\162\1\157\1\uffff\1\145\1\163\1"
+			+ "\145\1\170\1\145\1\164\1\154\1\150\1\145\1\141\1\117\1\116\1\165" + "\1\166\1\101\1\154\1\164\2\ufaff\1\156\2\145\1\164\1\145\1\164\1"
+			+ "\141\1\102\1\ufaff\1\154\1\105\1\163\1\101\1\162\1\151\1\156\1\164"
+			+ "\1\ufaff\1\160\1\143\3\145\1\ufaff\1\164\1\122\1\111\1\156\1\141" + "\1\ufaff\1\145\1\ufaff\2\uffff\2\ufaff\1\123\2\143\1\102\1\165\1"
+			+ "\101\1\uffff\1\ufaff\1\170\1\145\1\154\1\164\1\145\2\163\1\uffff" + "\1\157\1\164\1\170\1\143\1\144\1\uffff\1\145\1\ufaff\1\116\1\144"
+			+ "\1\164\1\uffff\1\143\3\uffff\1\145\1\150\1\164\1\171\1\154\1\114" + "\1\uffff\1\151\1\ufaff\1\154\1\ufaff\1\163\1\151\1\ufaff\1\162\1"
+			+ "\ufaff\2\164\2\ufaff\1\uffff\1\107\1\ufaff\1\145\1\164\1\154\3\ufaff"
+			+ "\1\164\1\126\1\163\1\uffff\1\ufaff\1\uffff\1\ufaff\1\157\1\uffff"
+			+ "\1\164\1\uffff\2\ufaff\2\uffff\1\ufaff\1\uffff\1\ufaff\1\151\1\145"
+			+ "\1\uffff\1\151\2\uffff\1\ufaff\1\101\1\164\2\uffff\1\156\1\ufaff" + "\4\uffff\1\157\1\143\1\162\1\uffff\1\122\1\163\1\ufaff\1\uffff\1"
+			+ "\156\1\164\1\163\2\ufaff\1\uffff\2\ufaff\1\164\4\uffff\1\ufaff\1" + "\uffff";
+	static final String DFA13_acceptS = "\2\uffff\1\2\3\uffff\1\6\4\uffff\1\14\1\15\1\16\1\17\2\uffff\1\24"
+			+ "\6\uffff\1\34\2\uffff\1\40\1\uffff\1\43\1\uffff\1\45\3\uffff\1\55"
+			+ "\4\uffff\1\100\1\101\1\102\1\103\1\104\1\105\1\110\1\111\12\uffff" + "\1\20\1\12\7\uffff\1\47\1\32\1\33\1\56\7\uffff\1\44\1\77\1\50\1"
+			+ "\60\1\51\1\53\1\52\1\54\1\106\1\107\1\57\7\uffff\1\7\63\uffff\1" + "\30\1\31\10\uffff\1\62\10\uffff\1\36\5\uffff\1\41\5\uffff\1\23\1"
+			+ "\uffff\1\27\1\35\1\64\6\uffff\1\65\15\uffff\1\10\13\uffff\1\63\1" + "\uffff\1\1\2\uffff\1\73\1\uffff\1\72\2\uffff\1\22\1\25\1\uffff\1"
+			+ "\13\3\uffff\1\37\1\uffff\1\70\1\75\3\uffff\1\76\1\46\2\uffff\1\5"
+			+ "\1\67\1\11\1\21\3\uffff\1\42\3\uffff\1\4\5\uffff\1\3\3\uffff\1\61" + "\1\74\1\26\1\66\1\uffff\1\71";
+	static final String DFA13_specialS = "\u010f\uffff}>";
+	static final String[] DFA13_transitionS = {
+			"\2\55\1\uffff\2\55\22\uffff\1\55\1\40\1\53\1\6\1\54\1\uffff" + "\1\37\1\53\1\13\1\16\1\15\1\43\1\14\1\27\1\21\1\44\12\52\1\11"
+					+ "\1\2\1\42\1\26\1\41\1\30\1\uffff\2\54\1\22\1\54\1\7\1\54\1\45"
+					+ "\2\54\1\20\1\54\1\23\6\54\1\24\3\54\1\10\3\54\1\50\1\uffff\1" + "\51\2\54\1\uffff\1\12\1\54\1\5\1\34\1\3\1\47\2\54\1\1\2\54\1"
+					+ "\25\1\54\1\46\1\54\1\17\1\54\1\4\1\32\1\31\6\54\1\33\1\36\1" + "\35\55\uffff\1\56\17\uffff\1\57\4\uffff\27\54\1\uffff\37\54"
+					+ "\1\uffff\u1f08\54\u1040\uffff\u0150\54\u0170\uffff\u0080\54" + "\u0080\uffff\u092e\54\u10d2\uffff\u5200\54\u5900\uffff\u0200"
+					+ "\54",
+			"\1\61\6\uffff\1\60",
+			"",
+			"\1\63\13\uffff\1\62",
+			"\1\64",
+			"\1\66\15\uffff\1\65\2\uffff\1\67",
+			"",
+			"\1\70",
+			"\1\71",
+			"\1\72",
+			"\1\74",
+			"",
+			"",
+			"",
+			"",
+			"\1\75",
+			"\1\76",
+			"",
+			"\1\77",
+			"\1\100",
+			"\1\101",
+			"\1\102",
+			"\1\103",
+			"\1\105",
+			"",
+			"\1\107\11\uffff\1\110\6\uffff\1\111",
+			"\1\113\11\uffff\1\114\7\uffff\1\112",
+			"",
+			"\1\115",
+			"",
+			"\1\116",
+			"",
+			"\1\120",
+			"\1\122",
+			"\1\124",
+			"",
+			"\1\126\4\uffff\1\127",
+			"\1\131",
+			"\1\132\11\uffff\1\134\5\uffff\1\133",
+			"\1\135\15\uffff\1\136",
+			"",
+			"",
+			"",
+			"",
+			"",
+			"",
+			"",
+			"",
+			"\1\137",
+			"\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"
+					+ "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",
+			"\1\142\12\uffff\1\141",
+			"\1\143",
+			"\1\144\4\uffff\1\145",
+			"\1\147\1\uffff\1\146",
+			"\1\150\17\uffff\1\151",
+			"\1\152",
+			"\1\153",
+			"\1\154",
+			"",
+			"",
+			"\1\155",
+			"\1\156",
+			"\1\157",
+			"\1\160",
+			"\1\161",
+			"\1\162",
+			"\1\163",
+			"",
+			"",
+			"",
+			"",
+			"\1\164",
+			"\1\165",
+			"\1\166",
+			"\1\167",
+			"\1\170",
+			"\1\171",
+			"\1\172",
+			"",
+			"",
+			"",
+			"",
+			"",
+			"",
+			"",
+			"",
+			"",
+			"",
+			"",
+			"\1\173",
+			"\1\174",
+			"\1\175",
+			"\1\176",
+			"\1\177",
+			"\1\u0080",
+			"\1\u0082\2\uffff\1\u0081",
+			"",
+			"\1\u0083",
+			"\1\u0084",
+			"\1\u0085",
+			"\1\u0086",
+			"\1\u0087",
+			"\1\u0088",
+			"\1\u0089",
+			"\1\u008a",
+			"\1\u008b",
+			"\1\u008c",
+			"\1\u008d",
+			"\1\u008e",
+			"\1\u008f",
+			"\1\u0090",
+			"\1\u0091",
+			"\1\u0092",
+			"\1\u0093",
+			"\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"
+					+ "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",
+			"\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"
+					+ "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",
+			"\1\u0096",
+			"\1\u0097",
+			"\1\u0098",
+			"\1\u0099",
+			"\1\u009a",
+			"\1\u009b",
+			"\1\u009c",
+			"\1\u009d",
+			"\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"
+					+ "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",
+			"\1\u009f",
+			"\1\u00a0",
+			"\1\u00a1",
+			"\1\u00a2",
+			"\1\u00a3",
+			"\1\u00a4",
+			"\1\u00a5",
+			"\1\u00a6",
+			"\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"
+					+ "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",
+			"\1\u00a8",
+			"\1\u00a9",
+			"\1\u00aa",
+			"\1\u00ab",
+			"\1\u00ac",
+			"\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"
+					+ "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",
+			"\1\u00ae",
+			"\1\u00af",
+			"\1\u00b0",
+			"\1\u00b1",
+			"\1\u00b2",
+			"\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"
+					+ "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",
+			"\1\u00b4",
+			"\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"
+					+ "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",
+			"",
+			"",
+			"\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"
+					+ "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",
+			"\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"
+					+ "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",
+			"\1\u00b8",
+			"\1\u00b9",
+			"\1\u00ba",
+			"\1\u00bb",
+			"\1\u00bc",
+			"\1\u00bd",
+			"",
+			"\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"
+					+ "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",
+			"\1\u00bf",
+			"\1\u00c0",
+			"\1\u00c1",
+			"\1\u00c2",
+			"\1\u00c3",
+			"\1\u00c4",
+			"\1\u00c5",
+			"",
+			"\1\u00c6",
+			"\1\u00c7",
+			"\1\u00c8",
+			"\1\u00c9",
+			"\1\u00ca",
+			"",
+			"\1\u00cb",
+			"\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"
+					+ "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",
+			"\1\u00cd",
+			"\1\u00ce",
+			"\1\u00cf",
+			"",
+			"\1\u00d0",
+			"",
+			"",
+			"",
+			"\1\u00d1",
+			"\1\u00d2",
+			"\1\u00d3",
+			"\1\u00d4",
+			"\1\u00d5",
+			"\1\u00d6",
+			"",
+			"\1\u00d7",
+			"\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"
+					+ "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",
+			"\1\u00d9",
+			"\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"
+					+ "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",
+			"\1\u00db",
+			"\1\u00dc",
+			"\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"
+					+ "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",
+			"\1\u00de",
+			"\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"
+					+ "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",
+			"\1\u00e0",
+			"\1\u00e1",
+			"\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"
+					+ "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",
+			"\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"
+					+ "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",
+			"",
+			"\1\u00e4",
+			"\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"
+					+ "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",
+			"\1\u00e6",
+			"\1\u00e7",
+			"\1\u00e8",
+			"\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"
+					+ "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",
+			"\1\54\13\uffff\12\54\7\uffff\5\54\1\u00ea\24\54\4\uffff\1\54" + "\1\uffff\32\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54"
+					+ "\u1040\uffff\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e" + "\54\u10d2\uffff\u5200\54\u5900\uffff\u0200\54",
+			"\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"
+					+ "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",
+			"\1\u00ed",
+			"\1\u00ee",
+			"\1\u00ef",
+			"",
+			"\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"
+					+ "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",
+			"",
+			"\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"
+					+ "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",
+			"\1\u00f2",
+			"",
+			"\1\u00f3",
+			"",
+			"\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"
+					+ "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",
+			"\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"
+					+ "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",
+			"",
+			"",
+			"\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"
+					+ "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",
+			"",
+			"\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"
+					+ "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",
+			"\1\u00f8",
+			"\1\u00f9",
+			"",
+			"\1\u00fa",
+			"",
+			"",
+			"\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"
+					+ "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",
+			"\1\u00fc",
+			"\1\u00fd",
+			"",
+			"",
+			"\1\u00fe",
+			"\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"
+					+ "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",
+			"",
+			"",
+			"",
+			"",
+			"\1\u0100",
+			"\1\u0101",
+			"\1\u0102",
+			"",
+			"\1\u0103",
+			"\1\u0104",
+			"\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"
+					+ "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",
+			"",
+			"\1\u0106",
+			"\1\u0107",
+			"\1\u0108",
+			"\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"
+					+ "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",
+			"\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"
+					+ "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",
+			"",
+			"\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"
+					+ "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",
+			"\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"
+					+ "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54",
+			"\1\u010d",
+			"",
+			"",
+			"",
+			"",
+			"\1\54\13\uffff\12\54\7\uffff\32\54\4\uffff\1\54\1\uffff\32" + "\54\105\uffff\27\54\1\uffff\37\54\1\uffff\u1f08\54\u1040\uffff"
+					+ "\u0150\54\u0170\uffff\u0080\54\u0080\uffff\u092e\54\u10d2\uffff" + "\u5200\54\u5900\uffff\u0200\54", "" };
+
+	static final short[] DFA13_eot = DFA.unpackEncodedString(DFA13_eotS);
+	static final short[] DFA13_eof = DFA.unpackEncodedString(DFA13_eofS);
+	static final char[] DFA13_min = DFA.unpackEncodedStringToUnsignedChars(DFA13_minS);
+	static final char[] DFA13_max = DFA.unpackEncodedStringToUnsignedChars(DFA13_maxS);
+	static final short[] DFA13_accept = DFA.unpackEncodedString(DFA13_acceptS);
+	static final short[] DFA13_special = DFA.unpackEncodedString(DFA13_specialS);
+	static final short[][] DFA13_transition;
+
+	static {
+		int numStates = DFA13_transitionS.length;
+		DFA13_transition = new short[numStates][];
+		for (int i = 0; i < numStates; i++) {
+			DFA13_transition[i] = DFA.unpackEncodedString(DFA13_transitionS[i]);
+		}
+	}
+
+	class DFA13 extends DFA {
+
+		public DFA13(BaseRecognizer recognizer) {
+			this.recognizer = recognizer;
+			this.decisionNumber = 13;
+			this.eot = DFA13_eot;
+			this.eof = DFA13_eof;
+			this.min = DFA13_min;
+			this.max = DFA13_max;
+			this.accept = DFA13_accept;
+			this.special = DFA13_special;
+			this.transition = DFA13_transition;
+		}
+
+		public String getDescription() {
+			return "1:1: Tokens : ( 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 | IntLiteral | StringLiteral | Identifier | WS | COMMENT | LINE_COMMENT | XPAND_TAG_OPEN | XPAND_TAG_CLOSE );";
+		}
+	}
+
 }
\ No newline at end of file
diff --git a/plugins/org.eclipse.xtend/src/org/eclipse/internal/xtend/xtend/parser/XtendParser.java b/plugins/org.eclipse.xtend/src/org/eclipse/internal/xtend/xtend/parser/XtendParser.java
index f18df8c..606529c 100644
--- a/plugins/org.eclipse.xtend/src/org/eclipse/internal/xtend/xtend/parser/XtendParser.java
+++ b/plugins/org.eclipse.xtend/src/org/eclipse/internal/xtend/xtend/parser/XtendParser.java
@@ -1,4768 +1,4520 @@
-// $ANTLR 3.2 Sep 23, 2009 12:02:23 src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g 2013-02-20 13:52:02

-

-package org.eclipse.internal.xtend.xtend.parser;

-

-import java.util.List;

-

-import org.antlr.runtime.BaseRecognizer;

-import org.antlr.runtime.BitSet;

-import org.antlr.runtime.CommonToken;

-import org.antlr.runtime.DFA;

-import org.antlr.runtime.IntStream;

-import org.antlr.runtime.MismatchedSetException;

-import org.antlr.runtime.NoViableAltException;

-import org.antlr.runtime.Parser;

-import org.antlr.runtime.RecognitionException;

-import org.antlr.runtime.RecognizerSharedState;

-import org.antlr.runtime.Token;

-import org.antlr.runtime.TokenStream;

-import org.eclipse.emf.common.util.BasicEList;

-import org.eclipse.internal.xtend.expression.ast.Case;

-import org.eclipse.internal.xtend.expression.ast.DeclaredParameter;

-import org.eclipse.internal.xtend.expression.ast.Expression;

-import org.eclipse.internal.xtend.expression.ast.FeatureCall;

-import org.eclipse.internal.xtend.expression.ast.GlobalVarExpression;

-import org.eclipse.internal.xtend.expression.ast.Identifier;

-import org.eclipse.internal.xtend.expression.ast.SyntaxElement;

-import org.eclipse.internal.xtend.xtend.ast.AbstractExtension;

-import org.eclipse.internal.xtend.xtend.ast.Around;

-import org.eclipse.internal.xtend.xtend.ast.Check;

-import org.eclipse.internal.xtend.xtend.ast.Extension;

-import org.eclipse.internal.xtend.xtend.ast.ExtensionFile;

-import org.eclipse.internal.xtend.xtend.ast.ExtensionImportStatement;

-import org.eclipse.internal.xtend.xtend.ast.NamespaceImportStatement;

-

-@SuppressWarnings("all")

-public class XtendParser extends Parser {

-	public static final String[] tokenNames = new String[] { "<invalid>", "<EOR>", "<DOWN>", "<UP>", "StringLiteral", "IntLiteral", "Identifier",

-			"EscapeSequence", "UnicodeEscape", "OctalEscape", "HexDigit", "Letter", "JavaIDDigit", "WS", "COMMENT", "LINE_COMMENT", "XPAND_TAG_OPEN",

-			"XPAND_TAG_CLOSE", "'import'", "';'", "'extension'", "'reexport'", "'context'", "'#'", "'if'", "'ERROR'", "'WARNING'", "':'", "'around'",

-			"'('", "','", "'*'", "')'", "'::'", "'private'", "'cached'", "'JAVA'", "'.'", "'create'", "'Collection'", "'List'", "'Set'", "'let'",

-			"'='", "'->'", "'?'", "'then'", "'else'", "'switch'", "'{'", "'case'", "'default'", "'}'", "'||'", "'&&'", "'implies'", "'=='", "'!='",

-			"'>='", "'<='", "'>'", "'<'", "'+'", "'-'", "'/'", "'!'", "'GLOBALVAR'", "'new'", "'false'", "'true'", "'null'", "'typeSelect'",

-			"'collect'", "'select'", "'selectFirst'", "'reject'", "'exists'", "'notExists'", "'sortBy'", "'forAll'", "'|'", "'['", "']'" };

-	public static final int T__68 = 68;

-	public static final int T__69 = 69;

-	public static final int T__66 = 66;

-	public static final int T__67 = 67;

-	public static final int T__64 = 64;

-	public static final int T__29 = 29;

-	public static final int T__65 = 65;

-	public static final int T__28 = 28;

-	public static final int T__62 = 62;

-	public static final int T__27 = 27;

-	public static final int T__63 = 63;

-	public static final int T__26 = 26;

-	public static final int T__25 = 25;

-	public static final int T__24 = 24;

-	public static final int T__23 = 23;

-	public static final int T__22 = 22;

-	public static final int T__21 = 21;

-	public static final int T__20 = 20;

-	public static final int T__61 = 61;

-	public static final int T__60 = 60;

-	public static final int EOF = -1;

-	public static final int HexDigit = 10;

-	public static final int XPAND_TAG_CLOSE = 17;

-	public static final int Identifier = 6;

-	public static final int T__55 = 55;

-	public static final int T__19 = 19;

-	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__18 = 18;

-	public static final int T__53 = 53;

-	public static final int T__54 = 54;

-	public static final int T__59 = 59;

-	public static final int COMMENT = 14;

-	public static final int T__50 = 50;

-	public static final int T__42 = 42;

-	public static final int T__43 = 43;

-	public static final int T__40 = 40;

-	public static final int T__41 = 41;

-	public static final int T__80 = 80;

-	public static final int T__46 = 46;

-	public static final int T__81 = 81;

-	public static final int T__47 = 47;

-	public static final int XPAND_TAG_OPEN = 16;

-	public static final int T__82 = 82;

-	public static final int T__44 = 44;

-	public static final int T__45 = 45;

-	public static final int LINE_COMMENT = 15;

-	public static final int IntLiteral = 5;

-	public static final int T__48 = 48;

-	public static final int T__49 = 49;

-	public static final int StringLiteral = 4;

-	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 WS = 13;

-	public static final int T__71 = 71;

-	public static final int T__33 = 33;

-	public static final int T__72 = 72;

-	public static final int T__34 = 34;

-	public static final int T__35 = 35;

-	public static final int T__70 = 70;

-	public static final int T__36 = 36;

-	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 UnicodeEscape = 8;

-	public static final int JavaIDDigit = 12;

-	public static final int T__76 = 76;

-	public static final int T__75 = 75;

-	public static final int T__74 = 74;

-	public static final int Letter = 11;

-	public static final int OctalEscape = 9;

-	public static final int EscapeSequence = 7;

-	public static final int T__73 = 73;

-	public static final int T__79 = 79;

-	public static final int T__78 = 78;

-	public static final int T__77 = 77;

-

-	// delegates

-	// delegators

-

-	public XtendParser(final TokenStream input) {

-		this(input, new RecognizerSharedState());

-	}

-

-	public XtendParser(final TokenStream input, final RecognizerSharedState state) {

-		super(input, state);

-

-	}

-

-	public String[] getTokenNames() {

-		return XtendParser.tokenNames;

-	}

-

-	public String getGrammarFileName() {

-		return "src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g";

-	}

-

-	private ExtensionFactory factory = new ExtensionFactory();

-

-	public XtendParser(final TokenStream stream, final ExtensionFactory factory) {

-		this(stream);

-		if (factory != null) {

-			this.factory = factory;

-		}

-	}

-

-	protected Identifier id(final Token t) {

-		if (t == null) {

-			return null;

-		}

-		final CommonToken ct = (CommonToken) t;

-		final Identifier id = new Identifier(t.getText());

-		id.setStart(ct.getStartIndex());

-		id.setEnd(ct.getStopIndex());

-		id.setLine(ct.getLine());

-		return id;

-	}

-

-	private static final <T extends SyntaxElement> void addLocation(final T ele, final CommonToken start, final CommonToken end) {

-		if (ele != null) {

-			ele.setStart(start != null ? start.getStartIndex() : 0);

-			ele.setLine(start != null ? start.getLine() : 0);

-			ele.setEnd(end != null ? (end.getStopIndex() + 1) : -1);

-		}

-	}

-

-	@Override

-	public void reportError(final RecognitionException e) {

-		System.err.println(super.getErrorMessage(e, tokenNames));

-		throw new RuntimeException(e);

-	}

-

-	// $ANTLR start "file"

-	// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:57:1: file returns [ExtensionFile r] : (nsi= nsImport )* (exti= extImport )* (ext=

-	// extension | a= around | c= check )* EOF ;

-	public final ExtensionFile file() throws RecognitionException {

-		ExtensionFile r = null;

-

-		NamespaceImportStatement nsi = null;

-

-		ExtensionImportStatement exti = null;

-

-		Extension ext = null;

-

-		Around a = null;

-

-		Check c = null;

-

-		final CommonToken startToken = (CommonToken) input.LT(1);

-		final List<NamespaceImportStatement> nsimports = new BasicEList<NamespaceImportStatement>();

-		final List<ExtensionImportStatement> extimports = new BasicEList<ExtensionImportStatement>();

-		final List<Extension> extensions = new BasicEList<Extension>();

-		final List<Around> arounds = new BasicEList<Around>();

-		final List<Check> checks = new BasicEList<Check>();

-		try {

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:65:1: ( (nsi= nsImport )* (exti= extImport )* (ext= extension | a= around |

-			// c= check )* EOF )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:66:2: (nsi= nsImport )* (exti= extImport )* (ext= extension | a= around | c=

-			// check )* EOF

-			{

-				// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:66:2: (nsi= nsImport )*

-				loop1: do {

-					int alt1 = 2;

-					int LA1_0 = input.LA(1);

-

-					if ((LA1_0 == 18)) {

-						alt1 = 1;

-					}

-

-					switch (alt1) {

-					case 1:

-					// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:66:3: nsi= nsImport

-					{

-						pushFollow(FOLLOW_nsImport_in_file55);

-						nsi = nsImport();

-

-						state._fsp--;

-						if (state.failed) {

-							return r;

-						}

-						if (state.backtracking == 0) {

-							if (nsi != null) {

-								nsimports.add(nsi);

-							}

-						}

-

-					}

-						break;

-

-					default:

-						break loop1;

-					}

-				} while (true);

-

-				// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:67:2: (exti= extImport )*

-				loop2: do {

-					int alt2 = 2;

-					int LA2_0 = input.LA(1);

-

-					if ((LA2_0 == 20)) {

-						alt2 = 1;

-					}

-

-					switch (alt2) {

-					case 1:

-					// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:67:3: exti= extImport

-					{

-						pushFollow(FOLLOW_extImport_in_file65);

-						exti = extImport();

-

-						state._fsp--;

-						if (state.failed) {

-							return r;

-						}

-						if (state.backtracking == 0) {

-							if (exti != null) {

-								extimports.add(exti);

-							}

-						}

-

-					}

-						break;

-

-					default:

-						break loop2;

-					}

-				} while (true);

-

-				// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:68:2: (ext= extension | a= around | c= check )*

-				loop3: do {

-					int alt3 = 4;

-					switch (input.LA(1)) {

-					case Identifier:

-					case 34:

-					case 35:

-					case 38:

-					case 39:

-					case 40:

-					case 41: {

-						alt3 = 1;

-					}

-						break;

-					case 28: {

-						alt3 = 2;

-					}

-						break;

-					case 22: {

-						alt3 = 3;

-					}

-						break;

-

-					}

-

-					switch (alt3) {

-					case 1:

-					// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:68:3: ext= extension

-					{

-						pushFollow(FOLLOW_extension_in_file75);

-						ext = extension();

-

-						state._fsp--;

-						if (state.failed) {

-							return r;

-						}

-						if (state.backtracking == 0) {

-							if (ext != null) {

-								extensions.add(ext);

-							}

-						}

-

-					}

-						break;

-					case 2:

-					// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:68:56: a= around

-					{

-						pushFollow(FOLLOW_around_in_file85);

-						a = around();

-

-						state._fsp--;

-						if (state.failed) {

-							return r;

-						}

-						if (state.backtracking == 0) {

-							if (a != null) {

-								arounds.add(a);

-							}

-						}

-

-					}

-						break;

-					case 3:

-					// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:68:100: c= check

-					{

-						pushFollow(FOLLOW_check_in_file95);

-						c = check();

-

-						state._fsp--;

-						if (state.failed) {

-							return r;

-						}

-						if (state.backtracking == 0) {

-							if (c != null) {

-								checks.add(c);

-							}

-						}

-

-					}

-						break;

-

-					default:

-						break loop3;

-					}

-				} while (true);

-

-				match(input, EOF, FOLLOW_EOF_in_file103);

-				if (state.failed) {

-					return r;

-				}

-				if (state.backtracking == 0) {

-					r = factory.createExtensionFile(nsimports, extimports, extensions, arounds, checks);

-				}

-

-			}

-

-			if (state.backtracking == 0) {

-				addLocation(r, startToken, /* endToken */(CommonToken) input.LT(-1));

-			}

-		} catch (RecognitionException re) {

-			reportError(re);

-			recover(input, re);

-		} finally {

-		}

-		return r;

-	}

-

-	// $ANTLR end "file"

-

-	// $ANTLR start "nsImport"

-	// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:74:1: nsImport returns [NamespaceImportStatement r] : 'import' t= type ';' ;

-	public final NamespaceImportStatement nsImport() throws RecognitionException {

-		NamespaceImportStatement r = null;

-

-		Identifier t = null;

-

-		final CommonToken startToken = (CommonToken) input.LT(1);

-		try {

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:77:1: ( 'import' t= type ';' )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:78:2: 'import' t= type ';'

-			{

-				match(input, 18, FOLLOW_18_in_nsImport131);

-				if (state.failed) {

-					return r;

-				}

-				pushFollow(FOLLOW_type_in_nsImport135);

-				t = type();

-

-				state._fsp--;

-				if (state.failed) {

-					return r;

-				}

-				if (state.backtracking == 0) {

-					r = factory.createNsImport(t);

-				}

-				match(input, 19, FOLLOW_19_in_nsImport139);

-				if (state.failed) {

-					return r;

-				}

-

-			}

-

-			if (state.backtracking == 0) {

-				addLocation(r, startToken, /* endToken */(CommonToken) input.LT(-1));

-			}

-		} catch (RecognitionException re) {

-			reportError(re);

-			recover(input, re);

-		} finally {

-		}

-		return r;

-	}

-

-	// $ANTLR end "nsImport"

-

-	// $ANTLR start "extImport"

-	// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:82:1: extImport returns [ExtensionImportStatement r] : 'extension' t= type

-	// (exported= 'reexport' )? ';' ;

-	public final ExtensionImportStatement extImport() throws RecognitionException {

-		ExtensionImportStatement r = null;

-

-		Token exported = null;

-		Identifier t = null;

-

-		final CommonToken startToken = (CommonToken) input.LT(1);

-		try {

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:85:1: ( 'extension' t= type (exported= 'reexport' )? ';' )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:86:2: 'extension' t= type (exported= 'reexport' )? ';'

-			{

-				match(input, 20, FOLLOW_20_in_extImport164);

-				if (state.failed) {

-					return r;

-				}

-				pushFollow(FOLLOW_type_in_extImport168);

-				t = type();

-

-				state._fsp--;

-				if (state.failed) {

-					return r;

-				}

-				// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:86:21: (exported= 'reexport' )?

-				int alt4 = 2;

-				int LA4_0 = input.LA(1);

-

-				if ((LA4_0 == 21)) {

-					alt4 = 1;

-				}

-				switch (alt4) {

-				case 1:

-				// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:86:22: exported= 'reexport'

-				{

-					exported = (Token) match(input, 21, FOLLOW_21_in_extImport173);

-					if (state.failed) {

-						return r;

-					}

-

-				}

-					break;

-

-				}

-

-				match(input, 19, FOLLOW_19_in_extImport177);

-				if (state.failed) {

-					return r;

-				}

-				if (state.backtracking == 0) {

-					r = factory.createExtensionFileImport(t, id(exported));

-				}

-

-			}

-

-			if (state.backtracking == 0) {

-				addLocation(r, startToken, /* endToken */(CommonToken) input.LT(-1));

-			}

-		} catch (RecognitionException re) {

-			reportError(re);

-			recover(input, re);

-		} finally {

-		}

-		return r;

-	}

-

-	// $ANTLR end "extImport"

-

-	// $ANTLR start "check"

-	// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:90:1: check returns [Check ext] : 'context' t= type ( '#' f= identifier )? ( 'if'

-	// guard= expression )? (sev1= 'ERROR' | 'WARNING' ) msg= expression ':' expr= expression ';' ;

-	public final Check check() throws RecognitionException {

-		Check ext = null;

-

-		Token sev1 = null;

-		Identifier t = null;

-

-		Identifier f = null;

-

-		Expression guard = null;

-

-		Expression msg = null;

-

-		Expression expr = null;

-

-		final CommonToken startToken = (CommonToken) input.LT(1);

-		try {

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:93:1: ( 'context' t= type ( '#' f= identifier )? ( 'if' guard= expression )?

-			// (sev1= 'ERROR' | 'WARNING' ) msg= expression ':' expr= expression ';' )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:94:2: 'context' t= type ( '#' f= identifier )? ( 'if' guard= expression )?

-			// (sev1= 'ERROR' | 'WARNING' ) msg= expression ':' expr= expression ';'

-			{

-				match(input, 22, FOLLOW_22_in_check202);

-				if (state.failed) {

-					return ext;

-				}

-				pushFollow(FOLLOW_type_in_check206);

-				t = type();

-

-				state._fsp--;

-				if (state.failed) {

-					return ext;

-				}

-				// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:94:18: ( '#' f= identifier )?

-				int alt5 = 2;

-				int LA5_0 = input.LA(1);

-

-				if ((LA5_0 == 23)) {

-					alt5 = 1;

-				}

-				switch (alt5) {

-				case 1:

-				// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:94:19: '#' f= identifier

-				{

-					match(input, 23, FOLLOW_23_in_check208);

-					if (state.failed) {

-						return ext;

-					}

-					pushFollow(FOLLOW_identifier_in_check211);

-					f = identifier();

-

-					state._fsp--;

-					if (state.failed) {

-						return ext;

-					}

-

-				}

-					break;

-

-				}

-

-				// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:94:37: ( 'if' guard= expression )?

-				int alt6 = 2;

-				int LA6_0 = input.LA(1);

-

-				if ((LA6_0 == 24)) {

-					alt6 = 1;

-				}

-				switch (alt6) {

-				case 1:

-				// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:94:38: 'if' guard= expression

-				{

-					match(input, 24, FOLLOW_24_in_check216);

-					if (state.failed) {

-						return ext;

-					}

-					pushFollow(FOLLOW_expression_in_check220);

-					guard = expression();

-

-					state._fsp--;

-					if (state.failed) {

-						return ext;

-					}

-

-				}

-					break;

-

-				}

-

-				// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:94:62: (sev1= 'ERROR' | 'WARNING' )

-				int alt7 = 2;

-				int LA7_0 = input.LA(1);

-

-				if ((LA7_0 == 25)) {

-					alt7 = 1;

-				} else if ((LA7_0 == 26)) {

-					alt7 = 2;

-				} else {

-					if (state.backtracking > 0) {

-						state.failed = true;

-						return ext;

-					}

-					NoViableAltException nvae = new NoViableAltException("", 7, 0, input);

-

-					throw nvae;

-				}

-				switch (alt7) {

-				case 1:

-				// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:94:63: sev1= 'ERROR'

-				{

-					sev1 = (Token) match(input, 25, FOLLOW_25_in_check227);

-					if (state.failed) {

-						return ext;

-					}

-

-				}

-					break;

-				case 2:

-				// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:94:76: 'WARNING'

-				{

-					match(input, 26, FOLLOW_26_in_check229);

-					if (state.failed) {

-						return ext;

-					}

-

-				}

-					break;

-

-				}

-

-				pushFollow(FOLLOW_expression_in_check234);

-				msg = expression();

-

-				state._fsp--;

-				if (state.failed) {

-					return ext;

-				}

-				match(input, 27, FOLLOW_27_in_check236);

-				if (state.failed) {

-					return ext;

-				}

-				pushFollow(FOLLOW_expression_in_check241);

-				expr = expression();

-

-				state._fsp--;

-				if (state.failed) {

-					return ext;

-				}

-				match(input, 19, FOLLOW_19_in_check243);

-				if (state.failed) {

-					return ext;

-				}

-				if (state.backtracking == 0) {

-					ext = factory.createCheck(t, f, guard, sev1 != null, msg, expr);

-				}

-

-			}

-

-			if (state.backtracking == 0) {

-				addLocation(ext, startToken, /* endToken */(CommonToken) input.LT(-1));

-			}

-		} catch (RecognitionException re) {

-			reportError(re);

-			recover(input, re);

-		} finally {

-		}

-		return ext;

-	}

-

-	// $ANTLR end "check"

-

-	// $ANTLR start "around"

-	// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:99:1: around returns [Around r] : 'around' pc= pointcut '(' (p=

-	// declaredParameterList ( ( ',' )? wildparams= '*' )? | wildparams= '*' )? ')' ':' expr= expression ';' ;

-	public final Around around() throws RecognitionException {

-		Around r = null;

-

-		Token wildparams = null;

-		Identifier pc = null;

-

-		List<DeclaredParameter> p = null;

-

-		Expression expr = null;

-

-		final CommonToken startToken = (CommonToken) input.LT(1);

-		try {

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:102:1: ( 'around' pc= pointcut '(' (p= declaredParameterList ( ( ',' )?

-			// wildparams= '*' )? | wildparams= '*' )? ')' ':' expr= expression ';' )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:103:5: 'around' pc= pointcut '(' (p= declaredParameterList ( ( ',' )?

-			// wildparams= '*' )? | wildparams= '*' )? ')' ':' expr= expression ';'

-			{

-				match(input, 28, FOLLOW_28_in_around272);

-				if (state.failed) {

-					return r;

-				}

-				pushFollow(FOLLOW_pointcut_in_around276);

-				pc = pointcut();

-

-				state._fsp--;

-				if (state.failed) {

-					return r;

-				}

-				match(input, 29, FOLLOW_29_in_around278);

-				if (state.failed) {

-					return r;

-				}

-				// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:103:30: (p= declaredParameterList ( ( ',' )? wildparams= '*' )? |

-				// wildparams= '*' )?

-				int alt10 = 3;

-				int LA10_0 = input.LA(1);

-

-				if (((LA10_0 == Identifier) || ((LA10_0 >= 39) && (LA10_0 <= 41)))) {

-					alt10 = 1;

-				} else if ((LA10_0 == 31)) {

-					alt10 = 2;

-				}

-				switch (alt10) {

-				case 1:

-				// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:103:31: p= declaredParameterList ( ( ',' )? wildparams= '*' )?

-				{

-					pushFollow(FOLLOW_declaredParameterList_in_around283);

-					p = declaredParameterList();

-

-					state._fsp--;

-					if (state.failed) {

-						return r;

-					}

-					// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:103:55: ( ( ',' )? wildparams= '*' )?

-					int alt9 = 2;

-					int LA9_0 = input.LA(1);

-

-					if ((((LA9_0 >= 30) && (LA9_0 <= 31)))) {

-						alt9 = 1;

-					}

-					switch (alt9) {

-					case 1:

-					// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:103:56: ( ',' )? wildparams= '*'

-					{

-						// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:103:56: ( ',' )?

-						int alt8 = 2;

-						int LA8_0 = input.LA(1);

-

-						if ((LA8_0 == 30)) {

-							alt8 = 1;

-						}

-						switch (alt8) {

-						case 1:

-						// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:103:56: ','

-						{

-							match(input, 30, FOLLOW_30_in_around286);

-							if (state.failed) {

-								return r;

-							}

-

-						}

-							break;

-

-						}

-

-						wildparams = (Token) match(input, 31, FOLLOW_31_in_around291);

-						if (state.failed) {

-							return r;

-						}

-

-					}

-						break;

-

-					}

-

-				}

-					break;

-				case 2:

-				// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:103:80: wildparams= '*'

-				{

-					wildparams = (Token) match(input, 31, FOLLOW_31_in_around299);

-					if (state.failed) {

-						return r;

-					}

-

-				}

-					break;

-

-				}

-

-				match(input, 32, FOLLOW_32_in_around303);

-				if (state.failed) {

-					return r;

-				}

-				match(input, 27, FOLLOW_27_in_around305);

-				if (state.failed) {

-					return r;

-				}

-				pushFollow(FOLLOW_expression_in_around314);

-				expr = expression();

-

-				state._fsp--;

-				if (state.failed) {

-					return r;

-				}

-				match(input, 19, FOLLOW_19_in_around316);

-				if (state.failed) {

-					return r;

-				}

-				if (state.backtracking == 0) {

-					r = factory.createAround(pc, p, wildparams != null, expr);

-				}

-

-			}

-

-			if (state.backtracking == 0) {

-				addLocation(r, startToken, /* endToken */(CommonToken) input.LT(-1));

-			}

-		} catch (RecognitionException re) {

-			reportError(re);

-			recover(input, re);

-		} finally {

-		}

-		return r;

-	}

-

-	// $ANTLR end "around"

-

-	// $ANTLR start "pointcut"

-	// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:108:1: pointcut returns [Identifier r] : (a= '*' | b= identifier ) (a1= '*' | b1=

-	// identifier | c1= '::' )* ;

-	public final Identifier pointcut() throws RecognitionException {

-		Identifier r = null;

-

-		Token a = null;

-		Token a1 = null;

-		Token c1 = null;

-		Identifier b = null;

-

-		Identifier b1 = null;

-

-		final CommonToken startToken = (CommonToken) input.LT(1);

-		try {

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:111:1: ( (a= '*' | b= identifier ) (a1= '*' | b1= identifier | c1= '::' )* )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:112:2: (a= '*' | b= identifier ) (a1= '*' | b1= identifier | c1= '::' )*

-			{

-				// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:112:2: (a= '*' | b= identifier )

-				int alt11 = 2;

-				int LA11_0 = input.LA(1);

-

-				if ((LA11_0 == 31)) {

-					alt11 = 1;

-				} else if ((LA11_0 == Identifier)) {

-					alt11 = 2;

-				} else {

-					if (state.backtracking > 0) {

-						state.failed = true;

-						return r;

-					}

-					NoViableAltException nvae = new NoViableAltException("", 11, 0, input);

-

-					throw nvae;

-				}

-				switch (alt11) {

-				case 1:

-				// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:112:4: a= '*'

-				{

-					a = (Token) match(input, 31, FOLLOW_31_in_pointcut352);

-					if (state.failed) {

-						return r;

-					}

-					if (state.backtracking == 0) {

-						r = id(a);

-					}

-

-				}

-					break;

-				case 2:

-				// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:113:4: b= identifier

-				{

-					pushFollow(FOLLOW_identifier_in_pointcut361);

-					b = identifier();

-

-					state._fsp--;

-					if (state.failed) {

-						return r;

-					}

-					if (state.backtracking == 0) {

-						r = b;

-					}

-

-				}

-					break;

-

-				}

-

-				// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:114:4: (a1= '*' | b1= identifier | c1= '::' )*

-				loop12: do {

-					int alt12 = 4;

-					switch (input.LA(1)) {

-					case 31: {

-						alt12 = 1;

-					}

-						break;

-					case Identifier: {

-						alt12 = 2;

-					}

-						break;

-					case 33: {

-						alt12 = 3;

-					}

-						break;

-

-					}

-

-					switch (alt12) {

-					case 1:

-					// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:114:6: a1= '*'

-					{

-						a1 = (Token) match(input, 31, FOLLOW_31_in_pointcut372);

-						if (state.failed) {

-							return r;

-						}

-						if (state.backtracking == 0) {

-							if (r != null) {

-								r.append(id(a1));

-							}

-						}

-

-					}

-						break;

-					case 2:

-					// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:115:6: b1= identifier

-					{

-						pushFollow(FOLLOW_identifier_in_pointcut383);

-						b1 = identifier();

-

-						state._fsp--;

-						if (state.failed) {

-							return r;

-						}

-						if (state.backtracking == 0) {

-							if (r != null) {

-								r.append(b1);

-							}

-						}

-

-					}

-						break;

-					case 3:

-					// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:116:6: c1= '::'

-					{

-						c1 = (Token) match(input, 33, FOLLOW_33_in_pointcut394);

-						if (state.failed) {

-							return r;

-						}

-						if (state.backtracking == 0) {

-							if (r != null) {

-								r.append(id(c1));

-							}

-						}

-

-					}

-						break;

-

-					default:

-						break loop12;

-					}

-				} while (true);

-

-			}

-

-			if (state.backtracking == 0) {

-				addLocation(r, startToken, /* endToken */(CommonToken) input.LT(-1));

-			}

-		} catch (RecognitionException re) {

-			reportError(re);

-			recover(input, re);

-		} finally {

-		}

-		return r;

-	}

-

-	// $ANTLR end "pointcut"

-

-	// $ANTLR start "extension"

-	// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:121:1: extension returns [Extension r] : ( (priv= 'private' )? (cached= 'cached' )?

-	// (rType= type )? name= identifier '(' (params= declaredParameterList )? ')' ':' ( 'JAVA' jt= javaType '.' m= identifier '(' (pt= javaType ( ','

-	// pt= javaType )* )? ')' ';' | expr= expression ';' ) | (priv= 'private' )? create= 'create' rType= type (rtn= identifier )? name= identifier '('

-	// (params= declaredParameterList )? ')' ':' expr= expression ';' );

-	public final Extension extension() throws RecognitionException {

-		Extension r = null;

-

-		Token priv = null;

-		Token cached = null;

-		Token create = null;

-		Identifier rType = null;

-

-		Identifier name = null;

-

-		List<DeclaredParameter> params = null;

-

-		Identifier jt = null;

-

-		Identifier m = null;

-

-		Identifier pt = null;

-

-		Expression expr = null;

-

-		Identifier rtn = null;

-

-		final CommonToken startToken = (CommonToken) input.LT(1);

-		final List<Identifier> javaParamTypes = new BasicEList<Identifier>();

-		try {

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:125:1: ( (priv= 'private' )? (cached= 'cached' )? (rType= type )? name=

-			// identifier '(' (params= declaredParameterList )? ')' ':' ( 'JAVA' jt= javaType '.' m= identifier '(' (pt= javaType ( ',' pt= javaType

-			// )* )? ')' ';' | expr= expression ';' ) | (priv= 'private' )? create= 'create' rType= type (rtn= identifier )? name= identifier '('

-			// (params= declaredParameterList )? ')' ':' expr= expression ';' )

-			int alt23 = 2;

-			switch (input.LA(1)) {

-			case 34: {

-				int LA23_1 = input.LA(2);

-

-				if (((LA23_1 == Identifier) || (LA23_1 == 35) || ((LA23_1 >= 39) && (LA23_1 <= 41)))) {

-					alt23 = 1;

-				} else if ((LA23_1 == 38)) {

-					alt23 = 2;

-				} else {

-					if (state.backtracking > 0) {

-						state.failed = true;

-						return r;

-					}

-					NoViableAltException nvae = new NoViableAltException("", 23, 1, input);

-

-					throw nvae;

-				}

-			}

-				break;

-			case Identifier:

-			case 35:

-			case 39:

-			case 40:

-			case 41: {

-				alt23 = 1;

-			}

-				break;

-			case 38: {

-				alt23 = 2;

-			}

-				break;

-			default:

-				if (state.backtracking > 0) {

-					state.failed = true;

-					return r;

-				}

-				NoViableAltException nvae = new NoViableAltException("", 23, 0, input);

-

-				throw nvae;

-			}

-

-			switch (alt23) {

-			case 1:

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:126:2: (priv= 'private' )? (cached= 'cached' )? (rType= type )? name=

-			// identifier '(' (params= declaredParameterList )? ')' ':' ( 'JAVA' jt= javaType '.' m= identifier '(' (pt= javaType ( ',' pt= javaType

-			// )* )? ')' ';' | expr= expression ';' )

-			{

-				// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:126:2: (priv= 'private' )?

-				int alt13 = 2;

-				int LA13_0 = input.LA(1);

-

-				if ((LA13_0 == 34)) {

-					alt13 = 1;

-				}

-				switch (alt13) {

-				case 1:

-				// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:126:3: priv= 'private'

-				{

-					priv = (Token) match(input, 34, FOLLOW_34_in_extension426);

-					if (state.failed) {

-						return r;

-					}

-

-				}

-					break;

-

-				}

-

-				// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:126:20: (cached= 'cached' )?

-				int alt14 = 2;

-				int LA14_0 = input.LA(1);

-

-				if ((LA14_0 == 35)) {

-					alt14 = 1;

-				}

-				switch (alt14) {

-				case 1:

-				// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:126:21: cached= 'cached'

-				{

-					cached = (Token) match(input, 35, FOLLOW_35_in_extension433);

-					if (state.failed) {

-						return r;

-					}

-

-				}

-					break;

-

-				}

-

-				// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:126:39: (rType= type )?

-				int alt15 = 2;

-				int LA15_0 = input.LA(1);

-

-				if ((((LA15_0 >= 39) && (LA15_0 <= 41)))) {

-					alt15 = 1;

-				} else if ((LA15_0 == Identifier)) {

-					int LA15_2 = input.LA(2);

-

-					if (((LA15_2 == Identifier) || (LA15_2 == 33))) {

-						alt15 = 1;

-					}

-				}

-				switch (alt15) {

-				case 1:

-				// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:126:40: rType= type

-				{

-					pushFollow(FOLLOW_type_in_extension440);

-					rType = type();

-

-					state._fsp--;

-					if (state.failed) {

-						return r;

-					}

-

-				}

-					break;

-

-				}

-

-				pushFollow(FOLLOW_identifier_in_extension446);

-				name = identifier();

-

-				state._fsp--;

-				if (state.failed) {

-					return r;

-				}

-				match(input, 29, FOLLOW_29_in_extension448);

-				if (state.failed) {

-					return r;

-				}

-				// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:126:73: (params= declaredParameterList )?

-				int alt16 = 2;

-				int LA16_0 = input.LA(1);

-

-				if (((LA16_0 == Identifier) || ((LA16_0 >= 39) && (LA16_0 <= 41)))) {

-					alt16 = 1;

-				}

-				switch (alt16) {

-				case 1:

-				// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:126:74: params= declaredParameterList

-				{

-					pushFollow(FOLLOW_declaredParameterList_in_extension453);

-					params = declaredParameterList();

-

-					state._fsp--;

-					if (state.failed) {

-						return r;

-					}

-

-				}

-					break;

-

-				}

-

-				match(input, 32, FOLLOW_32_in_extension457);

-				if (state.failed) {

-					return r;

-				}

-				match(input, 27, FOLLOW_27_in_extension459);

-				if (state.failed) {

-					return r;

-				}

-				// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:128:2: ( 'JAVA' jt= javaType '.' m= identifier '(' (pt= javaType ( ','

-				// pt= javaType )* )? ')' ';' | expr= expression ';' )

-				int alt19 = 2;

-				int LA19_0 = input.LA(1);

-

-				if ((LA19_0 == 36)) {

-					alt19 = 1;

-				} else if ((((LA19_0 >= StringLiteral) && (LA19_0 <= Identifier)) || (LA19_0 == 24) || (LA19_0 == 29)

-						|| ((LA19_0 >= 39) && (LA19_0 <= 42)) || ((LA19_0 >= 48) && (LA19_0 <= 49)) || (LA19_0 == 63) || ((LA19_0 >= 65) && (LA19_0 <= 79)))) {

-					alt19 = 2;

-				} else {

-					if (state.backtracking > 0) {

-						state.failed = true;

-						return r;

-					}

-					NoViableAltException nvae = new NoViableAltException("", 19, 0, input);

-

-					throw nvae;

-				}

-				switch (alt19) {

-				case 1:

-				// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:128:4: 'JAVA' jt= javaType '.' m= identifier '(' (pt= javaType ( ',' pt=

-				// javaType )* )? ')' ';'

-				{

-					match(input, 36, FOLLOW_36_in_extension466);

-					if (state.failed) {

-						return r;

-					}

-					pushFollow(FOLLOW_javaType_in_extension470);

-					jt = javaType();

-

-					state._fsp--;

-					if (state.failed) {

-						return r;

-					}

-					match(input, 37, FOLLOW_37_in_extension472);

-					if (state.failed) {

-						return r;

-					}

-					pushFollow(FOLLOW_identifier_in_extension476);

-					m = identifier();

-

-					state._fsp--;

-					if (state.failed) {

-						return r;

-					}

-					match(input, 29, FOLLOW_29_in_extension478);

-					if (state.failed) {

-						return r;

-					}

-					// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:128:43: (pt= javaType ( ',' pt= javaType )* )?

-					int alt18 = 2;

-					int LA18_0 = input.LA(1);

-

-					if ((LA18_0 == Identifier)) {

-						alt18 = 1;

-					}

-					switch (alt18) {

-					case 1:

-					// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:128:44: pt= javaType ( ',' pt= javaType )*

-					{

-						pushFollow(FOLLOW_javaType_in_extension482);

-						pt = javaType();

-

-						state._fsp--;

-						if (state.failed) {

-							return r;

-						}

-						if (state.backtracking == 0) {

-							if (pt != null) {

-								javaParamTypes.add(pt);

-							}

-						}

-						// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:128:95: ( ',' pt= javaType )*

-						loop17: do {

-							int alt17 = 2;

-							int LA17_0 = input.LA(1);

-

-							if ((LA17_0 == 30)) {

-								alt17 = 1;

-							}

-

-							switch (alt17) {

-							case 1:

-							// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:128:96: ',' pt= javaType

-							{

-								match(input, 30, FOLLOW_30_in_extension486);

-								if (state.failed) {

-									return r;

-								}

-								pushFollow(FOLLOW_javaType_in_extension490);

-								pt = javaType();

-

-								state._fsp--;

-								if (state.failed) {

-									return r;

-								}

-								if (state.backtracking == 0) {

-									if (pt != null) {

-										javaParamTypes.add(pt);

-									}

-								}

-

-							}

-								break;

-

-							default:

-								break loop17;

-							}

-						} while (true);

-

-					}

-						break;

-

-					}

-

-					match(input, 32, FOLLOW_32_in_extension498);

-					if (state.failed) {

-						return r;

-					}

-					match(input, 19, FOLLOW_19_in_extension500);

-					if (state.failed) {

-						return r;

-					}

-					if (state.backtracking == 0) {

-						r = factory.createJavaExtension(name, rType, params, jt, m, javaParamTypes, id(cached), id(priv));

-					}

-

-				}

-					break;

-				case 2:

-				// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:130:4: expr= expression ';'

-				{

-					pushFollow(FOLLOW_expression_in_extension510);

-					expr = expression();

-

-					state._fsp--;

-					if (state.failed) {

-						return r;

-					}

-					match(input, 19, FOLLOW_19_in_extension512);

-					if (state.failed) {

-						return r;

-					}

-					if (state.backtracking == 0) {

-						r = factory.createExpressionExtension(name, rType, params, expr, id(cached), id(priv));

-					}

-

-				}

-					break;

-

-				}

-

-			}

-				break;

-			case 2:

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:134:3: (priv= 'private' )? create= 'create' rType= type (rtn= identifier )?

-			// name= identifier '(' (params= declaredParameterList )? ')' ':' expr= expression ';'

-			{

-				// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:134:3: (priv= 'private' )?

-				int alt20 = 2;

-				int LA20_0 = input.LA(1);

-

-				if ((LA20_0 == 34)) {

-					alt20 = 1;

-				}

-				switch (alt20) {

-				case 1:

-				// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:134:4: priv= 'private'

-				{

-					priv = (Token) match(input, 34, FOLLOW_34_in_extension526);

-					if (state.failed) {

-						return r;

-					}

-

-				}

-					break;

-

-				}

-

-				create = (Token) match(input, 38, FOLLOW_38_in_extension532);

-				if (state.failed) {

-					return r;

-				}

-				pushFollow(FOLLOW_type_in_extension536);

-				rType = type();

-

-				state._fsp--;

-				if (state.failed) {

-					return r;

-				}

-				// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:134:48: (rtn= identifier )?

-				int alt21 = 2;

-				int LA21_0 = input.LA(1);

-

-				if ((LA21_0 == Identifier)) {

-					int LA21_1 = input.LA(2);

-

-					if ((LA21_1 == Identifier)) {

-						alt21 = 1;

-					}

-				}

-				switch (alt21) {

-				case 1:

-				// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:134:49: rtn= identifier

-				{

-					pushFollow(FOLLOW_identifier_in_extension541);

-					rtn = identifier();

-

-					state._fsp--;

-					if (state.failed) {

-						return r;

-					}

-

-				}

-					break;

-

-				}

-

-				pushFollow(FOLLOW_identifier_in_extension547);

-				name = identifier();

-

-				state._fsp--;

-				if (state.failed) {

-					return r;

-				}

-				match(input, 29, FOLLOW_29_in_extension549);

-				if (state.failed) {

-					return r;

-				}

-				// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:134:86: (params= declaredParameterList )?

-				int alt22 = 2;

-				int LA22_0 = input.LA(1);

-

-				if (((LA22_0 == Identifier) || ((LA22_0 >= 39) && (LA22_0 <= 41)))) {

-					alt22 = 1;

-				}

-				switch (alt22) {

-				case 1:

-				// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:134:87: params= declaredParameterList

-				{

-					pushFollow(FOLLOW_declaredParameterList_in_extension554);

-					params = declaredParameterList();

-

-					state._fsp--;

-					if (state.failed) {

-						return r;

-					}

-

-				}

-					break;

-

-				}

-

-				match(input, 32, FOLLOW_32_in_extension558);

-				if (state.failed) {

-					return r;

-				}

-				match(input, 27, FOLLOW_27_in_extension560);

-				if (state.failed) {

-					return r;

-				}

-				pushFollow(FOLLOW_expression_in_extension566);

-				expr = expression();

-

-				state._fsp--;

-				if (state.failed) {

-					return r;

-				}

-				match(input, 19, FOLLOW_19_in_extension568);

-				if (state.failed) {

-					return r;

-				}

-				if (state.backtracking == 0) {

-					r = factory.createCreateExtension(id(create), rType, rtn, name, params, expr, id(priv));

-				}

-

-			}

-				break;

-

-			}

-			if (state.backtracking == 0) {

-				addLocation((AbstractExtension) r, startToken, /* endToken */(CommonToken) input.LT(-1));

-			}

-		} catch (RecognitionException re) {

-			reportError(re);

-			recover(input, re);

-		} finally {

-		}

-		return r;

-	}

-

-	// $ANTLR end "extension"

-

-	// $ANTLR start "javaType"

-	// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:140:1: javaType returns [Identifier r] : i= identifier (d= '.' (i1= identifier | i2=

-	// 'Collection' | i3= 'List' | i4= 'Set' ) )* ;

-	public final Identifier javaType() throws RecognitionException {

-		Identifier r = null;

-

-		Token d = null;

-		Token i2 = null;

-		Token i3 = null;

-		Token i4 = null;

-		Identifier i = null;

-

-		Identifier i1 = null;

-

-		final CommonToken startToken = (CommonToken) input.LT(1);

-		try {

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:143:1: (i= identifier (d= '.' (i1= identifier | i2= 'Collection' | i3=

-			// 'List' | i4= 'Set' ) )* )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:144:2: i= identifier (d= '.' (i1= identifier | i2= 'Collection' | i3= 'List'

-			// | i4= 'Set' ) )*

-			{

-				pushFollow(FOLLOW_identifier_in_javaType598);

-				i = identifier();

-

-				state._fsp--;

-				if (state.failed) {

-					return r;

-				}

-				if (state.backtracking == 0) {

-					r = i;

-				}

-				// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:145:2: (d= '.' (i1= identifier | i2= 'Collection' | i3= 'List' | i4=

-				// 'Set' ) )*

-				loop25: do {

-					int alt25 = 2;

-					int LA25_0 = input.LA(1);

-

-					if ((LA25_0 == 37)) {

-						int LA25_1 = input.LA(2);

-

-						if ((LA25_1 == Identifier)) {

-							int LA25_3 = input.LA(3);

-

-							if (((LA25_3 == 30) || (LA25_3 == 32) || (LA25_3 == 37))) {

-								alt25 = 1;

-							}

-

-						} else if ((((LA25_1 >= 39) && (LA25_1 <= 41)))) {

-							alt25 = 1;

-						}

-

-					}

-

-					switch (alt25) {

-					case 1:

-					// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:145:3: d= '.' (i1= identifier | i2= 'Collection' | i3= 'List' | i4=

-					// 'Set' )

-					{

-						d = (Token) match(input, 37, FOLLOW_37_in_javaType607);

-						if (state.failed) {

-							return r;

-						}

-						if (state.backtracking == 0) {

-							if (r != null) {

-								r.append(id(d));

-							}

-						}

-						// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:145:41: (i1= identifier | i2= 'Collection' | i3= 'List' | i4=

-						// 'Set' )

-						int alt24 = 4;

-						switch (input.LA(1)) {

-						case Identifier: {

-							alt24 = 1;

-						}

-							break;

-						case 39: {

-							alt24 = 2;

-						}

-							break;

-						case 40: {

-							alt24 = 3;

-						}

-							break;

-						case 41: {

-							alt24 = 4;

-						}

-							break;

-						default:

-							if (state.backtracking > 0) {

-								state.failed = true;

-								return r;

-							}

-							NoViableAltException nvae = new NoViableAltException("", 24, 0, input);

-

-							throw nvae;

-						}

-

-						switch (alt24) {

-						case 1:

-						// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:145:42: i1= identifier

-						{

-							pushFollow(FOLLOW_identifier_in_javaType613);

-							i1 = identifier();

-

-							state._fsp--;

-							if (state.failed) {

-								return r;

-							}

-							if (state.backtracking == 0) {

-								if (r != null) {

-									r.append(i1);

-								}

-							}

-

-						}

-							break;

-						case 2:

-						// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:145:86: i2= 'Collection'

-						{

-							i2 = (Token) match(input, 39, FOLLOW_39_in_javaType619);

-							if (state.failed) {

-								return r;

-							}

-							if (state.backtracking == 0) {

-								r.append(id(i2));

-							}

-

-						}

-							break;

-						case 3:

-						// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:146:2: i3= 'List'

-						{

-							i3 = (Token) match(input, 40, FOLLOW_40_in_javaType628);

-							if (state.failed) {

-								return r;

-							}

-							if (state.backtracking == 0) {

-								if (r != null) {

-									r.append(id(i3));

-								}

-							}

-

-						}

-							break;

-						case 4:

-						// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:146:46: i4= 'Set'

-						{

-							i4 = (Token) match(input, 41, FOLLOW_41_in_javaType634);

-							if (state.failed) {

-								return r;

-							}

-							if (state.backtracking == 0) {

-								if (r != null) {

-									r.append(id(i4));

-								}

-							}

-

-						}

-							break;

-

-						}

-

-					}

-						break;

-

-					default:

-						break loop25;

-					}

-				} while (true);

-

-			}

-

-			if (state.backtracking == 0) {

-				addLocation(r, startToken, /* endToken */(CommonToken) input.LT(-1));

-			}

-		} catch (RecognitionException re) {

-			reportError(re);

-			recover(input, re);

-		} finally {

-		}

-		return r;

-	}

-

-	// $ANTLR end "javaType"

-

-	// $ANTLR start "expression"

-	// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:152:1: expression returns [Expression e] : x= letExpression ;

-	public final Expression expression() throws RecognitionException {

-		Expression e = null;

-

-		Expression x = null;

-

-		final CommonToken startToken = (CommonToken) input.LT(1);

-		try {

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:155:1: (x= letExpression )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:156:2: x= letExpression

-			{

-				pushFollow(FOLLOW_letExpression_in_expression665);

-				x = letExpression();

-

-				state._fsp--;

-				if (state.failed) {

-					return e;

-				}

-				if (state.backtracking == 0) {

-					e = x;

-				}

-

-			}

-

-			if (state.backtracking == 0) {

-				addLocation(e, startToken, /* endToken */(CommonToken) input.LT(-1));

-			}

-		} catch (RecognitionException re) {

-			reportError(re);

-			recover(input, re);

-		} finally {

-		}

-		return e;

-	}

-

-	// $ANTLR end "expression"

-

-	// $ANTLR start "letExpression"

-	// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:160:1: letExpression returns [Expression e] : ( 'let' v= identifier '=' varExpr=

-	// castedExpression ':' target= expression | x= castedExpression );

-	public final Expression letExpression() throws RecognitionException {

-		Expression e = null;

-

-		Identifier v = null;

-

-		Expression varExpr = null;

-

-		Expression target = null;

-

-		Expression x = null;

-

-		final CommonToken startToken = (CommonToken) input.LT(1);

-		try {

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:163:1: ( 'let' v= identifier '=' varExpr= castedExpression ':' target=

-			// expression | x= castedExpression )

-			int alt26 = 2;

-			int LA26_0 = input.LA(1);

-

-			if ((LA26_0 == 42)) {

-				alt26 = 1;

-			} else if ((((LA26_0 >= StringLiteral) && (LA26_0 <= Identifier)) || (LA26_0 == 24) || (LA26_0 == 29)

-					|| ((LA26_0 >= 39) && (LA26_0 <= 41)) || ((LA26_0 >= 48) && (LA26_0 <= 49)) || (LA26_0 == 63) || ((LA26_0 >= 65) && (LA26_0 <= 79)))) {

-				alt26 = 2;

-			} else {

-				if (state.backtracking > 0) {

-					state.failed = true;

-					return e;

-				}

-				NoViableAltException nvae = new NoViableAltException("", 26, 0, input);

-

-				throw nvae;

-			}

-			switch (alt26) {

-			case 1:

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:164:4: 'let' v= identifier '=' varExpr= castedExpression ':' target=

-			// expression

-			{

-				match(input, 42, FOLLOW_42_in_letExpression693);

-				if (state.failed) {

-					return e;

-				}

-				pushFollow(FOLLOW_identifier_in_letExpression697);

-				v = identifier();

-

-				state._fsp--;

-				if (state.failed) {

-					return e;

-				}

-				match(input, 43, FOLLOW_43_in_letExpression699);

-				if (state.failed) {

-					return e;

-				}

-				pushFollow(FOLLOW_castedExpression_in_letExpression703);

-				varExpr = castedExpression();

-

-				state._fsp--;

-				if (state.failed) {

-					return e;

-				}

-				match(input, 27, FOLLOW_27_in_letExpression705);

-				if (state.failed) {

-					return e;

-				}

-				pushFollow(FOLLOW_expression_in_letExpression709);

-				target = expression();

-

-				state._fsp--;

-				if (state.failed) {

-					return e;

-				}

-				if (state.backtracking == 0) {

-					e = factory.createLetExpression(v, varExpr, target);

-				}

-

-			}

-				break;

-			case 2:

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:166:4: x= castedExpression

-			{

-				pushFollow(FOLLOW_castedExpression_in_letExpression722);

-				x = castedExpression();

-

-				state._fsp--;

-				if (state.failed) {

-					return e;

-				}

-				if (state.backtracking == 0) {

-					e = x;

-				}

-

-			}

-				break;

-

-			}

-			if (state.backtracking == 0) {

-				addLocation(e, startToken, /* endToken */(CommonToken) input.LT(-1));

-			}

-		} catch (RecognitionException re) {

-			reportError(re);

-			recover(input, re);

-		} finally {

-		}

-		return e;

-	}

-

-	// $ANTLR end "letExpression"

-

-	// $ANTLR start "castedExpression"

-	// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:170:1: castedExpression returns [Expression e] : ( ( '(' type ')' castedExpression

-	// )=> '(' t= type ')' x= chainExpression | x= chainExpression );

-	public final Expression castedExpression() throws RecognitionException {

-		Expression e = null;

-

-		Identifier t = null;

-

-		Expression x = null;

-

-		final CommonToken startToken = (CommonToken) input.LT(1);

-		try {

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:173:1: ( ( '(' type ')' castedExpression )=> '(' t= type ')' x=

-			// chainExpression | x= chainExpression )

-			int alt27 = 2;

-			alt27 = dfa27.predict(input);

-			switch (alt27) {

-			case 1:

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:174:5: ( '(' type ')' castedExpression )=> '(' t= type ')' x=

-			// chainExpression

-			{

-				match(input, 29, FOLLOW_29_in_castedExpression762);

-				if (state.failed) {

-					return e;

-				}

-				pushFollow(FOLLOW_type_in_castedExpression766);

-				t = type();

-

-				state._fsp--;

-				if (state.failed) {

-					return e;

-				}

-				match(input, 32, FOLLOW_32_in_castedExpression768);

-				if (state.failed) {

-					return e;

-				}

-				pushFollow(FOLLOW_chainExpression_in_castedExpression772);

-				x = chainExpression();

-

-				state._fsp--;

-				if (state.failed) {

-					return e;

-				}

-				if (state.backtracking == 0) {

-					e = factory.createCast(t, x);

-				}

-

-			}

-				break;

-			case 2:

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:176:4: x= chainExpression

-			{

-				pushFollow(FOLLOW_chainExpression_in_castedExpression781);

-				x = chainExpression();

-

-				state._fsp--;

-				if (state.failed) {

-					return e;

-				}

-				if (state.backtracking == 0) {

-					e = x;

-				}

-

-			}

-				break;

-

-			}

-			if (state.backtracking == 0) {

-				addLocation(e, startToken, /* endToken */(CommonToken) input.LT(-1));

-			}

-		} catch (RecognitionException re) {

-			reportError(re);

-			recover(input, re);

-		} finally {

-		}

-		return e;

-	}

-

-	// $ANTLR end "castedExpression"

-

-	// $ANTLR start "chainExpression"

-	// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:180:1: chainExpression returns [Expression e] : x= ifExpression ( '->' right=

-	// ifExpression )* ;

-	public final Expression chainExpression() throws RecognitionException {

-		Expression e = null;

-

-		Expression x = null;

-

-		Expression right = null;

-

-		final CommonToken startToken = (CommonToken) input.LT(1);

-		try {

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:183:1: (x= ifExpression ( '->' right= ifExpression )* )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:184:2: x= ifExpression ( '->' right= ifExpression )*

-			{

-				pushFollow(FOLLOW_ifExpression_in_chainExpression809);

-				x = ifExpression();

-

-				state._fsp--;

-				if (state.failed) {

-					return e;

-				}

-				if (state.backtracking == 0) {

-					e = x;

-				}

-				// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:184:25: ( '->' right= ifExpression )*

-				loop28: do {

-					int alt28 = 2;

-					int LA28_0 = input.LA(1);

-

-					if ((LA28_0 == 44)) {

-						alt28 = 1;

-					}

-

-					switch (alt28) {

-					case 1:

-					// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:184:27: '->' right= ifExpression

-					{

-						match(input, 44, FOLLOW_44_in_chainExpression815);

-						if (state.failed) {

-							return e;

-						}

-						pushFollow(FOLLOW_ifExpression_in_chainExpression819);

-						right = ifExpression();

-

-						state._fsp--;

-						if (state.failed) {

-							return e;

-						}

-						if (state.backtracking == 0) {

-							e = factory.createChainExpression(e, right);

-						}

-

-					}

-						break;

-

-					default:

-						break loop28;

-					}

-				} while (true);

-

-			}

-

-			if (state.backtracking == 0) {

-				addLocation(e, startToken, /* endToken */(CommonToken) input.LT(-1));

-			}

-		} catch (RecognitionException re) {

-			reportError(re);

-			recover(input, re);

-		} finally {

-		}

-		return e;

-	}

-

-	// $ANTLR end "chainExpression"

-

-	// $ANTLR start "ifExpression"

-	// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:188:1: ifExpression returns [Expression e] : (x= switchExpression ( '?' thenPart=

-	// switchExpression ':' elsePart= switchExpression )? | 'if' condition= switchExpression 'then' thenPart= switchExpression ( 'else' elsePart=

-	// expression )? );

-	public final Expression ifExpression() throws RecognitionException {

-		Expression e = null;

-

-		Expression x = null;

-

-		Expression thenPart = null;

-

-		Expression elsePart = null;

-

-		Expression condition = null;

-

-		final CommonToken startToken = (CommonToken) input.LT(1);

-		try {

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:191:1: (x= switchExpression ( '?' thenPart= switchExpression ':' elsePart=

-			// switchExpression )? | 'if' condition= switchExpression 'then' thenPart= switchExpression ( 'else' elsePart= expression )? )

-			int alt31 = 2;

-			int LA31_0 = input.LA(1);

-

-			if ((((LA31_0 >= StringLiteral) && (LA31_0 <= Identifier)) || (LA31_0 == 29) || ((LA31_0 >= 39) && (LA31_0 <= 41))

-					|| ((LA31_0 >= 48) && (LA31_0 <= 49)) || (LA31_0 == 63) || ((LA31_0 >= 65) && (LA31_0 <= 79)))) {

-				alt31 = 1;

-			} else if ((LA31_0 == 24)) {

-				alt31 = 2;

-			} else {

-				if (state.backtracking > 0) {

-					state.failed = true;

-					return e;

-				}

-				NoViableAltException nvae = new NoViableAltException("", 31, 0, input);

-

-				throw nvae;

-			}

-			switch (alt31) {

-			case 1:

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:192:2: x= switchExpression ( '?' thenPart= switchExpression ':' elsePart=

-			// switchExpression )?

-			{

-				pushFollow(FOLLOW_switchExpression_in_ifExpression849);

-				x = switchExpression();

-

-				state._fsp--;

-				if (state.failed) {

-					return e;

-				}

-				if (state.backtracking == 0) {

-					e = x;

-				}

-				// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:192:28: ( '?' thenPart= switchExpression ':' elsePart= switchExpression

-				// )?

-				int alt29 = 2;

-				int LA29_0 = input.LA(1);

-

-				if ((LA29_0 == 45)) {

-					alt29 = 1;

-				}

-				switch (alt29) {

-				case 1:

-				// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:192:29: '?' thenPart= switchExpression ':' elsePart= switchExpression

-				{

-					match(input, 45, FOLLOW_45_in_ifExpression853);

-					if (state.failed) {

-						return e;

-					}

-					pushFollow(FOLLOW_switchExpression_in_ifExpression857);

-					thenPart = switchExpression();

-

-					state._fsp--;

-					if (state.failed) {

-						return e;

-					}

-					match(input, 27, FOLLOW_27_in_ifExpression859);

-					if (state.failed) {

-						return e;

-					}

-					pushFollow(FOLLOW_switchExpression_in_ifExpression863);

-					elsePart = switchExpression();

-

-					state._fsp--;

-					if (state.failed) {

-						return e;

-					}

-					if (state.backtracking == 0) {

-						e = factory.createIf(e, thenPart, elsePart);

-					}

-

-				}

-					break;

-

-				}

-

-			}

-				break;

-			case 2:

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:193:3: 'if' condition= switchExpression 'then' thenPart= switchExpression (

-			// 'else' elsePart= expression )?

-			{

-				match(input, 24, FOLLOW_24_in_ifExpression871);

-				if (state.failed) {

-					return e;

-				}

-				pushFollow(FOLLOW_switchExpression_in_ifExpression875);

-				condition = switchExpression();

-

-				state._fsp--;

-				if (state.failed) {

-					return e;

-				}

-				match(input, 46, FOLLOW_46_in_ifExpression877);

-				if (state.failed) {

-					return e;

-				}

-				pushFollow(FOLLOW_switchExpression_in_ifExpression881);

-				thenPart = switchExpression();

-

-				state._fsp--;

-				if (state.failed) {

-					return e;

-				}

-				// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:193:68: ( 'else' elsePart= expression )?

-				int alt30 = 2;

-				int LA30_0 = input.LA(1);

-

-				if ((LA30_0 == 47)) {

-					alt30 = 1;

-				}

-				switch (alt30) {

-				case 1:

-				// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:193:69: 'else' elsePart= expression

-				{

-					match(input, 47, FOLLOW_47_in_ifExpression884);

-					if (state.failed) {

-						return e;

-					}

-					pushFollow(FOLLOW_expression_in_ifExpression888);

-					elsePart = expression();

-

-					state._fsp--;

-					if (state.failed) {

-						return e;

-					}

-

-				}

-					break;

-

-				}

-

-				if (state.backtracking == 0) {

-					e = factory.createIf(condition, thenPart, elsePart);

-				}

-

-			}

-				break;

-

-			}

-			if (state.backtracking == 0) {

-				addLocation(e, startToken, /* endToken */(CommonToken) input.LT(-1));

-			}

-		} catch (RecognitionException re) {

-			reportError(re);

-			recover(input, re);

-		} finally {

-		}

-		return e;

-	}

-

-	// $ANTLR end "ifExpression"

-

-	// $ANTLR start "switchExpression"

-	// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:197:1: switchExpression returns [Expression e=null] : ( 'switch' ( '(' pred=

-	// orExpression ')' )? '{' ( 'case' c= orExpression ':' v= orExpression )* 'default' ':' def= orExpression '}' | x= orExpression );

-	public final Expression switchExpression() throws RecognitionException {

-		Expression e = null;

-

-		Expression pred = null;

-

-		Expression c = null;

-

-		Expression v = null;

-

-		Expression def = null;

-

-		Expression x = null;

-

-		final CommonToken startToken = (CommonToken) input.LT(1);

-		final List<Case> cases = new BasicEList<Case>();

-		try {

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:200:1: ( 'switch' ( '(' pred= orExpression ')' )? '{' ( 'case' c=

-			// orExpression ':' v= orExpression )* 'default' ':' def= orExpression '}' | x= orExpression )

-			int alt34 = 2;

-			int LA34_0 = input.LA(1);

-

-			if ((LA34_0 == 48)) {

-				alt34 = 1;

-			} else if ((((LA34_0 >= StringLiteral) && (LA34_0 <= Identifier)) || (LA34_0 == 29) || ((LA34_0 >= 39) && (LA34_0 <= 41))

-					|| (LA34_0 == 49) || (LA34_0 == 63) || ((LA34_0 >= 65) && (LA34_0 <= 79)))) {

-				alt34 = 2;

-			} else {

-				if (state.backtracking > 0) {

-					state.failed = true;

-					return e;

-				}

-				NoViableAltException nvae = new NoViableAltException("", 34, 0, input);

-

-				throw nvae;

-			}

-			switch (alt34) {

-			case 1:

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:201:4: 'switch' ( '(' pred= orExpression ')' )? '{' ( 'case' c= orExpression

-			// ':' v= orExpression )* 'default' ':' def= orExpression '}'

-			{

-				match(input, 48, FOLLOW_48_in_switchExpression918);

-				if (state.failed) {

-					return e;

-				}

-				// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:201:13: ( '(' pred= orExpression ')' )?

-				int alt32 = 2;

-				int LA32_0 = input.LA(1);

-

-				if ((LA32_0 == 29)) {

-					alt32 = 1;

-				}

-				switch (alt32) {

-				case 1:

-				// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:201:14: '(' pred= orExpression ')'

-				{

-					match(input, 29, FOLLOW_29_in_switchExpression921);

-					if (state.failed) {

-						return e;

-					}

-					pushFollow(FOLLOW_orExpression_in_switchExpression927);

-					pred = orExpression();

-

-					state._fsp--;

-					if (state.failed) {

-						return e;

-					}

-					match(input, 32, FOLLOW_32_in_switchExpression929);

-					if (state.failed) {

-						return e;

-					}

-

-				}

-					break;

-

-				}

-

-				match(input, 49, FOLLOW_49_in_switchExpression936);

-				if (state.failed) {

-					return e;

-				}

-				// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:203:4: ( 'case' c= orExpression ':' v= orExpression )*

-				loop33: do {

-					int alt33 = 2;

-					int LA33_0 = input.LA(1);

-

-					if ((LA33_0 == 50)) {

-						alt33 = 1;

-					}

-

-					switch (alt33) {

-					case 1:

-					// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:204:6: 'case' c= orExpression ':' v= orExpression

-					{

-						match(input, 50, FOLLOW_50_in_switchExpression949);

-						if (state.failed) {

-							return e;

-						}

-						pushFollow(FOLLOW_orExpression_in_switchExpression953);

-						c = orExpression();

-

-						state._fsp--;

-						if (state.failed) {

-							return e;

-						}

-						match(input, 27, FOLLOW_27_in_switchExpression956);

-						if (state.failed) {

-							return e;

-						}

-						pushFollow(FOLLOW_orExpression_in_switchExpression961);

-						v = orExpression();

-

-						state._fsp--;

-						if (state.failed) {

-							return e;

-						}

-						if (state.backtracking == 0) {

-							Case _case = factory.createCase(c, v);

-							if (_case != null) {

-								cases.add(_case);

-							}

-						}

-

-					}

-						break;

-

-					default:

-						break loop33;

-					}

-				} while (true);

-

-				match(input, 51, FOLLOW_51_in_switchExpression979);

-				if (state.failed) {

-					return e;

-				}

-				match(input, 27, FOLLOW_27_in_switchExpression981);

-				if (state.failed) {

-					return e;

-				}

-				pushFollow(FOLLOW_orExpression_in_switchExpression987);

-				def = orExpression();

-

-				state._fsp--;

-				if (state.failed) {

-					return e;

-				}

-				match(input, 52, FOLLOW_52_in_switchExpression992);

-				if (state.failed) {

-					return e;

-				}

-				if (state.backtracking == 0) {

-					e = factory.createSwitchExpression(pred, cases, def);

-				}

-

-			}

-				break;

-			case 2:

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:210:4: x= orExpression

-			{

-				pushFollow(FOLLOW_orExpression_in_switchExpression1004);

-				x = orExpression();

-

-				state._fsp--;

-				if (state.failed) {

-					return e;

-				}

-				if (state.backtracking == 0) {

-					e = x;

-				}

-

-			}

-				break;

-

-			}

-			if (state.backtracking == 0) {

-				addLocation(e, startToken, /* endToken */(CommonToken) input.LT(-1));

-			}

-		} catch (RecognitionException re) {

-			reportError(re);

-			recover(input, re);

-		} finally {

-		}

-		return e;

-	}

-

-	// $ANTLR end "switchExpression"

-

-	// $ANTLR start "orExpression"

-	// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:214:1: orExpression returns [Expression e] : x= andExpression (name= '||' r=

-	// andExpression )* ;

-	public final Expression orExpression() throws RecognitionException {

-		Expression e = null;

-

-		Token name = null;

-		Expression x = null;

-

-		Expression r = null;

-

-		final CommonToken startToken = (CommonToken) input.LT(1);

-		try {

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:217:1: (x= andExpression (name= '||' r= andExpression )* )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:218:4: x= andExpression (name= '||' r= andExpression )*

-			{

-				pushFollow(FOLLOW_andExpression_in_orExpression1033);

-				x = andExpression();

-

-				state._fsp--;

-				if (state.failed) {

-					return e;

-				}

-				if (state.backtracking == 0) {

-					e = x;

-				}

-				// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:218:28: (name= '||' r= andExpression )*

-				loop35: do {

-					int alt35 = 2;

-					int LA35_0 = input.LA(1);

-

-					if ((LA35_0 == 53)) {

-						alt35 = 1;

-					}

-

-					switch (alt35) {

-					case 1:

-					// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:218:29: name= '||' r= andExpression

-					{

-						name = (Token) match(input, 53, FOLLOW_53_in_orExpression1040);

-						if (state.failed) {

-							return e;

-						}

-						pushFollow(FOLLOW_andExpression_in_orExpression1044);

-						r = andExpression();

-

-						state._fsp--;

-						if (state.failed) {

-							return e;

-						}

-						if (state.backtracking == 0) {

-							e = factory.createBooleanOperation(id(name), e, r);

-						}

-

-					}

-						break;

-

-					default:

-						break loop35;

-					}

-				} while (true);

-

-			}

-

-			if (state.backtracking == 0) {

-				addLocation(e, startToken, /* endToken */(CommonToken) input.LT(-1));

-			}

-		} catch (RecognitionException re) {

-			reportError(re);

-			recover(input, re);

-		} finally {

-		}

-		return e;

-	}

-

-	// $ANTLR end "orExpression"

-

-	// $ANTLR start "andExpression"

-	// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:222:1: andExpression returns [Expression e] : x= impliesExpression (name= '&&' r=

-	// impliesExpression )* ;

-	public final Expression andExpression() throws RecognitionException {

-		Expression e = null;

-

-		Token name = null;

-		Expression x = null;

-

-		Expression r = null;

-

-		final CommonToken startToken = (CommonToken) input.LT(1);

-		try {

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:225:1: (x= impliesExpression (name= '&&' r= impliesExpression )* )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:226:2: x= impliesExpression (name= '&&' r= impliesExpression )*

-			{

-				pushFollow(FOLLOW_impliesExpression_in_andExpression1076);

-				x = impliesExpression();

-

-				state._fsp--;

-				if (state.failed) {

-					return e;

-				}

-				if (state.backtracking == 0) {

-					e = x;

-				}

-				// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:226:30: (name= '&&' r= impliesExpression )*

-				loop36: do {

-					int alt36 = 2;

-					int LA36_0 = input.LA(1);

-

-					if ((LA36_0 == 54)) {

-						alt36 = 1;

-					}

-

-					switch (alt36) {

-					case 1:

-					// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:226:31: name= '&&' r= impliesExpression

-					{

-						name = (Token) match(input, 54, FOLLOW_54_in_andExpression1083);

-						if (state.failed) {

-							return e;

-						}

-						pushFollow(FOLLOW_impliesExpression_in_andExpression1087);

-						r = impliesExpression();

-

-						state._fsp--;

-						if (state.failed) {

-							return e;

-						}

-						if (state.backtracking == 0) {

-							e = factory.createBooleanOperation(id(name), e, r);

-						}

-

-					}

-						break;

-

-					default:

-						break loop36;

-					}

-				} while (true);

-

-			}

-

-			if (state.backtracking == 0) {

-				addLocation(e, startToken, /* endToken */(CommonToken) input.LT(-1));

-			}

-		} catch (RecognitionException re) {

-			reportError(re);

-			recover(input, re);

-		} finally {

-		}

-		return e;

-	}

-

-	// $ANTLR end "andExpression"

-

-	// $ANTLR start "impliesExpression"

-	// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:230:1: impliesExpression returns [Expression e] : x= relationalExpression (name=

-	// 'implies' r= relationalExpression )* ;

-	public final Expression impliesExpression() throws RecognitionException {

-		Expression e = null;

-

-		Token name = null;

-		Expression x = null;

-

-		Expression r = null;

-

-		final CommonToken startToken = (CommonToken) input.LT(1);

-		try {

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:233:1: (x= relationalExpression (name= 'implies' r= relationalExpression )*

-			// )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:234:2: x= relationalExpression (name= 'implies' r= relationalExpression )*

-			{

-				pushFollow(FOLLOW_relationalExpression_in_impliesExpression1118);

-				x = relationalExpression();

-

-				state._fsp--;

-				if (state.failed) {

-					return e;

-				}

-				if (state.backtracking == 0) {

-					e = x;

-				}

-				// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:234:33: (name= 'implies' r= relationalExpression )*

-				loop37: do {

-					int alt37 = 2;

-					int LA37_0 = input.LA(1);

-

-					if ((LA37_0 == 55)) {

-						alt37 = 1;

-					}

-

-					switch (alt37) {

-					case 1:

-					// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:234:34: name= 'implies' r= relationalExpression

-					{

-						name = (Token) match(input, 55, FOLLOW_55_in_impliesExpression1125);

-						if (state.failed) {

-							return e;

-						}

-						pushFollow(FOLLOW_relationalExpression_in_impliesExpression1129);

-						r = relationalExpression();

-

-						state._fsp--;

-						if (state.failed) {

-							return e;

-						}

-						if (state.backtracking == 0) {

-							e = factory.createBooleanOperation(id(name), e, r);

-						}

-

-					}

-						break;

-

-					default:

-						break loop37;

-					}

-				} while (true);

-

-			}

-

-			if (state.backtracking == 0) {

-				addLocation(e, startToken, /* endToken */(CommonToken) input.LT(-1));

-			}

-		} catch (RecognitionException re) {

-			reportError(re);

-			recover(input, re);

-		} finally {

-		}

-		return e;

-	}

-

-	// $ANTLR end "impliesExpression"

-

-	// $ANTLR start "relationalExpression"

-	// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:238:1: relationalExpression returns [Expression e] : x= additiveExpression (name= (

-	// '==' | '!=' | '>=' | '<=' | '>' | '<' ) r= additiveExpression )* ;

-	public final Expression relationalExpression() throws RecognitionException {

-		Expression e = null;

-

-		Token name = null;

-		Expression x = null;

-

-		Expression r = null;

-

-		final CommonToken startToken = (CommonToken) input.LT(1);

-		try {

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:241:1: (x= additiveExpression (name= ( '==' | '!=' | '>=' | '<=' | '>' | '<'

-			// ) r= additiveExpression )* )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:242:2: x= additiveExpression (name= ( '==' | '!=' | '>=' | '<=' | '>' | '<'

-			// ) r= additiveExpression )*

-			{

-				pushFollow(FOLLOW_additiveExpression_in_relationalExpression1161);

-				x = additiveExpression();

-

-				state._fsp--;

-				if (state.failed) {

-					return e;

-				}

-				if (state.backtracking == 0) {

-					e = x;

-				}

-				// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:243:2: (name= ( '==' | '!=' | '>=' | '<=' | '>' | '<' ) r=

-				// additiveExpression )*

-				loop38: do {

-					int alt38 = 2;

-					int LA38_0 = input.LA(1);

-

-					if ((((LA38_0 >= 56) && (LA38_0 <= 61)))) {

-						alt38 = 1;

-					}

-

-					switch (alt38) {

-					case 1:

-					// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:243:3: name= ( '==' | '!=' | '>=' | '<=' | '>' | '<' ) r=

-					// additiveExpression

-					{

-						name = (Token) input.LT(1);

-						if (((input.LA(1) >= 56) && (input.LA(1) <= 61))) {

-							input.consume();

-							state.errorRecovery = false;

-							state.failed = false;

-						} else {

-							if (state.backtracking > 0) {

-								state.failed = true;

-								return e;

-							}

-							MismatchedSetException mse = new MismatchedSetException(null, input);

-							throw mse;

-						}

-

-						pushFollow(FOLLOW_additiveExpression_in_relationalExpression1195);

-						r = additiveExpression();

-

-						state._fsp--;

-						if (state.failed) {

-							return e;

-						}

-						if (state.backtracking == 0) {

-							e = factory.createBinaryOperation(id(name), e, r);

-						}

-

-					}

-						break;

-

-					default:

-						break loop38;

-					}

-				} while (true);

-

-			}

-

-			if (state.backtracking == 0) {

-				addLocation(e, startToken, /* endToken */(CommonToken) input.LT(-1));

-			}

-		} catch (RecognitionException re) {

-			reportError(re);

-			recover(input, re);

-		} finally {

-		}

-		return e;

-	}

-

-	// $ANTLR end "relationalExpression"

-

-	// $ANTLR start "additiveExpression"

-	// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:247:1: additiveExpression returns [Expression e] : x= multiplicativeExpression

-	// (name= ( '+' | '-' ) r= multiplicativeExpression )* ;

-	public final Expression additiveExpression() throws RecognitionException {

-		Expression e = null;

-

-		Token name = null;

-		Expression x = null;

-

-		Expression r = null;

-

-		final CommonToken startToken = (CommonToken) input.LT(1);

-		try {

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:250:1: (x= multiplicativeExpression (name= ( '+' | '-' ) r=

-			// multiplicativeExpression )* )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:251:2: x= multiplicativeExpression (name= ( '+' | '-' ) r=

-			// multiplicativeExpression )*

-			{

-				pushFollow(FOLLOW_multiplicativeExpression_in_additiveExpression1224);

-				x = multiplicativeExpression();

-

-				state._fsp--;

-				if (state.failed) {

-					return e;

-				}

-				if (state.backtracking == 0) {

-					e = x;

-				}

-				// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:252:4: (name= ( '+' | '-' ) r= multiplicativeExpression )*

-				loop39: do {

-					int alt39 = 2;

-					int LA39_0 = input.LA(1);

-

-					if ((((LA39_0 >= 62) && (LA39_0 <= 63)))) {

-						alt39 = 1;

-					}

-

-					switch (alt39) {

-					case 1:

-					// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:252:5: name= ( '+' | '-' ) r= multiplicativeExpression

-					{

-						name = (Token) input.LT(1);

-						if (((input.LA(1) >= 62) && (input.LA(1) <= 63))) {

-							input.consume();

-							state.errorRecovery = false;

-							state.failed = false;

-						} else {

-							if (state.backtracking > 0) {

-								state.failed = true;

-								return e;

-							}

-							MismatchedSetException mse = new MismatchedSetException(null, input);

-							throw mse;

-						}

-

-						pushFollow(FOLLOW_multiplicativeExpression_in_additiveExpression1243);

-						r = multiplicativeExpression();

-

-						state._fsp--;

-						if (state.failed) {

-							return e;

-						}

-						if (state.backtracking == 0) {

-							e = factory.createBinaryOperation(id(name), e, r);

-						}

-

-					}

-						break;

-

-					default:

-						break loop39;

-					}

-				} while (true);

-

-			}

-

-			if (state.backtracking == 0) {

-				addLocation(e, startToken, /* endToken */(CommonToken) input.LT(-1));

-			}

-		} catch (RecognitionException re) {

-			reportError(re);

-			recover(input, re);

-		} finally {

-		}

-		return e;

-	}

-

-	// $ANTLR end "additiveExpression"

-

-	// $ANTLR start "multiplicativeExpression"

-	// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:256:1: multiplicativeExpression returns [Expression e] : x= unaryExpression (name= (

-	// '*' | '/' ) r= unaryExpression )* ;

-	public final Expression multiplicativeExpression() throws RecognitionException {

-		Expression e = null;

-

-		Token name = null;

-		Expression x = null;

-

-		Expression r = null;

-

-		final CommonToken startToken = (CommonToken) input.LT(1);

-		try {

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:259:1: (x= unaryExpression (name= ( '*' | '/' ) r= unaryExpression )* )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:260:2: x= unaryExpression (name= ( '*' | '/' ) r= unaryExpression )*

-			{

-				pushFollow(FOLLOW_unaryExpression_in_multiplicativeExpression1272);

-				x = unaryExpression();

-

-				state._fsp--;

-				if (state.failed) {

-					return e;

-				}

-				if (state.backtracking == 0) {

-					e = x;

-				}

-				// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:261:2: (name= ( '*' | '/' ) r= unaryExpression )*

-				loop40: do {

-					int alt40 = 2;

-					int LA40_0 = input.LA(1);

-

-					if (((LA40_0 == 31) || (LA40_0 == 64))) {

-						alt40 = 1;

-					}

-

-					switch (alt40) {

-					case 1:

-					// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:261:3: name= ( '*' | '/' ) r= unaryExpression

-					{

-						name = (Token) input.LT(1);

-						if ((input.LA(1) == 31) || (input.LA(1) == 64)) {

-							input.consume();

-							state.errorRecovery = false;

-							state.failed = false;

-						} else {

-							if (state.backtracking > 0) {

-								state.failed = true;

-								return e;

-							}

-							MismatchedSetException mse = new MismatchedSetException(null, input);

-							throw mse;

-						}

-

-						pushFollow(FOLLOW_unaryExpression_in_multiplicativeExpression1290);

-						r = unaryExpression();

-

-						state._fsp--;

-						if (state.failed) {

-							return e;

-						}

-						if (state.backtracking == 0) {

-							e = factory.createBinaryOperation(id(name), e, r);

-						}

-

-					}

-						break;

-

-					default:

-						break loop40;

-					}

-				} while (true);

-

-			}

-

-			if (state.backtracking == 0) {

-				addLocation(e, startToken, /* endToken */(CommonToken) input.LT(-1));

-			}

-		} catch (RecognitionException re) {

-			reportError(re);

-			recover(input, re);

-		} finally {

-		}

-		return e;

-	}

-

-	// $ANTLR end "multiplicativeExpression"

-

-	// $ANTLR start "unaryExpression"

-	// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:265:1: unaryExpression returns [Expression e] : (x= infixExpression | name= '!' x=

-	// infixExpression | name= '-' x= infixExpression );

-	public final Expression unaryExpression() throws RecognitionException {

-		Expression e = null;

-

-		Token name = null;

-		Expression x = null;

-

-		final CommonToken startToken = (CommonToken) input.LT(1);

-		try {

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:268:1: (x= infixExpression | name= '!' x= infixExpression | name= '-' x=

-			// infixExpression )

-			int alt41 = 3;

-			switch (input.LA(1)) {

-			case StringLiteral:

-			case IntLiteral:

-			case Identifier:

-			case 29:

-			case 39:

-			case 40:

-			case 41:

-			case 49:

-			case 66:

-			case 67:

-			case 68:

-			case 69:

-			case 70:

-			case 71:

-			case 72:

-			case 73:

-			case 74:

-			case 75:

-			case 76:

-			case 77:

-			case 78:

-			case 79: {

-				alt41 = 1;

-			}

-				break;

-			case 65: {

-				alt41 = 2;

-			}

-				break;

-			case 63: {

-				alt41 = 3;

-			}

-				break;

-			default:

-				if (state.backtracking > 0) {

-					state.failed = true;

-					return e;

-				}

-				NoViableAltException nvae = new NoViableAltException("", 41, 0, input);

-

-				throw nvae;

-			}

-

-			switch (alt41) {

-			case 1:

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:269:2: x= infixExpression

-			{

-				pushFollow(FOLLOW_infixExpression_in_unaryExpression1319);

-				x = infixExpression();

-

-				state._fsp--;

-				if (state.failed) {

-					return e;

-				}

-				if (state.backtracking == 0) {

-					e = x;

-				}

-

-			}

-				break;

-			case 2:

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:270:3: name= '!' x= infixExpression

-			{

-				name = (Token) match(input, 65, FOLLOW_65_in_unaryExpression1327);

-				if (state.failed) {

-					return e;

-				}

-				pushFollow(FOLLOW_infixExpression_in_unaryExpression1331);

-				x = infixExpression();

-

-				state._fsp--;

-				if (state.failed) {

-					return e;

-				}

-				if (state.backtracking == 0) {

-					e = factory.createOperationCall(id(name), x);

-				}

-

-			}

-				break;

-			case 3:

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:271:3: name= '-' x= infixExpression

-			{

-				name = (Token) match(input, 63, FOLLOW_63_in_unaryExpression1339);

-				if (state.failed) {

-					return e;

-				}

-				pushFollow(FOLLOW_infixExpression_in_unaryExpression1343);

-				x = infixExpression();

-

-				state._fsp--;

-				if (state.failed) {

-					return e;

-				}

-				if (state.backtracking == 0) {

-					e = factory.createOperationCall(id(name), x);

-				}

-

-			}

-				break;

-

-			}

-			if (state.backtracking == 0) {

-				addLocation(e, startToken, /* endToken */(CommonToken) input.LT(-1));

-			}

-		} catch (RecognitionException re) {

-			reportError(re);

-			recover(input, re);

-		} finally {

-		}

-		return e;

-	}

-

-	// $ANTLR end "unaryExpression"

-

-	// $ANTLR start "infixExpression"

-	// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:275:1: infixExpression returns [Expression e] : x= primaryExpression ( '.' op=

-	// featureCall )* ;

-	public final Expression infixExpression() throws RecognitionException {

-		Expression e = null;

-

-		Expression x = null;

-

-		FeatureCall op = null;

-

-		final CommonToken startToken = (CommonToken) input.LT(1);

-		try {

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:278:1: (x= primaryExpression ( '.' op= featureCall )* )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:279:2: x= primaryExpression ( '.' op= featureCall )*

-			{

-				pushFollow(FOLLOW_primaryExpression_in_infixExpression1370);

-				x = primaryExpression();

-

-				state._fsp--;

-				if (state.failed) {

-					return e;

-				}

-				if (state.backtracking == 0) {

-					e = x;

-				}

-				// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:279:30: ( '.' op= featureCall )*

-				loop42: do {

-					int alt42 = 2;

-					int LA42_0 = input.LA(1);

-

-					if ((LA42_0 == 37)) {

-						alt42 = 1;

-					}

-

-					switch (alt42) {

-					case 1:

-					// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:279:32: '.' op= featureCall

-					{

-						match(input, 37, FOLLOW_37_in_infixExpression1376);

-						if (state.failed) {

-							return e;

-						}

-						pushFollow(FOLLOW_featureCall_in_infixExpression1380);

-						op = featureCall();

-

-						state._fsp--;

-						if (state.failed) {

-							return e;

-						}

-						if (state.backtracking == 0) {

-							if (op != null) {

-								op.setTarget(e);

-								e = op;

-							}

-						}

-

-					}

-						break;

-

-					default:

-						break loop42;

-					}

-				} while (true);

-

-			}

-

-			if (state.backtracking == 0) {

-				addLocation(e, startToken, /* endToken */(CommonToken) input.LT(-1));

-			}

-		} catch (RecognitionException re) {

-			reportError(re);

-			recover(input, re);

-		} finally {

-		}

-		return e;

-	}

-

-	// $ANTLR end "infixExpression"

-

-	// $ANTLR start "primaryExpression"

-	// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:283:1: primaryExpression returns [Expression e] : (c= StringLiteral | x= featureCall

-	// | x= booleanLiteral | x= numberLiteral | x= nullLiteral | x= listLiteral | x= constructorCall | x= globalVarExpression | x=

-	// paranthesizedExpression );

-	public final Expression primaryExpression() throws RecognitionException {

-		Expression e = null;

-

-		Token c = null;

-		Expression x = null;

-

-		final CommonToken startToken = (CommonToken) input.LT(1);

-		try {

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:286:1: (c= StringLiteral | x= featureCall | x= booleanLiteral | x=

-			// numberLiteral | x= nullLiteral | x= listLiteral | x= constructorCall | x= globalVarExpression | x= paranthesizedExpression )

-			int alt43 = 9;

-			switch (input.LA(1)) {

-			case StringLiteral: {

-				alt43 = 1;

-			}

-				break;

-			case Identifier:

-			case 39:

-			case 40:

-			case 41:

-			case 71:

-			case 72:

-			case 73:

-			case 74:

-			case 75:

-			case 76:

-			case 77:

-			case 78:

-			case 79: {

-				alt43 = 2;

-			}

-				break;

-			case 68:

-			case 69: {

-				alt43 = 3;

-			}

-				break;

-			case IntLiteral: {

-				alt43 = 4;

-			}

-				break;

-			case 70: {

-				alt43 = 5;

-			}

-				break;

-			case 49: {

-				alt43 = 6;

-			}

-				break;

-			case 67: {

-				alt43 = 7;

-			}

-				break;

-			case 66: {

-				alt43 = 8;

-			}

-				break;

-			case 29: {

-				alt43 = 9;

-			}

-				break;

-			default:

-				if (state.backtracking > 0) {

-					state.failed = true;

-					return e;

-				}

-				NoViableAltException nvae = new NoViableAltException("", 43, 0, input);

-

-				throw nvae;

-			}

-

-			switch (alt43) {

-			case 1:

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:287:4: c= StringLiteral

-			{

-				c = (Token) match(input, StringLiteral, FOLLOW_StringLiteral_in_primaryExpression1415);

-				if (state.failed) {

-					return e;

-				}

-				if (state.backtracking == 0) {

-					e = factory.createStringLiteral(id(c));

-				}

-

-			}

-				break;

-			case 2:

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:288:5: x= featureCall

-			{

-				pushFollow(FOLLOW_featureCall_in_primaryExpression1426);

-				x = featureCall();

-

-				state._fsp--;

-				if (state.failed) {

-					return e;

-				}

-				if (state.backtracking == 0) {

-					e = x;

-				}

-

-			}

-				break;

-			case 3:

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:289:5: x= booleanLiteral

-			{

-				pushFollow(FOLLOW_booleanLiteral_in_primaryExpression1436);

-				x = booleanLiteral();

-

-				state._fsp--;

-				if (state.failed) {

-					return e;

-				}

-				if (state.backtracking == 0) {

-					e = x;

-				}

-

-			}

-				break;

-			case 4:

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:290:5: x= numberLiteral

-			{

-				pushFollow(FOLLOW_numberLiteral_in_primaryExpression1446);

-				x = numberLiteral();

-

-				state._fsp--;

-				if (state.failed) {

-					return e;

-				}

-				if (state.backtracking == 0) {

-					e = x;

-				}

-

-			}

-				break;

-			case 5:

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:291:5: x= nullLiteral

-			{

-				pushFollow(FOLLOW_nullLiteral_in_primaryExpression1456);

-				x = nullLiteral();

-

-				state._fsp--;

-				if (state.failed) {

-					return e;

-				}

-				if (state.backtracking == 0) {

-					e = x;

-				}

-

-			}

-				break;

-			case 6:

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:292:5: x= listLiteral

-			{

-				pushFollow(FOLLOW_listLiteral_in_primaryExpression1466);

-				x = listLiteral();

-

-				state._fsp--;

-				if (state.failed) {

-					return e;

-				}

-				if (state.backtracking == 0) {

-					e = x;

-				}

-

-			}

-				break;

-			case 7:

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:293:5: x= constructorCall

-			{

-				pushFollow(FOLLOW_constructorCall_in_primaryExpression1476);

-				x = constructorCall();

-

-				state._fsp--;

-				if (state.failed) {

-					return e;

-				}

-				if (state.backtracking == 0) {

-					e = x;

-				}

-

-			}

-				break;

-			case 8:

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:294:5: x= globalVarExpression

-			{

-				pushFollow(FOLLOW_globalVarExpression_in_primaryExpression1486);

-				x = globalVarExpression();

-

-				state._fsp--;

-				if (state.failed) {

-					return e;

-				}

-				if (state.backtracking == 0) {

-					e = x;

-				}

-

-			}

-				break;

-			case 9:

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:295:5: x= paranthesizedExpression

-			{

-				pushFollow(FOLLOW_paranthesizedExpression_in_primaryExpression1496);

-				x = paranthesizedExpression();

-

-				state._fsp--;

-				if (state.failed) {

-					return e;

-				}

-				if (state.backtracking == 0) {

-					e = x;

-				}

-

-			}

-				break;

-

-			}

-			if (state.backtracking == 0) {

-				addLocation(e, startToken, /* endToken */(CommonToken) input.LT(-1));

-			}

-		} catch (RecognitionException re) {

-			reportError(re);

-			recover(input, re);

-		} finally {

-		}

-		return e;

-	}

-

-	// $ANTLR end "primaryExpression"

-

-	// $ANTLR start "paranthesizedExpression"

-	// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:298:1: paranthesizedExpression returns [Expression e] : '(' x= expression ')' ;

-	public final Expression paranthesizedExpression() throws RecognitionException {

-		Expression e = null;

-

-		Expression x = null;

-

-		final CommonToken startToken = (CommonToken) input.LT(1);

-		try {

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:301:1: ( '(' x= expression ')' )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:302:5: '(' x= expression ')'

-			{

-				match(input, 29, FOLLOW_29_in_paranthesizedExpression1523);

-				if (state.failed) {

-					return e;

-				}

-				pushFollow(FOLLOW_expression_in_paranthesizedExpression1527);

-				x = expression();

-

-				state._fsp--;

-				if (state.failed) {

-					return e;

-				}

-				match(input, 32, FOLLOW_32_in_paranthesizedExpression1529);

-				if (state.failed) {

-					return e;

-				}

-				if (state.backtracking == 0) {

-					e = factory.createParanthesizedExpression(x);

-				}

-

-			}

-

-			if (state.backtracking == 0) {

-				addLocation(e, startToken, /* endToken */(CommonToken) input.LT(-1));

-			}

-		} catch (RecognitionException re) {

-			reportError(re);

-			recover(input, re);

-		} finally {

-		}

-		return e;

-	}

-

-	// $ANTLR end "paranthesizedExpression"

-

-	// $ANTLR start "globalVarExpression"

-	// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:306:1: globalVarExpression returns [GlobalVarExpression e] : 'GLOBALVAR' name=

-	// identifier ;

-	public final GlobalVarExpression globalVarExpression() throws RecognitionException {

-		GlobalVarExpression e = null;

-

-		Identifier name = null;

-

-		final CommonToken startToken = (CommonToken) input.LT(1);

-		try {

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:309:1: ( 'GLOBALVAR' name= identifier )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:310:5: 'GLOBALVAR' name= identifier

-			{

-				match(input, 66, FOLLOW_66_in_globalVarExpression1558);

-				if (state.failed) {

-					return e;

-				}

-				pushFollow(FOLLOW_identifier_in_globalVarExpression1562);

-				name = identifier();

-

-				state._fsp--;

-				if (state.failed) {

-					return e;

-				}

-				if (state.backtracking == 0) {

-					e = factory.createGlobalVarExpression(name);

-				}

-

-			}

-

-			if (state.backtracking == 0) {

-				addLocation(e, startToken, /* endToken */(CommonToken) input.LT(-1));

-			}

-		} catch (RecognitionException re) {

-			reportError(re);

-			recover(input, re);

-		} finally {

-		}

-		return e;

-	}

-

-	// $ANTLR end "globalVarExpression"

-

-	// $ANTLR start "featureCall"

-	// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:313:1: featureCall returns [FeatureCall e] : (id1= identifier '(' (l= parameterList

-	// )? ')' | t= type | x= collectionExpression );

-	public final FeatureCall featureCall() throws RecognitionException {

-		FeatureCall e = null;

-

-		Identifier id1 = null;

-

-		List<Expression> l = null;

-

-		Identifier t = null;

-

-		FeatureCall x = null;

-

-		final CommonToken startToken = (CommonToken) input.LT(1);

-		try {

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:316:1: (id1= identifier '(' (l= parameterList )? ')' | t= type | x=

-			// collectionExpression )

-			int alt45 = 3;

-			switch (input.LA(1)) {

-			case Identifier: {

-				int LA45_1 = input.LA(2);

-

-				if (((LA45_1 == EOF) || (LA45_1 == 19) || ((LA45_1 >= 25) && (LA45_1 <= 27)) || ((LA45_1 >= 30) && (LA45_1 <= 33)) || (LA45_1 == 37)

-						|| ((LA45_1 >= 44) && (LA45_1 <= 47)) || ((LA45_1 >= 50) && (LA45_1 <= 64)))) {

-					alt45 = 2;

-				} else if ((LA45_1 == 29)) {

-					alt45 = 1;

-				} else {

-					if (state.backtracking > 0) {

-						state.failed = true;

-						return e;

-					}

-					NoViableAltException nvae = new NoViableAltException("", 45, 1, input);

-

-					throw nvae;

-				}

-			}

-				break;

-			case 39:

-			case 40:

-			case 41: {

-				alt45 = 2;

-			}

-				break;

-			case 71:

-			case 72:

-			case 73:

-			case 74:

-			case 75:

-			case 76:

-			case 77:

-			case 78:

-			case 79: {

-				alt45 = 3;

-			}

-				break;

-			default:

-				if (state.backtracking > 0) {

-					state.failed = true;

-					return e;

-				}

-				NoViableAltException nvae = new NoViableAltException("", 45, 0, input);

-

-				throw nvae;

-			}

-

-			switch (alt45) {

-			case 1:

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:317:2: id1= identifier '(' (l= parameterList )? ')'

-			{

-				pushFollow(FOLLOW_identifier_in_featureCall1589);

-				id1 = identifier();

-

-				state._fsp--;

-				if (state.failed) {

-					return e;

-				}

-				match(input, 29, FOLLOW_29_in_featureCall1591);

-				if (state.failed) {

-					return e;

-				}

-				// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:317:21: (l= parameterList )?

-				int alt44 = 2;

-				int LA44_0 = input.LA(1);

-

-				if ((((LA44_0 >= StringLiteral) && (LA44_0 <= Identifier)) || (LA44_0 == 24) || (LA44_0 == 29) || ((LA44_0 >= 39) && (LA44_0 <= 42))

-						|| ((LA44_0 >= 48) && (LA44_0 <= 49)) || (LA44_0 == 63) || ((LA44_0 >= 65) && (LA44_0 <= 79)))) {

-					alt44 = 1;

-				}

-				switch (alt44) {

-				case 1:

-				// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:317:22: l= parameterList

-				{

-					pushFollow(FOLLOW_parameterList_in_featureCall1596);

-					l = parameterList();

-

-					state._fsp--;

-					if (state.failed) {

-						return e;

-					}

-

-				}

-					break;

-

-				}

-

-				match(input, 32, FOLLOW_32_in_featureCall1600);

-				if (state.failed) {

-					return e;

-				}

-				if (state.backtracking == 0) {

-					e = factory.createOperationCall(id1, l);

-				}

-

-			}

-				break;

-			case 2:

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:318:5: t= type

-			{

-				pushFollow(FOLLOW_type_in_featureCall1610);

-				t = type();

-

-				state._fsp--;

-				if (state.failed) {

-					return e;

-				}

-				if (state.backtracking == 0) {

-					e = factory.createFeatureCall(t, null);

-				}

-

-			}

-				break;

-			case 3:

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:319:5: x= collectionExpression

-			{

-				pushFollow(FOLLOW_collectionExpression_in_featureCall1621);

-				x = collectionExpression();

-

-				state._fsp--;

-				if (state.failed) {

-					return e;

-				}

-				if (state.backtracking == 0) {

-					e = x;

-				}

-

-			}

-				break;

-

-			}

-			if (state.backtracking == 0) {

-				addLocation(e, startToken, /* endToken */(CommonToken) input.LT(-1));

-			}

-		} catch (RecognitionException re) {

-			reportError(re);

-			recover(input, re);

-		} finally {

-		}

-		return e;

-	}

-

-	// $ANTLR end "featureCall"

-

-	// $ANTLR start "listLiteral"

-	// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:323:1: listLiteral returns [Expression e] : '{' (l= parameterList )? '}' ;

-	public final Expression listLiteral() throws RecognitionException {

-		Expression e = null;

-

-		List<Expression> l = null;

-

-		final CommonToken startToken = (CommonToken) input.LT(1);

-		try {

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:326:1: ( '{' (l= parameterList )? '}' )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:327:2: '{' (l= parameterList )? '}'

-			{

-				match(input, 49, FOLLOW_49_in_listLiteral1647);

-				if (state.failed) {

-					return e;

-				}

-				// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:327:6: (l= parameterList )?

-				int alt46 = 2;

-				int LA46_0 = input.LA(1);

-

-				if ((((LA46_0 >= StringLiteral) && (LA46_0 <= Identifier)) || (LA46_0 == 24) || (LA46_0 == 29) || ((LA46_0 >= 39) && (LA46_0 <= 42))

-						|| ((LA46_0 >= 48) && (LA46_0 <= 49)) || (LA46_0 == 63) || ((LA46_0 >= 65) && (LA46_0 <= 79)))) {

-					alt46 = 1;

-				}

-				switch (alt46) {

-				case 1:

-				// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:327:7: l= parameterList

-				{

-					pushFollow(FOLLOW_parameterList_in_listLiteral1652);

-					l = parameterList();

-

-					state._fsp--;

-					if (state.failed) {

-						return e;

-					}

-

-				}

-					break;

-

-				}

-

-				match(input, 52, FOLLOW_52_in_listLiteral1656);

-				if (state.failed) {

-					return e;

-				}

-				if (state.backtracking == 0) {

-					e = factory.createListLiteral(l);

-				}

-

-			}

-

-			if (state.backtracking == 0) {

-				addLocation(e, startToken, /* endToken */(CommonToken) input.LT(-1));

-			}

-		} catch (RecognitionException re) {

-			reportError(re);

-			recover(input, re);

-		} finally {

-		}

-		return e;

-	}

-

-	// $ANTLR end "listLiteral"

-

-	// $ANTLR start "constructorCall"

-	// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:330:1: constructorCall returns [Expression e] : 'new' t= simpleType ;

-	public final Expression constructorCall() throws RecognitionException {

-		Expression e = null;

-

-		Identifier t = null;

-

-		final CommonToken startToken = (CommonToken) input.LT(1);

-		try {

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:333:1: ( 'new' t= simpleType )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:334:2: 'new' t= simpleType

-			{

-				match(input, 67, FOLLOW_67_in_constructorCall1681);

-				if (state.failed) {

-					return e;

-				}

-				pushFollow(FOLLOW_simpleType_in_constructorCall1685);

-				t = simpleType();

-

-				state._fsp--;

-				if (state.failed) {

-					return e;

-				}

-				if (state.backtracking == 0) {

-					e = factory.createConstructorCall(t);

-				}

-

-			}

-

-			if (state.backtracking == 0) {

-				addLocation(e, startToken, /* endToken */(CommonToken) input.LT(-1));

-			}

-		} catch (RecognitionException re) {

-			reportError(re);

-			recover(input, re);

-		} finally {

-		}

-		return e;

-	}

-

-	// $ANTLR end "constructorCall"

-

-	// $ANTLR start "booleanLiteral"

-	// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:339:1: booleanLiteral returns [Expression

-	// e=factory.createBooleanLiteral(id(input.LT(1)))] : ( 'false' | 'true' );

-	public final Expression booleanLiteral() throws RecognitionException {

-		Expression e = factory.createBooleanLiteral(id(input.LT(1)));

-

-		final CommonToken startToken = (CommonToken) input.LT(1);

-		try {

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:342:1: ( 'false' | 'true' )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:

-			{

-				if (((input.LA(1) >= 68) && (input.LA(1) <= 69))) {

-					input.consume();

-					state.errorRecovery = false;

-					state.failed = false;

-				} else {

-					if (state.backtracking > 0) {

-						state.failed = true;

-						return e;

-					}

-					MismatchedSetException mse = new MismatchedSetException(null, input);

-					throw mse;

-				}

-

-			}

-

-			if (state.backtracking == 0) {

-				addLocation(e, startToken, /* endToken */(CommonToken) input.LT(-1));

-			}

-		} catch (RecognitionException re) {

-			reportError(re);

-			recover(input, re);

-		} finally {

-		}

-		return e;

-	}

-

-	// $ANTLR end "booleanLiteral"

-

-	// $ANTLR start "nullLiteral"

-	// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:346:1: nullLiteral returns [Expression e=factory.createNullLiteral(id(input.LT(1)))]

-	// : 'null' ;

-	public final Expression nullLiteral() throws RecognitionException {

-		Expression e = factory.createNullLiteral(id(input.LT(1)));

-

-		final CommonToken startToken = (CommonToken) input.LT(1);

-		try {

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:349:1: ( 'null' )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:350:2: 'null'

-			{

-				match(input, 70, FOLLOW_70_in_nullLiteral1737);

-				if (state.failed) {

-					return e;

-				}

-

-			}

-

-			if (state.backtracking == 0) {

-				addLocation(e, startToken, /* endToken */(CommonToken) input.LT(-1));

-			}

-		} catch (RecognitionException re) {

-			reportError(re);

-			recover(input, re);

-		} finally {

-		}

-		return e;

-	}

-

-	// $ANTLR end "nullLiteral"

-

-	// $ANTLR start "numberLiteral"

-	// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:353:1: numberLiteral returns [Expression e] : (a= IntLiteral | a= IntLiteral b= '.'

-	// c= IntLiteral );

-	public final Expression numberLiteral() throws RecognitionException {

-		Expression e = null;

-

-		Token a = null;

-		Token b = null;

-		Token c = null;

-

-		final CommonToken startToken = (CommonToken) input.LT(1);

-		try {

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:356:1: (a= IntLiteral | a= IntLiteral b= '.' c= IntLiteral )

-			int alt47 = 2;

-			int LA47_0 = input.LA(1);

-

-			if ((LA47_0 == IntLiteral)) {

-				int LA47_1 = input.LA(2);

-

-				if ((LA47_1 == 37)) {

-					int LA47_2 = input.LA(3);

-

-					if ((LA47_2 == IntLiteral)) {

-						alt47 = 2;

-					} else if (((LA47_2 == Identifier) || ((LA47_2 >= 39) && (LA47_2 <= 41)) || ((LA47_2 >= 71) && (LA47_2 <= 79)))) {

-						alt47 = 1;

-					} else {

-						if (state.backtracking > 0) {

-							state.failed = true;

-							return e;

-						}

-						NoViableAltException nvae = new NoViableAltException("", 47, 2, input);

-

-						throw nvae;

-					}

-				} else if (((LA47_1 == EOF) || (LA47_1 == 19) || ((LA47_1 >= 25) && (LA47_1 <= 27)) || ((LA47_1 >= 30) && (LA47_1 <= 32))

-						|| ((LA47_1 >= 44) && (LA47_1 <= 47)) || ((LA47_1 >= 50) && (LA47_1 <= 64)))) {

-					alt47 = 1;

-				} else {

-					if (state.backtracking > 0) {

-						state.failed = true;

-						return e;

-					}

-					NoViableAltException nvae = new NoViableAltException("", 47, 1, input);

-

-					throw nvae;

-				}

-			} else {

-				if (state.backtracking > 0) {

-					state.failed = true;

-					return e;

-				}

-				NoViableAltException nvae = new NoViableAltException("", 47, 0, input);

-

-				throw nvae;

-			}

-			switch (alt47) {

-			case 1:

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:357:4: a= IntLiteral

-			{

-				a = (Token) match(input, IntLiteral, FOLLOW_IntLiteral_in_numberLiteral1764);

-				if (state.failed) {

-					return e;

-				}

-				if (state.backtracking == 0) {

-					e = factory.createIntegerLiteral(id(a));

-				}

-

-			}

-				break;

-			case 2:

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:358:4: a= IntLiteral b= '.' c= IntLiteral

-			{

-				a = (Token) match(input, IntLiteral, FOLLOW_IntLiteral_in_numberLiteral1773);

-				if (state.failed) {

-					return e;

-				}

-				b = (Token) match(input, 37, FOLLOW_37_in_numberLiteral1777);

-				if (state.failed) {

-					return e;

-				}

-				c = (Token) match(input, IntLiteral, FOLLOW_IntLiteral_in_numberLiteral1781);

-				if (state.failed) {

-					return e;

-				}

-				if (state.backtracking == 0) {

-					e = factory.createRealLiteral(id(a).append(id(b)).append(id(c)));

-				}

-

-			}

-				break;

-

-			}

-			if (state.backtracking == 0) {

-				addLocation(e, startToken, /* endToken */(CommonToken) input.LT(-1));

-			}

-		} catch (RecognitionException re) {

-			reportError(re);

-			recover(input, re);

-		} finally {

-		}

-		return e;

-	}

-

-	// $ANTLR end "numberLiteral"

-

-	// $ANTLR start "collectionExpression"

-	// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:362:1: collectionExpression returns [FeatureCall e] : (name= 'typeSelect' '(' t=

-	// type ')' | name= ( 'collect' | 'select' | 'selectFirst' | 'reject' | 'exists' | 'notExists' | 'sortBy' | 'forAll' ) '(' (var= identifier '|' )?

-	// x= expression ')' );

-	public final FeatureCall collectionExpression() throws RecognitionException {

-		FeatureCall e = null;

-

-		Token name = null;

-		Identifier t = null;

-

-		Identifier var = null;

-

-		Expression x = null;

-

-		final CommonToken startToken = (CommonToken) input.LT(1);

-		try {

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:365:1: (name= 'typeSelect' '(' t= type ')' | name= ( 'collect' | 'select' |

-			// 'selectFirst' | 'reject' | 'exists' | 'notExists' | 'sortBy' | 'forAll' ) '(' (var= identifier '|' )? x= expression ')' )

-			int alt49 = 2;

-			int LA49_0 = input.LA(1);

-

-			if ((LA49_0 == 71)) {

-				alt49 = 1;

-			} else if ((((LA49_0 >= 72) && (LA49_0 <= 79)))) {

-				alt49 = 2;

-			} else {

-				if (state.backtracking > 0) {

-					state.failed = true;

-					return e;

-				}

-				NoViableAltException nvae = new NoViableAltException("", 49, 0, input);

-

-				throw nvae;

-			}

-			switch (alt49) {

-			case 1:

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:366:3: name= 'typeSelect' '(' t= type ')'

-			{

-				name = (Token) match(input, 71, FOLLOW_71_in_collectionExpression1810);

-				if (state.failed) {

-					return e;

-				}

-				match(input, 29, FOLLOW_29_in_collectionExpression1814);

-				if (state.failed) {

-					return e;

-				}

-				pushFollow(FOLLOW_type_in_collectionExpression1818);

-				t = type();

-

-				state._fsp--;

-				if (state.failed) {

-					return e;

-				}

-				match(input, 32, FOLLOW_32_in_collectionExpression1820);

-				if (state.failed) {

-					return e;

-				}

-				if (state.backtracking == 0) {

-					e = factory.createTypeSelectExpression(id(name), t);

-				}

-

-			}

-				break;

-			case 2:

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:369:5: name= ( 'collect' | 'select' | 'selectFirst' | 'reject' | 'exists' |

-			// 'notExists' | 'sortBy' | 'forAll' ) '(' (var= identifier '|' )? x= expression ')'

-			{

-				name = (Token) input.LT(1);

-				if (((input.LA(1) >= 72) && (input.LA(1) <= 79))) {

-					input.consume();

-					state.errorRecovery = false;

-					state.failed = false;

-				} else {

-					if (state.backtracking > 0) {

-						state.failed = true;

-						return e;

-					}

-					MismatchedSetException mse = new MismatchedSetException(null, input);

-					throw mse;

-				}

-

-				match(input, 29, FOLLOW_29_in_collectionExpression1883);

-				if (state.failed) {

-					return e;

-				}

-				// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:376:19: (var= identifier '|' )?

-				int alt48 = 2;

-				int LA48_0 = input.LA(1);

-

-				if ((LA48_0 == Identifier)) {

-					int LA48_1 = input.LA(2);

-

-					if ((LA48_1 == 80)) {

-						alt48 = 1;

-					}

-				}

-				switch (alt48) {

-				case 1:

-				// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:376:20: var= identifier '|'

-				{

-					pushFollow(FOLLOW_identifier_in_collectionExpression1888);

-					var = identifier();

-

-					state._fsp--;

-					if (state.failed) {

-						return e;

-					}

-					match(input, 80, FOLLOW_80_in_collectionExpression1890);

-					if (state.failed) {

-						return e;

-					}

-

-				}

-					break;

-

-				}

-

-				pushFollow(FOLLOW_expression_in_collectionExpression1896);

-				x = expression();

-

-				state._fsp--;

-				if (state.failed) {

-					return e;

-				}

-				match(input, 32, FOLLOW_32_in_collectionExpression1898);

-				if (state.failed) {

-					return e;

-				}

-				if (state.backtracking == 0) {

-					e = factory.createCollectionExpression(id(name), var, x);

-				}

-

-			}

-				break;

-

-			}

-			if (state.backtracking == 0) {

-				addLocation(e, startToken, /* endToken */(CommonToken) input.LT(-1));

-			}

-		} catch (RecognitionException re) {

-			reportError(re);

-			recover(input, re);

-		} finally {

-		}

-		return e;

-	}

-

-	// $ANTLR end "collectionExpression"

-

-	// $ANTLR start "declaredParameterList"

-	// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:382:1: declaredParameterList returns [List<DeclaredParameter> l = new

-	// BasicEList<DeclaredParameter>()] : dp= declaredParameter ( ',' dp1= declaredParameter )* ;

-	public final List<DeclaredParameter> declaredParameterList() throws RecognitionException {

-		List<DeclaredParameter> l = new BasicEList<DeclaredParameter>();

-

-		DeclaredParameter dp = null;

-

-		DeclaredParameter dp1 = null;

-

-		final CommonToken startToken = (CommonToken) input.LT(1);

-		try {

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:385:1: (dp= declaredParameter ( ',' dp1= declaredParameter )* )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:386:2: dp= declaredParameter ( ',' dp1= declaredParameter )*

-			{

-				pushFollow(FOLLOW_declaredParameter_in_declaredParameterList1930);

-				dp = declaredParameter();

-

-				state._fsp--;

-				if (state.failed) {

-					return l;

-				}

-				if (state.backtracking == 0) {

-					if (dp != null) {

-						l.add(dp);

-					}

-				}

-				// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:386:50: ( ',' dp1= declaredParameter )*

-				loop50: do {

-					int alt50 = 2;

-					int LA50_0 = input.LA(1);

-

-					if ((LA50_0 == 30)) {

-						int LA50_1 = input.LA(2);

-

-						if (((LA50_1 == Identifier) || ((LA50_1 >= 39) && (LA50_1 <= 41)))) {

-							alt50 = 1;

-						}

-

-					}

-

-					switch (alt50) {

-					case 1:

-					// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:386:51: ',' dp1= declaredParameter

-					{

-						match(input, 30, FOLLOW_30_in_declaredParameterList1934);

-						if (state.failed) {

-							return l;

-						}

-						pushFollow(FOLLOW_declaredParameter_in_declaredParameterList1938);

-						dp1 = declaredParameter();

-

-						state._fsp--;

-						if (state.failed) {

-							return l;

-						}

-						if (state.backtracking == 0) {

-							if (dp1 != null) {

-								l.add(dp1);

-							}

-						}

-

-					}

-						break;

-

-					default:

-						break loop50;

-					}

-				} while (true);

-

-			}

-

-			if (state.backtracking == 0) {

-				addLocation(dp, startToken, /* endToken */(CommonToken) input.LT(-1));

-			}

-		} catch (RecognitionException re) {

-			reportError(re);

-			recover(input, re);

-		} finally {

-		}

-		return l;

-	}

-

-	// $ANTLR end "declaredParameterList"

-

-	// $ANTLR start "declaredParameter"

-	// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:389:1: declaredParameter returns [DeclaredParameter dp] : t= type name= identifier ;

-	public final DeclaredParameter declaredParameter() throws RecognitionException {

-		DeclaredParameter dp = null;

-

-		Identifier t = null;

-

-		Identifier name = null;

-

-		final CommonToken startToken = (CommonToken) input.LT(1);

-		try {

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:392:1: (t= type name= identifier )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:393:2: t= type name= identifier

-			{

-				pushFollow(FOLLOW_type_in_declaredParameter1966);

-				t = type();

-

-				state._fsp--;

-				if (state.failed) {

-					return dp;

-				}

-				pushFollow(FOLLOW_identifier_in_declaredParameter1970);

-				name = identifier();

-

-				state._fsp--;

-				if (state.failed) {

-					return dp;

-				}

-				if (state.backtracking == 0) {

-					dp = factory.createDeclaredParameter(t, name);

-				}

-

-			}

-

-			if (state.backtracking == 0) {

-				addLocation(dp, startToken, /* endToken */(CommonToken) input.LT(-1));

-			}

-		} catch (RecognitionException re) {

-			reportError(re);

-			recover(input, re);

-		} finally {

-		}

-		return dp;

-	}

-

-	// $ANTLR end "declaredParameter"

-

-	// $ANTLR start "parameterList"

-	// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:396:1: parameterList returns [List<Expression> list = new BasicEList<Expression>()]

-	// : a= expression ( ',' b= expression )* ;

-	public final List<Expression> parameterList() throws RecognitionException {

-		List<Expression> list = new BasicEList<Expression>();

-

-		Expression a = null;

-

-		Expression b = null;

-

-		try {

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:396:79: (a= expression ( ',' b= expression )* )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:397:5: a= expression ( ',' b= expression )*

-			{

-				pushFollow(FOLLOW_expression_in_parameterList1992);

-				a = expression();

-

-				state._fsp--;

-				if (state.failed) {

-					return list;

-				}

-				if (state.backtracking == 0) {

-					if (a != null) {

-						list.add(a);

-					}

-				}

-				// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:397:47: ( ',' b= expression )*

-				loop51: do {

-					int alt51 = 2;

-					int LA51_0 = input.LA(1);

-

-					if ((LA51_0 == 30)) {

-						alt51 = 1;

-					}

-

-					switch (alt51) {

-					case 1:

-					// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:397:48: ',' b= expression

-					{

-						match(input, 30, FOLLOW_30_in_parameterList1997);

-						if (state.failed) {

-							return list;

-						}

-						pushFollow(FOLLOW_expression_in_parameterList2001);

-						b = expression();

-

-						state._fsp--;

-						if (state.failed) {

-							return list;

-						}

-						if (state.backtracking == 0) {

-							if (b != null) {

-								list.add(b);

-							}

-						}

-

-					}

-						break;

-

-					default:

-						break loop51;

-					}

-				} while (true);

-

-			}

-

-		} catch (RecognitionException re) {

-			reportError(re);

-			recover(input, re);

-		} finally {

-		}

-		return list;

-	}

-

-	// $ANTLR end "parameterList"

-

-	// $ANTLR start "type"

-	// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:402:1: type returns [Identifier id] : (a= collectionType | b= simpleType );

-	public final Identifier type() throws RecognitionException {

-		Identifier id = null;

-

-		Identifier a = null;

-

-		Identifier b = null;

-

-		final CommonToken startToken = (CommonToken) input.LT(1);

-		try {

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:405:1: (a= collectionType | b= simpleType )

-			int alt52 = 2;

-			int LA52_0 = input.LA(1);

-

-			if ((((LA52_0 >= 39) && (LA52_0 <= 41)))) {

-				alt52 = 1;

-			} else if ((LA52_0 == Identifier)) {

-				alt52 = 2;

-			} else {

-				if (state.backtracking > 0) {

-					state.failed = true;

-					return id;

-				}

-				NoViableAltException nvae = new NoViableAltException("", 52, 0, input);

-

-				throw nvae;

-			}

-			switch (alt52) {

-			case 1:

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:406:2: a= collectionType

-			{

-				pushFollow(FOLLOW_collectionType_in_type2035);

-				a = collectionType();

-

-				state._fsp--;

-				if (state.failed) {

-					return id;

-				}

-				if (state.backtracking == 0) {

-					id = a;

-				}

-

-			}

-				break;

-			case 2:

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:407:2: b= simpleType

-			{

-				pushFollow(FOLLOW_simpleType_in_type2045);

-				b = simpleType();

-

-				state._fsp--;

-				if (state.failed) {

-					return id;

-				}

-				if (state.backtracking == 0) {

-					id = b;

-				}

-

-			}

-				break;

-

-			}

-			if (state.backtracking == 0) {

-				addLocation(id, startToken, /* endToken */(CommonToken) input.LT(-1));

-			}

-		} catch (RecognitionException re) {

-			reportError(re);

-			recover(input, re);

-		} finally {

-		}

-		return id;

-	}

-

-	// $ANTLR end "type"

-

-	// $ANTLR start "collectionType"

-	// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:410:1: collectionType returns [Identifier id ] : cl= ( 'Collection' | 'List' | 'Set'

-	// ) (b= '[' id1= simpleType c= ']' )? ;

-	public final Identifier collectionType() throws RecognitionException {

-		Identifier id = null;

-

-		Token cl = null;

-		Token b = null;

-		Token c = null;

-		Identifier id1 = null;

-

-		final CommonToken startToken = (CommonToken) input.LT(1);

-		try {

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:413:1: (cl= ( 'Collection' | 'List' | 'Set' ) (b= '[' id1= simpleType c= ']'

-			// )? )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:414:3: cl= ( 'Collection' | 'List' | 'Set' ) (b= '[' id1= simpleType c= ']'

-			// )?

-			{

-				cl = (Token) input.LT(1);

-				if (((input.LA(1) >= 39) && (input.LA(1) <= 41))) {

-					input.consume();

-					state.errorRecovery = false;

-					state.failed = false;

-				} else {

-					if (state.backtracking > 0) {

-						state.failed = true;

-						return id;

-					}

-					MismatchedSetException mse = new MismatchedSetException(null, input);

-					throw mse;

-				}

-

-				if (state.backtracking == 0) {

-					id = id(cl);

-				}

-				// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:415:3: (b= '[' id1= simpleType c= ']' )?

-				int alt53 = 2;

-				int LA53_0 = input.LA(1);

-

-				if ((LA53_0 == 81)) {

-					alt53 = 1;

-				}

-				switch (alt53) {

-				case 1:

-				// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:415:4: b= '[' id1= simpleType c= ']'

-				{

-					b = (Token) match(input, 81, FOLLOW_81_in_collectionType2096);

-					if (state.failed) {

-						return id;

-					}

-					pushFollow(FOLLOW_simpleType_in_collectionType2100);

-					id1 = simpleType();

-

-					state._fsp--;

-					if (state.failed) {

-						return id;

-					}

-					c = (Token) match(input, 82, FOLLOW_82_in_collectionType2104);

-					if (state.failed) {

-						return id;

-					}

-					if (state.backtracking == 0) {

-						id.append(id(b));

-						id.append(id1);

-						id.append(id(c));

-					}

-

-				}

-					break;

-

-				}

-

-			}

-

-			if (state.backtracking == 0) {

-				addLocation(id, startToken, /* endToken */(CommonToken) input.LT(-1));

-			}

-		} catch (RecognitionException re) {

-			reportError(re);

-			recover(input, re);

-		} finally {

-		}

-		return id;

-	}

-

-	// $ANTLR end "collectionType"

-

-	// $ANTLR start "simpleType"

-	// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:418:1: simpleType returns [Identifier id] : x= identifier (d= '::' end= identifier

-	// )* ;

-	public final Identifier simpleType() throws RecognitionException {

-		Identifier id = null;

-

-		Token d = null;

-		Identifier x = null;

-

-		Identifier end = null;

-

-		final CommonToken startToken = (CommonToken) input.LT(1);

-		try {

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:421:1: (x= identifier (d= '::' end= identifier )* )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:422:2: x= identifier (d= '::' end= identifier )*

-			{

-				pushFollow(FOLLOW_identifier_in_simpleType2132);

-				x = identifier();

-

-				state._fsp--;

-				if (state.failed) {

-					return id;

-				}

-				if (state.backtracking == 0) {

-					id = x;

-				}

-				// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:423:2: (d= '::' end= identifier )*

-				loop54: do {

-					int alt54 = 2;

-					int LA54_0 = input.LA(1);

-

-					if ((LA54_0 == 33)) {

-						alt54 = 1;

-					}

-

-					switch (alt54) {

-					case 1:

-					// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:423:3: d= '::' end= identifier

-					{

-						d = (Token) match(input, 33, FOLLOW_33_in_simpleType2140);

-						if (state.failed) {

-							return id;

-						}

-						pushFollow(FOLLOW_identifier_in_simpleType2144);

-						end = identifier();

-

-						state._fsp--;

-						if (state.failed) {

-							return id;

-						}

-						if (state.backtracking == 0) {

-							id.append(id(d));

-							id.append(end);

-						}

-

-					}

-						break;

-

-					default:

-						break loop54;

-					}

-				} while (true);

-

-			}

-

-			if (state.backtracking == 0) {

-				addLocation(id, startToken, /* endToken */(CommonToken) input.LT(-1));

-			}

-		} catch (RecognitionException re) {

-			reportError(re);

-			recover(input, re);

-		} finally {

-		}

-		return id;

-	}

-

-	// $ANTLR end "simpleType"

-

-	// $ANTLR start "identifier"

-	// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:426:1: identifier returns [Identifier r] : x= Identifier ;

-	public final Identifier identifier() throws RecognitionException {

-		Identifier r = null;

-

-		Token x = null;

-

-		final CommonToken startToken = (CommonToken) input.LT(1);

-		try {

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:429:1: (x= Identifier )

-			// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:430:4: x= Identifier

-			{

-				x = (Token) match(input, Identifier, FOLLOW_Identifier_in_identifier2175);

-				if (state.failed) {

-					return r;

-				}

-				if (state.backtracking == 0) {

-					r = id(x);

-				}

-

-			}

-

-			if (state.backtracking == 0) {

-				addLocation(r, startToken, /* endToken */(CommonToken) input.LT(-1));

-			}

-		} catch (RecognitionException re) {

-			reportError(re);

-			recover(input, re);

-		} finally {

-		}

-		return r;

-	}

-

-	// $ANTLR end "identifier"

-

-	// $ANTLR start synpred1_Xtend

-	public final void synpred1_Xtend_fragment() throws RecognitionException {

-		// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:174:5: ( '(' type ')' castedExpression )

-		// src\\org\\eclipse\\internal\\xtend\\xtend\\parser\\Xtend.g:174:6: '(' type ')' castedExpression

-		{

-			match(input, 29, FOLLOW_29_in_synpred1_Xtend751);

-			if (state.failed) {

-				return;

-			}

-			pushFollow(FOLLOW_type_in_synpred1_Xtend753);

-			type();

-

-			state._fsp--;

-			if (state.failed) {

-				return;

-			}

-			match(input, 32, FOLLOW_32_in_synpred1_Xtend755);

-			if (state.failed) {

-				return;

-			}

-			pushFollow(FOLLOW_castedExpression_in_synpred1_Xtend757);

-			castedExpression();

-

-			state._fsp--;

-			if (state.failed) {

-				return;

-			}

-

-		}

-	}

-

-	// $ANTLR end synpred1_Xtend

-

-	// Delegated rules

-

-	public final boolean synpred1_Xtend() {

-		state.backtracking++;

-		int start = input.mark();

-		try {

-			synpred1_Xtend_fragment(); // can never throw exception

-		} catch (RecognitionException re) {

-			System.err.println("impossible: " + re);

-		}

-		boolean success = !state.failed;

-		input.rewind(start);

-		state.backtracking--;

-		state.failed = false;

-		return success;

-	}

-

-	protected DFA27 dfa27 = new DFA27(this);

-	static final String DFA27_eotS = "\22\uffff";

-	static final String DFA27_eofS = "\22\uffff";

-	static final String DFA27_minS = "\1\4\1\0\20\uffff";

-	static final String DFA27_maxS = "\1\117\1\0\20\uffff";

-	static final String DFA27_acceptS = "\2\uffff\1\2\16\uffff\1\1";

-	static final String DFA27_specialS = "\1\uffff\1\0\20\uffff}>";

-	static final String[] DFA27_transitionS = { "\3\2\21\uffff\1\2\4\uffff\1\1\11\uffff\3\2\6\uffff\2\2\15\uffff" + "\1\2\1\uffff\17\2", "\1\uffff",

-			"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" };

-

-	static final short[] DFA27_eot = DFA.unpackEncodedString(DFA27_eotS);

-	static final short[] DFA27_eof = DFA.unpackEncodedString(DFA27_eofS);

-	static final char[] DFA27_min = DFA.unpackEncodedStringToUnsignedChars(DFA27_minS);

-	static final char[] DFA27_max = DFA.unpackEncodedStringToUnsignedChars(DFA27_maxS);

-	static final short[] DFA27_accept = DFA.unpackEncodedString(DFA27_acceptS);

-	static final short[] DFA27_special = DFA.unpackEncodedString(DFA27_specialS);

-	static final short[][] DFA27_transition;

-

-	static {

-		int numStates = DFA27_transitionS.length;

-		DFA27_transition = new short[numStates][];

-		for (int i = 0; i < numStates; i++) {

-			DFA27_transition[i] = DFA.unpackEncodedString(DFA27_transitionS[i]);

-		}

-	}

-

-	class DFA27 extends DFA {

-

-		public DFA27(final BaseRecognizer recognizer) {

-			this.recognizer = recognizer;

-			decisionNumber = 27;

-			eot = DFA27_eot;

-			eof = DFA27_eof;

-			min = DFA27_min;

-			max = DFA27_max;

-			accept = DFA27_accept;

-			special = DFA27_special;

-			transition = DFA27_transition;

-		}

-

-		public String getDescription() {

-			return "170:1: castedExpression returns [Expression e] : ( ( '(' type ')' castedExpression )=> '(' t= type ')' x= chainExpression | x= chainExpression );";

-		}

-

-		public int specialStateTransition(int s, final IntStream _input) throws NoViableAltException {

-			TokenStream input = (TokenStream) _input;

-			int _s = s;

-			switch (s) {

-			case 0:

-				int LA27_1 = input.LA(1);

-

-				int index27_1 = input.index();

-				input.rewind();

-				s = -1;

-				if ((synpred1_Xtend())) {

-					s = 17;

-				}

-

-				else if ((true)) {

-					s = 2;

-				}

-

-				input.seek(index27_1);

-				if (s >= 0) {

-					return s;

-				}

-				break;

-			}

-			if (state.backtracking > 0) {

-				state.failed = true;

-				return -1;

-			}

-			NoViableAltException nvae = new NoViableAltException(getDescription(), 27, _s, input);

-			error(nvae);

-			throw nvae;

-		}

-	}

-

-	public static final BitSet FOLLOW_nsImport_in_file55 = new BitSet(new long[] { 0x000003CC10540040L });

-	public static final BitSet FOLLOW_extImport_in_file65 = new BitSet(new long[] { 0x000003CC10500040L });

-	public static final BitSet FOLLOW_extension_in_file75 = new BitSet(new long[] { 0x000003CC10400040L });

-	public static final BitSet FOLLOW_around_in_file85 = new BitSet(new long[] { 0x000003CC10400040L });

-	public static final BitSet FOLLOW_check_in_file95 = new BitSet(new long[] { 0x000003CC10400040L });

-	public static final BitSet FOLLOW_EOF_in_file103 = new BitSet(new long[] { 0x0000000000000002L });

-	public static final BitSet FOLLOW_18_in_nsImport131 = new BitSet(new long[] { 0x0000038000000040L });

-	public static final BitSet FOLLOW_type_in_nsImport135 = new BitSet(new long[] { 0x0000000000080000L });

-	public static final BitSet FOLLOW_19_in_nsImport139 = new BitSet(new long[] { 0x0000000000000002L });

-	public static final BitSet FOLLOW_20_in_extImport164 = new BitSet(new long[] { 0x0000038000000040L });

-	public static final BitSet FOLLOW_type_in_extImport168 = new BitSet(new long[] { 0x0000000000280000L });

-	public static final BitSet FOLLOW_21_in_extImport173 = new BitSet(new long[] { 0x0000000000080000L });

-	public static final BitSet FOLLOW_19_in_extImport177 = new BitSet(new long[] { 0x0000000000000002L });

-	public static final BitSet FOLLOW_22_in_check202 = new BitSet(new long[] { 0x0000038000000040L });

-	public static final BitSet FOLLOW_type_in_check206 = new BitSet(new long[] { 0x0000000007800000L });

-	public static final BitSet FOLLOW_23_in_check208 = new BitSet(new long[] { 0x0000038000000040L });

-	public static final BitSet FOLLOW_identifier_in_check211 = new BitSet(new long[] { 0x0000000007000000L });

-	public static final BitSet FOLLOW_24_in_check216 = new BitSet(new long[] { 0x8003078021000070L, 0x000000000000FFFEL });

-	public static final BitSet FOLLOW_expression_in_check220 = new BitSet(new long[] { 0x0000000006000000L });

-	public static final BitSet FOLLOW_25_in_check227 = new BitSet(new long[] { 0x8003078021000070L, 0x000000000000FFFEL });

-	public static final BitSet FOLLOW_26_in_check229 = new BitSet(new long[] { 0x8003078021000070L, 0x000000000000FFFEL });

-	public static final BitSet FOLLOW_expression_in_check234 = new BitSet(new long[] { 0x0000000008000000L });

-	public static final BitSet FOLLOW_27_in_check236 = new BitSet(new long[] { 0x8003078021000070L, 0x000000000000FFFEL });

-	public static final BitSet FOLLOW_expression_in_check241 = new BitSet(new long[] { 0x0000000000080000L });

-	public static final BitSet FOLLOW_19_in_check243 = new BitSet(new long[] { 0x0000000000000002L });

-	public static final BitSet FOLLOW_28_in_around272 = new BitSet(new long[] { 0x0000038080000040L });

-	public static final BitSet FOLLOW_pointcut_in_around276 = new BitSet(new long[] { 0x0000000020000000L });

-	public static final BitSet FOLLOW_29_in_around278 = new BitSet(new long[] { 0x0000038180000040L });

-	public static final BitSet FOLLOW_declaredParameterList_in_around283 = new BitSet(new long[] { 0x00000001C0000000L });

-	public static final BitSet FOLLOW_30_in_around286 = new BitSet(new long[] { 0x0000000080000000L });

-	public static final BitSet FOLLOW_31_in_around291 = new BitSet(new long[] { 0x0000000100000000L });

-	public static final BitSet FOLLOW_31_in_around299 = new BitSet(new long[] { 0x0000000100000000L });

-	public static final BitSet FOLLOW_32_in_around303 = new BitSet(new long[] { 0x0000000008000000L });

-	public static final BitSet FOLLOW_27_in_around305 = new BitSet(new long[] { 0x8003078021000070L, 0x000000000000FFFEL });

-	public static final BitSet FOLLOW_expression_in_around314 = new BitSet(new long[] { 0x0000000000080000L });

-	public static final BitSet FOLLOW_19_in_around316 = new BitSet(new long[] { 0x0000000000000002L });

-	public static final BitSet FOLLOW_31_in_pointcut352 = new BitSet(new long[] { 0x0000038280000042L });

-	public static final BitSet FOLLOW_identifier_in_pointcut361 = new BitSet(new long[] { 0x0000038280000042L });

-	public static final BitSet FOLLOW_31_in_pointcut372 = new BitSet(new long[] { 0x0000038280000042L });

-	public static final BitSet FOLLOW_identifier_in_pointcut383 = new BitSet(new long[] { 0x0000038280000042L });

-	public static final BitSet FOLLOW_33_in_pointcut394 = new BitSet(new long[] { 0x0000038280000042L });

-	public static final BitSet FOLLOW_34_in_extension426 = new BitSet(new long[] { 0x0000038800000040L });

-	public static final BitSet FOLLOW_35_in_extension433 = new BitSet(new long[] { 0x0000038000000040L });

-	public static final BitSet FOLLOW_type_in_extension440 = new BitSet(new long[] { 0x0000038000000040L });

-	public static final BitSet FOLLOW_identifier_in_extension446 = new BitSet(new long[] { 0x0000000020000000L });

-	public static final BitSet FOLLOW_29_in_extension448 = new BitSet(new long[] { 0x0000038100000040L });

-	public static final BitSet FOLLOW_declaredParameterList_in_extension453 = new BitSet(new long[] { 0x0000000100000000L });

-	public static final BitSet FOLLOW_32_in_extension457 = new BitSet(new long[] { 0x0000000008000000L });

-	public static final BitSet FOLLOW_27_in_extension459 = new BitSet(new long[] { 0x8003079021000070L, 0x000000000000FFFEL });

-	public static final BitSet FOLLOW_36_in_extension466 = new BitSet(new long[] { 0x0000038000000040L });

-	public static final BitSet FOLLOW_javaType_in_extension470 = new BitSet(new long[] { 0x0000002000000000L });

-	public static final BitSet FOLLOW_37_in_extension472 = new BitSet(new long[] { 0x0000038000000040L });

-	public static final BitSet FOLLOW_identifier_in_extension476 = new BitSet(new long[] { 0x0000000020000000L });

-	public static final BitSet FOLLOW_29_in_extension478 = new BitSet(new long[] { 0x0000038100000040L });

-	public static final BitSet FOLLOW_javaType_in_extension482 = new BitSet(new long[] { 0x0000000140000000L });

-	public static final BitSet FOLLOW_30_in_extension486 = new BitSet(new long[] { 0x0000038000000040L });

-	public static final BitSet FOLLOW_javaType_in_extension490 = new BitSet(new long[] { 0x0000000140000000L });

-	public static final BitSet FOLLOW_32_in_extension498 = new BitSet(new long[] { 0x0000000000080000L });

-	public static final BitSet FOLLOW_19_in_extension500 = new BitSet(new long[] { 0x0000000000000002L });

-	public static final BitSet FOLLOW_expression_in_extension510 = new BitSet(new long[] { 0x0000000000080000L });

-	public static final BitSet FOLLOW_19_in_extension512 = new BitSet(new long[] { 0x0000000000000002L });

-	public static final BitSet FOLLOW_34_in_extension526 = new BitSet(new long[] { 0x0000004000000000L });

-	public static final BitSet FOLLOW_38_in_extension532 = new BitSet(new long[] { 0x0000038000000040L });

-	public static final BitSet FOLLOW_type_in_extension536 = new BitSet(new long[] { 0x0000038000000040L });

-	public static final BitSet FOLLOW_identifier_in_extension541 = new BitSet(new long[] { 0x0000038000000040L });

-	public static final BitSet FOLLOW_identifier_in_extension547 = new BitSet(new long[] { 0x0000000020000000L });

-	public static final BitSet FOLLOW_29_in_extension549 = new BitSet(new long[] { 0x0000038100000040L });

-	public static final BitSet FOLLOW_declaredParameterList_in_extension554 = new BitSet(new long[] { 0x0000000100000000L });

-	public static final BitSet FOLLOW_32_in_extension558 = new BitSet(new long[] { 0x0000000008000000L });

-	public static final BitSet FOLLOW_27_in_extension560 = new BitSet(new long[] { 0x8003078021000070L, 0x000000000000FFFEL });

-	public static final BitSet FOLLOW_expression_in_extension566 = new BitSet(new long[] { 0x0000000000080000L });

-	public static final BitSet FOLLOW_19_in_extension568 = new BitSet(new long[] { 0x0000000000000002L });

-	public static final BitSet FOLLOW_identifier_in_javaType598 = new BitSet(new long[] { 0x0000002000000002L });

-	public static final BitSet FOLLOW_37_in_javaType607 = new BitSet(new long[] { 0x0000038000000040L });

-	public static final BitSet FOLLOW_identifier_in_javaType613 = new BitSet(new long[] { 0x0000002000000002L });

-	public static final BitSet FOLLOW_39_in_javaType619 = new BitSet(new long[] { 0x0000002000000002L });

-	public static final BitSet FOLLOW_40_in_javaType628 = new BitSet(new long[] { 0x0000002000000002L });

-	public static final BitSet FOLLOW_41_in_javaType634 = new BitSet(new long[] { 0x0000002000000002L });

-	public static final BitSet FOLLOW_letExpression_in_expression665 = new BitSet(new long[] { 0x0000000000000002L });

-	public static final BitSet FOLLOW_42_in_letExpression693 = new BitSet(new long[] { 0x0000038000000040L });

-	public static final BitSet FOLLOW_identifier_in_letExpression697 = new BitSet(new long[] { 0x0000080000000000L });

-	public static final BitSet FOLLOW_43_in_letExpression699 = new BitSet(new long[] { 0x8003078021000070L, 0x000000000000FFFEL });

-	public static final BitSet FOLLOW_castedExpression_in_letExpression703 = new BitSet(new long[] { 0x0000000008000000L });

-	public static final BitSet FOLLOW_27_in_letExpression705 = new BitSet(new long[] { 0x8003078021000070L, 0x000000000000FFFEL });

-	public static final BitSet FOLLOW_expression_in_letExpression709 = new BitSet(new long[] { 0x0000000000000002L });

-	public static final BitSet FOLLOW_castedExpression_in_letExpression722 = new BitSet(new long[] { 0x0000000000000002L });

-	public static final BitSet FOLLOW_29_in_castedExpression762 = new BitSet(new long[] { 0x0000038000000040L });

-	public static final BitSet FOLLOW_type_in_castedExpression766 = new BitSet(new long[] { 0x0000000100000000L });

-	public static final BitSet FOLLOW_32_in_castedExpression768 = new BitSet(new long[] { 0x8003078021000070L, 0x000000000000FFFEL });

-	public static final BitSet FOLLOW_chainExpression_in_castedExpression772 = new BitSet(new long[] { 0x0000000000000002L });

-	public static final BitSet FOLLOW_chainExpression_in_castedExpression781 = new BitSet(new long[] { 0x0000000000000002L });

-	public static final BitSet FOLLOW_ifExpression_in_chainExpression809 = new BitSet(new long[] { 0x0000100000000002L });

-	public static final BitSet FOLLOW_44_in_chainExpression815 = new BitSet(new long[] { 0x8003078021000070L, 0x000000000000FFFEL });

-	public static final BitSet FOLLOW_ifExpression_in_chainExpression819 = new BitSet(new long[] { 0x0000100000000002L });

-	public static final BitSet FOLLOW_switchExpression_in_ifExpression849 = new BitSet(new long[] { 0x0000200000000002L });

-	public static final BitSet FOLLOW_45_in_ifExpression853 = new BitSet(new long[] { 0x8003038020000070L, 0x000000000000FFFEL });

-	public static final BitSet FOLLOW_switchExpression_in_ifExpression857 = new BitSet(new long[] { 0x0000000008000000L });

-	public static final BitSet FOLLOW_27_in_ifExpression859 = new BitSet(new long[] { 0x8003038020000070L, 0x000000000000FFFEL });

-	public static final BitSet FOLLOW_switchExpression_in_ifExpression863 = new BitSet(new long[] { 0x0000000000000002L });

-	public static final BitSet FOLLOW_24_in_ifExpression871 = new BitSet(new long[] { 0x8003038020000070L, 0x000000000000FFFEL });

-	public static final BitSet FOLLOW_switchExpression_in_ifExpression875 = new BitSet(new long[] { 0x0000400000000000L });

-	public static final BitSet FOLLOW_46_in_ifExpression877 = new BitSet(new long[] { 0x8003038020000070L, 0x000000000000FFFEL });

-	public static final BitSet FOLLOW_switchExpression_in_ifExpression881 = new BitSet(new long[] { 0x0000800000000002L });

-	public static final BitSet FOLLOW_47_in_ifExpression884 = new BitSet(new long[] { 0x8003078021000070L, 0x000000000000FFFEL });

-	public static final BitSet FOLLOW_expression_in_ifExpression888 = new BitSet(new long[] { 0x0000000000000002L });

-	public static final BitSet FOLLOW_48_in_switchExpression918 = new BitSet(new long[] { 0x0002000020000000L });

-	public static final BitSet FOLLOW_29_in_switchExpression921 = new BitSet(new long[] { 0x8003038020000070L, 0x000000000000FFFEL });

-	public static final BitSet FOLLOW_orExpression_in_switchExpression927 = new BitSet(new long[] { 0x0000000100000000L });

-	public static final BitSet FOLLOW_32_in_switchExpression929 = new BitSet(new long[] { 0x0002000000000000L });

-	public static final BitSet FOLLOW_49_in_switchExpression936 = new BitSet(new long[] { 0x000C000000000000L });

-	public static final BitSet FOLLOW_50_in_switchExpression949 = new BitSet(new long[] { 0x8003038020000070L, 0x000000000000FFFEL });

-	public static final BitSet FOLLOW_orExpression_in_switchExpression953 = new BitSet(new long[] { 0x0000000008000000L });

-	public static final BitSet FOLLOW_27_in_switchExpression956 = new BitSet(new long[] { 0x8003038020000070L, 0x000000000000FFFEL });

-	public static final BitSet FOLLOW_orExpression_in_switchExpression961 = new BitSet(new long[] { 0x000C000000000000L });

-	public static final BitSet FOLLOW_51_in_switchExpression979 = new BitSet(new long[] { 0x0000000008000000L });

-	public static final BitSet FOLLOW_27_in_switchExpression981 = new BitSet(new long[] { 0x8003038020000070L, 0x000000000000FFFEL });

-	public static final BitSet FOLLOW_orExpression_in_switchExpression987 = new BitSet(new long[] { 0x0010000000000000L });

-	public static final BitSet FOLLOW_52_in_switchExpression992 = new BitSet(new long[] { 0x0000000000000002L });

-	public static final BitSet FOLLOW_orExpression_in_switchExpression1004 = new BitSet(new long[] { 0x0000000000000002L });

-	public static final BitSet FOLLOW_andExpression_in_orExpression1033 = new BitSet(new long[] { 0x0020000000000002L });

-	public static final BitSet FOLLOW_53_in_orExpression1040 = new BitSet(new long[] { 0x8003038020000070L, 0x000000000000FFFEL });

-	public static final BitSet FOLLOW_andExpression_in_orExpression1044 = new BitSet(new long[] { 0x0020000000000002L });

-	public static final BitSet FOLLOW_impliesExpression_in_andExpression1076 = new BitSet(new long[] { 0x0040000000000002L });

-	public static final BitSet FOLLOW_54_in_andExpression1083 = new BitSet(new long[] { 0x8003038020000070L, 0x000000000000FFFEL });

-	public static final BitSet FOLLOW_impliesExpression_in_andExpression1087 = new BitSet(new long[] { 0x0040000000000002L });

-	public static final BitSet FOLLOW_relationalExpression_in_impliesExpression1118 = new BitSet(new long[] { 0x0080000000000002L });

-	public static final BitSet FOLLOW_55_in_impliesExpression1125 = new BitSet(new long[] { 0x8003038020000070L, 0x000000000000FFFEL });

-	public static final BitSet FOLLOW_relationalExpression_in_impliesExpression1129 = new BitSet(new long[] { 0x0080000000000002L });

-	public static final BitSet FOLLOW_additiveExpression_in_relationalExpression1161 = new BitSet(new long[] { 0x3F00000000000002L });

-	public static final BitSet FOLLOW_set_in_relationalExpression1169 = new BitSet(new long[] { 0x8003038020000070L, 0x000000000000FFFEL });

-	public static final BitSet FOLLOW_additiveExpression_in_relationalExpression1195 = new BitSet(new long[] { 0x3F00000000000002L });

-	public static final BitSet FOLLOW_multiplicativeExpression_in_additiveExpression1224 = new BitSet(new long[] { 0xC000000000000002L });

-	public static final BitSet FOLLOW_set_in_additiveExpression1234 = new BitSet(new long[] { 0x8003038020000070L, 0x000000000000FFFEL });

-	public static final BitSet FOLLOW_multiplicativeExpression_in_additiveExpression1243 = new BitSet(new long[] { 0xC000000000000002L });

-	public static final BitSet FOLLOW_unaryExpression_in_multiplicativeExpression1272 = new BitSet(new long[] { 0x0000000080000002L,

-			0x0000000000000001L });

-	public static final BitSet FOLLOW_set_in_multiplicativeExpression1280 = new BitSet(new long[] { 0x8003038020000070L, 0x000000000000FFFEL });

-	public static final BitSet FOLLOW_unaryExpression_in_multiplicativeExpression1290 = new BitSet(new long[] { 0x0000000080000002L,

-			0x0000000000000001L });

-	public static final BitSet FOLLOW_infixExpression_in_unaryExpression1319 = new BitSet(new long[] { 0x0000000000000002L });

-	public static final BitSet FOLLOW_65_in_unaryExpression1327 = new BitSet(new long[] { 0x0002038020000070L, 0x000000000000FFFCL });

-	public static final BitSet FOLLOW_infixExpression_in_unaryExpression1331 = new BitSet(new long[] { 0x0000000000000002L });

-	public static final BitSet FOLLOW_63_in_unaryExpression1339 = new BitSet(new long[] { 0x0002038020000070L, 0x000000000000FFFCL });

-	public static final BitSet FOLLOW_infixExpression_in_unaryExpression1343 = new BitSet(new long[] { 0x0000000000000002L });

-	public static final BitSet FOLLOW_primaryExpression_in_infixExpression1370 = new BitSet(new long[] { 0x0000002000000002L });

-	public static final BitSet FOLLOW_37_in_infixExpression1376 = new BitSet(new long[] { 0x0000038000000040L, 0x000000000000FF80L });

-	public static final BitSet FOLLOW_featureCall_in_infixExpression1380 = new BitSet(new long[] { 0x0000002000000002L });

-	public static final BitSet FOLLOW_StringLiteral_in_primaryExpression1415 = new BitSet(new long[] { 0x0000000000000002L });

-	public static final BitSet FOLLOW_featureCall_in_primaryExpression1426 = new BitSet(new long[] { 0x0000000000000002L });

-	public static final BitSet FOLLOW_booleanLiteral_in_primaryExpression1436 = new BitSet(new long[] { 0x0000000000000002L });

-	public static final BitSet FOLLOW_numberLiteral_in_primaryExpression1446 = new BitSet(new long[] { 0x0000000000000002L });

-	public static final BitSet FOLLOW_nullLiteral_in_primaryExpression1456 = new BitSet(new long[] { 0x0000000000000002L });

-	public static final BitSet FOLLOW_listLiteral_in_primaryExpression1466 = new BitSet(new long[] { 0x0000000000000002L });

-	public static final BitSet FOLLOW_constructorCall_in_primaryExpression1476 = new BitSet(new long[] { 0x0000000000000002L });

-	public static final BitSet FOLLOW_globalVarExpression_in_primaryExpression1486 = new BitSet(new long[] { 0x0000000000000002L });

-	public static final BitSet FOLLOW_paranthesizedExpression_in_primaryExpression1496 = new BitSet(new long[] { 0x0000000000000002L });

-	public static final BitSet FOLLOW_29_in_paranthesizedExpression1523 = new BitSet(new long[] { 0x8003078021000070L, 0x000000000000FFFEL });

-	public static final BitSet FOLLOW_expression_in_paranthesizedExpression1527 = new BitSet(new long[] { 0x0000000100000000L });

-	public static final BitSet FOLLOW_32_in_paranthesizedExpression1529 = new BitSet(new long[] { 0x0000000000000002L });

-	public static final BitSet FOLLOW_66_in_globalVarExpression1558 = new BitSet(new long[] { 0x0000038000000040L });

-	public static final BitSet FOLLOW_identifier_in_globalVarExpression1562 = new BitSet(new long[] { 0x0000000000000002L });

-	public static final BitSet FOLLOW_identifier_in_featureCall1589 = new BitSet(new long[] { 0x0000000020000000L });

-	public static final BitSet FOLLOW_29_in_featureCall1591 = new BitSet(new long[] { 0x8003078121000070L, 0x000000000000FFFEL });

-	public static final BitSet FOLLOW_parameterList_in_featureCall1596 = new BitSet(new long[] { 0x0000000100000000L });

-	public static final BitSet FOLLOW_32_in_featureCall1600 = new BitSet(new long[] { 0x0000000000000002L });

-	public static final BitSet FOLLOW_type_in_featureCall1610 = new BitSet(new long[] { 0x0000000000000002L });

-	public static final BitSet FOLLOW_collectionExpression_in_featureCall1621 = new BitSet(new long[] { 0x0000000000000002L });

-	public static final BitSet FOLLOW_49_in_listLiteral1647 = new BitSet(new long[] { 0x8013078021000070L, 0x000000000000FFFEL });

-	public static final BitSet FOLLOW_parameterList_in_listLiteral1652 = new BitSet(new long[] { 0x0010000000000000L });

-	public static final BitSet FOLLOW_52_in_listLiteral1656 = new BitSet(new long[] { 0x0000000000000002L });

-	public static final BitSet FOLLOW_67_in_constructorCall1681 = new BitSet(new long[] { 0x0000038000000040L });

-	public static final BitSet FOLLOW_simpleType_in_constructorCall1685 = new BitSet(new long[] { 0x0000000000000002L });

-	public static final BitSet FOLLOW_set_in_booleanLiteral0 = new BitSet(new long[] { 0x0000000000000002L });

-	public static final BitSet FOLLOW_70_in_nullLiteral1737 = new BitSet(new long[] { 0x0000000000000002L });

-	public static final BitSet FOLLOW_IntLiteral_in_numberLiteral1764 = new BitSet(new long[] { 0x0000000000000002L });

-	public static final BitSet FOLLOW_IntLiteral_in_numberLiteral1773 = new BitSet(new long[] { 0x0000002000000000L });

-	public static final BitSet FOLLOW_37_in_numberLiteral1777 = new BitSet(new long[] { 0x0000000000000020L });

-	public static final BitSet FOLLOW_IntLiteral_in_numberLiteral1781 = new BitSet(new long[] { 0x0000000000000002L });

-	public static final BitSet FOLLOW_71_in_collectionExpression1810 = new BitSet(new long[] { 0x0000000020000000L });

-	public static final BitSet FOLLOW_29_in_collectionExpression1814 = new BitSet(new long[] { 0x0000038000000040L });

-	public static final BitSet FOLLOW_type_in_collectionExpression1818 = new BitSet(new long[] { 0x0000000100000000L });

-	public static final BitSet FOLLOW_32_in_collectionExpression1820 = new BitSet(new long[] { 0x0000000000000002L });

-	public static final BitSet FOLLOW_set_in_collectionExpression1833 = new BitSet(new long[] { 0x0000000020000000L });

-	public static final BitSet FOLLOW_29_in_collectionExpression1883 = new BitSet(new long[] { 0x8003078021000070L, 0x000000000000FFFEL });

-	public static final BitSet FOLLOW_identifier_in_collectionExpression1888 = new BitSet(new long[] { 0x0000000000000000L, 0x0000000000010000L });

-	public static final BitSet FOLLOW_80_in_collectionExpression1890 = new BitSet(new long[] { 0x8003078021000070L, 0x000000000000FFFEL });

-	public static final BitSet FOLLOW_expression_in_collectionExpression1896 = new BitSet(new long[] { 0x0000000100000000L });

-	public static final BitSet FOLLOW_32_in_collectionExpression1898 = new BitSet(new long[] { 0x0000000000000002L });

-	public static final BitSet FOLLOW_declaredParameter_in_declaredParameterList1930 = new BitSet(new long[] { 0x0000000040000002L });

-	public static final BitSet FOLLOW_30_in_declaredParameterList1934 = new BitSet(new long[] { 0x0000038000000040L });

-	public static final BitSet FOLLOW_declaredParameter_in_declaredParameterList1938 = new BitSet(new long[] { 0x0000000040000002L });

-	public static final BitSet FOLLOW_type_in_declaredParameter1966 = new BitSet(new long[] { 0x0000038000000040L });

-	public static final BitSet FOLLOW_identifier_in_declaredParameter1970 = new BitSet(new long[] { 0x0000000000000002L });

-	public static final BitSet FOLLOW_expression_in_parameterList1992 = new BitSet(new long[] { 0x0000000040000002L });

-	public static final BitSet FOLLOW_30_in_parameterList1997 = new BitSet(new long[] { 0x8003078021000070L, 0x000000000000FFFEL });

-	public static final BitSet FOLLOW_expression_in_parameterList2001 = new BitSet(new long[] { 0x0000000040000002L });

-	public static final BitSet FOLLOW_collectionType_in_type2035 = new BitSet(new long[] { 0x0000000000000002L });

-	public static final BitSet FOLLOW_simpleType_in_type2045 = new BitSet(new long[] { 0x0000000000000002L });

-	public static final BitSet FOLLOW_set_in_collectionType2075 = new BitSet(new long[] { 0x0000000000000002L, 0x0000000000020000L });

-	public static final BitSet FOLLOW_81_in_collectionType2096 = new BitSet(new long[] { 0x0000038000000040L });

-	public static final BitSet FOLLOW_simpleType_in_collectionType2100 = new BitSet(new long[] { 0x0000000000000000L, 0x0000000000040000L });

-	public static final BitSet FOLLOW_82_in_collectionType2104 = new BitSet(new long[] { 0x0000000000000002L });

-	public static final BitSet FOLLOW_identifier_in_simpleType2132 = new BitSet(new long[] { 0x0000000200000002L });

-	public static final BitSet FOLLOW_33_in_simpleType2140 = new BitSet(new long[] { 0x0000038000000040L });

-	public static final BitSet FOLLOW_identifier_in_simpleType2144 = new BitSet(new long[] { 0x0000000200000002L });

-	public static final BitSet FOLLOW_Identifier_in_identifier2175 = new BitSet(new long[] { 0x0000000000000002L });

-	public static final BitSet FOLLOW_29_in_synpred1_Xtend751 = new BitSet(new long[] { 0x0000038000000040L });

-	public static final BitSet FOLLOW_type_in_synpred1_Xtend753 = new BitSet(new long[] { 0x0000000100000000L });

-	public static final BitSet FOLLOW_32_in_synpred1_Xtend755 = new BitSet(new long[] { 0x8003078021000070L, 0x000000000000FFFEL });

-	public static final BitSet FOLLOW_castedExpression_in_synpred1_Xtend757 = new BitSet(new long[] { 0x0000000000000002L });

-

+// $ANTLR 3.2 Sep 23, 2009 12:02:23 src/org/eclipse/internal/xtend/xtend/parser/Xtend.g 2015-11-18 22:41:57
+
+package org.eclipse.internal.xtend.xtend.parser;
+
+import java.util.List;
+
+import org.antlr.runtime.BaseRecognizer;
+import org.antlr.runtime.BitSet;
+import org.antlr.runtime.CommonToken;
+import org.antlr.runtime.DFA;
+import org.antlr.runtime.IntStream;
+import org.antlr.runtime.MismatchedSetException;
+import org.antlr.runtime.NoViableAltException;
+import org.antlr.runtime.Parser;
+import org.antlr.runtime.RecognitionException;
+import org.antlr.runtime.RecognizerSharedState;
+import org.antlr.runtime.Token;
+import org.antlr.runtime.TokenStream;
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.internal.xtend.expression.ast.Case;
+import org.eclipse.internal.xtend.expression.ast.DeclaredParameter;
+import org.eclipse.internal.xtend.expression.ast.Expression;
+import org.eclipse.internal.xtend.expression.ast.FeatureCall;
+import org.eclipse.internal.xtend.expression.ast.GlobalVarExpression;
+import org.eclipse.internal.xtend.expression.ast.Identifier;
+import org.eclipse.internal.xtend.expression.ast.SyntaxElement;
+import org.eclipse.internal.xtend.xtend.ast.AbstractExtension;
+import org.eclipse.internal.xtend.xtend.ast.Around;
+import org.eclipse.internal.xtend.xtend.ast.Check;
+import org.eclipse.internal.xtend.xtend.ast.Extension;
+import org.eclipse.internal.xtend.xtend.ast.ExtensionFile;
+import org.eclipse.internal.xtend.xtend.ast.ExtensionImportStatement;
+import org.eclipse.internal.xtend.xtend.ast.NamespaceImportStatement;
+
+@SuppressWarnings("all")
+public class XtendParser extends Parser {
+	public static final String[] tokenNames = new String[] { "<invalid>", "<EOR>", "<DOWN>", "<UP>", "StringLiteral", "IntLiteral", "Identifier",
+			"EscapeSequence", "UnicodeEscape", "OctalEscape", "HexDigit", "Letter", "JavaIDDigit", "WS", "COMMENT", "LINE_COMMENT", "XPAND_TAG_OPEN",
+			"XPAND_TAG_CLOSE", "'import'", "';'", "'extension'", "'reexport'", "'context'", "'#'", "'if'", "'ERROR'", "'WARNING'", "':'", "'around'",
+			"'('", "','", "'*'", "')'", "'::'", "'private'", "'cached'", "'JAVA'", "'.'", "'create'", "'Collection'", "'List'", "'Set'", "'let'",
+			"'='", "'->'", "'?'", "'then'", "'else'", "'switch'", "'{'", "'case'", "'default'", "'}'", "'||'", "'&&'", "'implies'", "'=='", "'!='",
+			"'>='", "'<='", "'>'", "'<'", "'+'", "'-'", "'/'", "'!'", "'GLOBALVAR'", "'new'", "'false'", "'true'", "'null'", "'typeSelect'",
+			"'collect'", "'select'", "'selectFirst'", "'reject'", "'exists'", "'notExists'", "'sortBy'", "'forAll'", "'|'", "'['", "']'" };
+	public static final int T__50 = 50;
+	public static final int T__19 = 19;
+	public static final int Identifier = 6;
+	public static final int T__59 = 59;
+	public static final int T__18 = 18;
+	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 IntLiteral = 5;
+	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 HexDigit = 10;
+	public static final int Letter = 11;
+	public static final int LINE_COMMENT = 15;
+	public static final int T__26 = 26;
+	public static final int StringLiteral = 4;
+	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__66 = 66;
+	public static final int T__23 = 23;
+	public static final int T__67 = 67;
+	public static final int T__24 = 24;
+	public static final int T__68 = 68;
+	public static final int T__25 = 25;
+	public static final int T__69 = 69;
+	public static final int T__62 = 62;
+	public static final int OctalEscape = 9;
+	public static final int JavaIDDigit = 12;
+	public static final int T__63 = 63;
+	public static final int T__20 = 20;
+	public static final int T__64 = 64;
+	public static final int T__21 = 21;
+	public static final int T__65 = 65;
+	public static final int T__70 = 70;
+	public static final int T__71 = 71;
+	public static final int T__72 = 72;
+	public static final int COMMENT = 14;
+	public static final int XPAND_TAG_OPEN = 16;
+	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__77 = 77;
+	public static final int T__34 = 34;
+	public static final int T__78 = 78;
+	public static final int T__35 = 35;
+	public static final int T__79 = 79;
+	public static final int T__36 = 36;
+	public static final int T__73 = 73;
+	public static final int UnicodeEscape = 8;
+	public static final int WS = 13;
+	public static final int EOF = -1;
+	public static final int T__30 = 30;
+	public static final int T__74 = 74;
+	public static final int T__31 = 31;
+	public static final int T__75 = 75;
+	public static final int T__32 = 32;
+	public static final int T__76 = 76;
+	public static final int XPAND_TAG_CLOSE = 17;
+	public static final int T__80 = 80;
+	public static final int T__81 = 81;
+	public static final int T__82 = 82;
+	public static final int EscapeSequence = 7;
+	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;
+
+	// delegates
+	// delegators
+
+	public XtendParser(TokenStream input) {
+		this(input, new RecognizerSharedState());
+	}
+
+	public XtendParser(TokenStream input, RecognizerSharedState state) {
+		super(input, state);
+
+	}
+
+	public String[] getTokenNames() {
+		return XtendParser.tokenNames;
+	}
+
+	public String getGrammarFileName() {
+		return "src/org/eclipse/internal/xtend/xtend/parser/Xtend.g";
+	}
+
+	private ExtensionFactory factory = new ExtensionFactory();
+
+	public XtendParser(TokenStream stream, ExtensionFactory factory) {
+		this(stream);
+		if (factory != null) {
+			this.factory = factory;
+		}
+	}
+
+	protected Identifier id(final Token t) {
+		if (t == null)
+			return null;
+		final CommonToken ct = (CommonToken) t;
+		final Identifier id = new Identifier(t.getText());
+		id.setStart(ct.getStartIndex());
+		id.setEnd(ct.getStopIndex());
+		id.setLine(ct.getLine());
+		return id;
+	}
+
+	private static final <T extends SyntaxElement> void addLocation(final T ele, final CommonToken start, final CommonToken end) {
+		if (ele != null) {
+			ele.setStart(start != null ? start.getStartIndex() : 0);
+			ele.setLine(start != null ? start.getLine() : 0);
+			ele.setEnd(end != null ? (end.getStopIndex() + 1) : -1);
+		}
+	}
+
+	@Override
+	public void reportError(RecognitionException e) {
+		System.err.println(super.getErrorMessage(e, tokenNames));
+		throw new RuntimeException(e);
+	}
+
+	// $ANTLR start "file"
+	// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:57:1: file returns [ExtensionFile r] : (nsi= nsImport )* (exti= extImport )* (ext=
+	// extension | a= around | c= check )* EOF ;
+	public final ExtensionFile file() throws RecognitionException {
+		ExtensionFile r = null;
+
+		NamespaceImportStatement nsi = null;
+
+		ExtensionImportStatement exti = null;
+
+		Extension ext = null;
+
+		Around a = null;
+
+		Check c = null;
+
+		final CommonToken startToken = (CommonToken) input.LT(1);
+		final List<NamespaceImportStatement> nsimports = new BasicEList<NamespaceImportStatement>();
+		final List<ExtensionImportStatement> extimports = new BasicEList<ExtensionImportStatement>();
+		final List<Extension> extensions = new BasicEList<Extension>();
+		final List<Around> arounds = new BasicEList<Around>();
+		final List<Check> checks = new BasicEList<Check>();
+		try {
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:65:1: ( (nsi= nsImport )* (exti= extImport )* (ext= extension | a= around | c=
+			// check )* EOF )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:66:2: (nsi= nsImport )* (exti= extImport )* (ext= extension | a= around | c= check
+			// )* EOF
+			{
+				// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:66:2: (nsi= nsImport )*
+				loop1: do {
+					int alt1 = 2;
+					int LA1_0 = input.LA(1);
+
+					if ((LA1_0 == 18)) {
+						alt1 = 1;
+					}
+
+					switch (alt1) {
+					case 1:
+					// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:66:3: nsi= nsImport
+					{
+						pushFollow(FOLLOW_nsImport_in_file55);
+						nsi = nsImport();
+
+						state._fsp--;
+						if (state.failed)
+							return r;
+						if (state.backtracking == 0) {
+							if (nsi != null)
+								nsimports.add(nsi);
+						}
+
+					}
+						break;
+
+					default:
+						break loop1;
+					}
+				} while (true);
+
+				// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:67:2: (exti= extImport )*
+				loop2: do {
+					int alt2 = 2;
+					int LA2_0 = input.LA(1);
+
+					if ((LA2_0 == 20)) {
+						alt2 = 1;
+					}
+
+					switch (alt2) {
+					case 1:
+					// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:67:3: exti= extImport
+					{
+						pushFollow(FOLLOW_extImport_in_file65);
+						exti = extImport();
+
+						state._fsp--;
+						if (state.failed)
+							return r;
+						if (state.backtracking == 0) {
+							if (exti != null)
+								extimports.add(exti);
+						}
+
+					}
+						break;
+
+					default:
+						break loop2;
+					}
+				} while (true);
+
+				// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:68:2: (ext= extension | a= around | c= check )*
+				loop3: do {
+					int alt3 = 4;
+					switch (input.LA(1)) {
+					case Identifier:
+					case 34:
+					case 35:
+					case 38:
+					case 39:
+					case 40:
+					case 41: {
+						alt3 = 1;
+					}
+						break;
+					case 28: {
+						alt3 = 2;
+					}
+						break;
+					case 22: {
+						alt3 = 3;
+					}
+						break;
+
+					}
+
+					switch (alt3) {
+					case 1:
+					// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:68:3: ext= extension
+					{
+						pushFollow(FOLLOW_extension_in_file75);
+						ext = extension();
+
+						state._fsp--;
+						if (state.failed)
+							return r;
+						if (state.backtracking == 0) {
+							if (ext != null)
+								extensions.add(ext);
+						}
+
+					}
+						break;
+					case 2:
+					// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:68:56: a= around
+					{
+						pushFollow(FOLLOW_around_in_file85);
+						a = around();
+
+						state._fsp--;
+						if (state.failed)
+							return r;
+						if (state.backtracking == 0) {
+							if (a != null)
+								arounds.add(a);
+						}
+
+					}
+						break;
+					case 3:
+					// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:68:100: c= check
+					{
+						pushFollow(FOLLOW_check_in_file95);
+						c = check();
+
+						state._fsp--;
+						if (state.failed)
+							return r;
+						if (state.backtracking == 0) {
+							if (c != null)
+								checks.add(c);
+						}
+
+					}
+						break;
+
+					default:
+						break loop3;
+					}
+				} while (true);
+
+				match(input, EOF, FOLLOW_EOF_in_file103);
+				if (state.failed)
+					return r;
+				if (state.backtracking == 0) {
+					r = factory.createExtensionFile(nsimports, extimports, extensions, arounds, checks);
+				}
+
+			}
+
+			if (state.backtracking == 0) {
+				addLocation(r, startToken, /* endToken */(CommonToken) input.LT(-1));
+			}
+		} catch (RecognitionException re) {
+			reportError(re);
+			recover(input, re);
+		} finally {
+		}
+		return r;
+	}
+
+	// $ANTLR end "file"
+
+	// $ANTLR start "nsImport"
+	// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:74:1: nsImport returns [NamespaceImportStatement r] : 'import' t= type ';' ;
+	public final NamespaceImportStatement nsImport() throws RecognitionException {
+		NamespaceImportStatement r = null;
+
+		Identifier t = null;
+
+		final CommonToken startToken = (CommonToken) input.LT(1);
+		try {
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:77:1: ( 'import' t= type ';' )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:78:2: 'import' t= type ';'
+			{
+				match(input, 18, FOLLOW_18_in_nsImport131);
+				if (state.failed)
+					return r;
+				pushFollow(FOLLOW_type_in_nsImport135);
+				t = type();
+
+				state._fsp--;
+				if (state.failed)
+					return r;
+				if (state.backtracking == 0) {
+					r = factory.createNsImport(t);
+				}
+				match(input, 19, FOLLOW_19_in_nsImport139);
+				if (state.failed)
+					return r;
+
+			}
+
+			if (state.backtracking == 0) {
+				addLocation(r, startToken, /* endToken */(CommonToken) input.LT(-1));
+			}
+		} catch (RecognitionException re) {
+			reportError(re);
+			recover(input, re);
+		} finally {
+		}
+		return r;
+	}
+
+	// $ANTLR end "nsImport"
+
+	// $ANTLR start "extImport"
+	// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:82:1: extImport returns [ExtensionImportStatement r] : 'extension' t= type (exported=
+	// 'reexport' )? ';' ;
+	public final ExtensionImportStatement extImport() throws RecognitionException {
+		ExtensionImportStatement r = null;
+
+		Token exported = null;
+		Identifier t = null;
+
+		final CommonToken startToken = (CommonToken) input.LT(1);
+		try {
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:85:1: ( 'extension' t= type (exported= 'reexport' )? ';' )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:86:2: 'extension' t= type (exported= 'reexport' )? ';'
+			{
+				match(input, 20, FOLLOW_20_in_extImport164);
+				if (state.failed)
+					return r;
+				pushFollow(FOLLOW_type_in_extImport168);
+				t = type();
+
+				state._fsp--;
+				if (state.failed)
+					return r;
+				// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:86:21: (exported= 'reexport' )?
+				int alt4 = 2;
+				int LA4_0 = input.LA(1);
+
+				if ((LA4_0 == 21)) {
+					alt4 = 1;
+				}
+				switch (alt4) {
+				case 1:
+				// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:86:22: exported= 'reexport'
+				{
+					exported = (Token) match(input, 21, FOLLOW_21_in_extImport173);
+					if (state.failed)
+						return r;
+
+				}
+					break;
+
+				}
+
+				match(input, 19, FOLLOW_19_in_extImport177);
+				if (state.failed)
+					return r;
+				if (state.backtracking == 0) {
+					r = factory.createExtensionFileImport(t, id(exported));
+				}
+
+			}
+
+			if (state.backtracking == 0) {
+				addLocation(r, startToken, /* endToken */(CommonToken) input.LT(-1));
+			}
+		} catch (RecognitionException re) {
+			reportError(re);
+			recover(input, re);
+		} finally {
+		}
+		return r;
+	}
+
+	// $ANTLR end "extImport"
+
+	// $ANTLR start "check"
+	// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:90:1: check returns [Check ext] : 'context' t= type ( '#' f= identifier )? ( 'if' guard=
+	// expression )? (sev1= 'ERROR' | 'WARNING' ) msg= expression ':' expr= expression ';' ;
+	public final Check check() throws RecognitionException {
+		Check ext = null;
+
+		Token sev1 = null;
+		Identifier t = null;
+
+		Identifier f = null;
+
+		Expression guard = null;
+
+		Expression msg = null;
+
+		Expression expr = null;
+
+		final CommonToken startToken = (CommonToken) input.LT(1);
+		try {
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:93:1: ( 'context' t= type ( '#' f= identifier )? ( 'if' guard= expression )? (sev1=
+			// 'ERROR' | 'WARNING' ) msg= expression ':' expr= expression ';' )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:94:2: 'context' t= type ( '#' f= identifier )? ( 'if' guard= expression )? (sev1=
+			// 'ERROR' | 'WARNING' ) msg= expression ':' expr= expression ';'
+			{
+				match(input, 22, FOLLOW_22_in_check202);
+				if (state.failed)
+					return ext;
+				pushFollow(FOLLOW_type_in_check206);
+				t = type();
+
+				state._fsp--;
+				if (state.failed)
+					return ext;
+				// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:94:18: ( '#' f= identifier )?
+				int alt5 = 2;
+				int LA5_0 = input.LA(1);
+
+				if ((LA5_0 == 23)) {
+					alt5 = 1;
+				}
+				switch (alt5) {
+				case 1:
+				// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:94:19: '#' f= identifier
+				{
+					match(input, 23, FOLLOW_23_in_check208);
+					if (state.failed)
+						return ext;
+					pushFollow(FOLLOW_identifier_in_check211);
+					f = identifier();
+
+					state._fsp--;
+					if (state.failed)
+						return ext;
+
+				}
+					break;
+
+				}
+
+				// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:94:37: ( 'if' guard= expression )?
+				int alt6 = 2;
+				int LA6_0 = input.LA(1);
+
+				if ((LA6_0 == 24)) {
+					alt6 = 1;
+				}
+				switch (alt6) {
+				case 1:
+				// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:94:38: 'if' guard= expression
+				{
+					match(input, 24, FOLLOW_24_in_check216);
+					if (state.failed)
+						return ext;
+					pushFollow(FOLLOW_expression_in_check220);
+					guard = expression();
+
+					state._fsp--;
+					if (state.failed)
+						return ext;
+
+				}
+					break;
+
+				}
+
+				// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:94:62: (sev1= 'ERROR' | 'WARNING' )
+				int alt7 = 2;
+				int LA7_0 = input.LA(1);
+
+				if ((LA7_0 == 25)) {
+					alt7 = 1;
+				} else if ((LA7_0 == 26)) {
+					alt7 = 2;
+				} else {
+					if (state.backtracking > 0) {
+						state.failed = true;
+						return ext;
+					}
+					NoViableAltException nvae = new NoViableAltException("", 7, 0, input);
+
+					throw nvae;
+				}
+				switch (alt7) {
+				case 1:
+				// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:94:63: sev1= 'ERROR'
+				{
+					sev1 = (Token) match(input, 25, FOLLOW_25_in_check227);
+					if (state.failed)
+						return ext;
+
+				}
+					break;
+				case 2:
+				// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:94:76: 'WARNING'
+				{
+					match(input, 26, FOLLOW_26_in_check229);
+					if (state.failed)
+						return ext;
+
+				}
+					break;
+
+				}
+
+				pushFollow(FOLLOW_expression_in_check234);
+				msg = expression();
+
+				state._fsp--;
+				if (state.failed)
+					return ext;
+				match(input, 27, FOLLOW_27_in_check236);
+				if (state.failed)
+					return ext;
+				pushFollow(FOLLOW_expression_in_check241);
+				expr = expression();
+
+				state._fsp--;
+				if (state.failed)
+					return ext;
+				match(input, 19, FOLLOW_19_in_check243);
+				if (state.failed)
+					return ext;
+				if (state.backtracking == 0) {
+					ext = factory.createCheck(t, f, guard, sev1 != null, msg, expr);
+				}
+
+			}
+
+			if (state.backtracking == 0) {
+				addLocation(ext, startToken, /* endToken */(CommonToken) input.LT(-1));
+			}
+		} catch (RecognitionException re) {
+			reportError(re);
+			recover(input, re);
+		} finally {
+		}
+		return ext;
+	}
+
+	// $ANTLR end "check"
+
+	// $ANTLR start "around"
+	// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:99:1: around returns [Around r] : 'around' pc= pointcut '(' (p= declaredParameterList ( (
+	// ',' )? wildparams= '*' )? | wildparams= '*' )? ')' ':' expr= expression ';' ;
+	public final Around around() throws RecognitionException {
+		Around r = null;
+
+		Token wildparams = null;
+		Identifier pc = null;
+
+		List<DeclaredParameter> p = null;
+
+		Expression expr = null;
+
+		final CommonToken startToken = (CommonToken) input.LT(1);
+		try {
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:102:1: ( 'around' pc= pointcut '(' (p= declaredParameterList ( ( ',' )? wildparams=
+			// '*' )? | wildparams= '*' )? ')' ':' expr= expression ';' )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:103:5: 'around' pc= pointcut '(' (p= declaredParameterList ( ( ',' )? wildparams=
+			// '*' )? | wildparams= '*' )? ')' ':' expr= expression ';'
+			{
+				match(input, 28, FOLLOW_28_in_around272);
+				if (state.failed)
+					return r;
+				pushFollow(FOLLOW_pointcut_in_around276);
+				pc = pointcut();
+
+				state._fsp--;
+				if (state.failed)
+					return r;
+				match(input, 29, FOLLOW_29_in_around278);
+				if (state.failed)
+					return r;
+				// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:103:30: (p= declaredParameterList ( ( ',' )? wildparams= '*' )? | wildparams=
+				// '*' )?
+				int alt10 = 3;
+				int LA10_0 = input.LA(1);
+
+				if ((LA10_0 == Identifier || (LA10_0 >= 39 && LA10_0 <= 41))) {
+					alt10 = 1;
+				} else if ((LA10_0 == 31)) {
+					alt10 = 2;
+				}
+				switch (alt10) {
+				case 1:
+				// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:103:31: p= declaredParameterList ( ( ',' )? wildparams= '*' )?
+				{
+					pushFollow(FOLLOW_declaredParameterList_in_around283);
+					p = declaredParameterList();
+
+					state._fsp--;
+					if (state.failed)
+						return r;
+					// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:103:55: ( ( ',' )? wildparams= '*' )?
+					int alt9 = 2;
+					int LA9_0 = input.LA(1);
+
+					if (((LA9_0 >= 30 && LA9_0 <= 31))) {
+						alt9 = 1;
+					}
+					switch (alt9) {
+					case 1:
+					// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:103:56: ( ',' )? wildparams= '*'
+					{
+						// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:103:56: ( ',' )?
+						int alt8 = 2;
+						int LA8_0 = input.LA(1);
+
+						if ((LA8_0 == 30)) {
+							alt8 = 1;
+						}
+						switch (alt8) {
+						case 1:
+						// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:103:56: ','
+						{
+							match(input, 30, FOLLOW_30_in_around286);
+							if (state.failed)
+								return r;
+
+						}
+							break;
+
+						}
+
+						wildparams = (Token) match(input, 31, FOLLOW_31_in_around291);
+						if (state.failed)
+							return r;
+
+					}
+						break;
+
+					}
+
+				}
+					break;
+				case 2:
+				// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:103:80: wildparams= '*'
+				{
+					wildparams = (Token) match(input, 31, FOLLOW_31_in_around299);
+					if (state.failed)
+						return r;
+
+				}
+					break;
+
+				}
+
+				match(input, 32, FOLLOW_32_in_around303);
+				if (state.failed)
+					return r;
+				match(input, 27, FOLLOW_27_in_around305);
+				if (state.failed)
+					return r;
+				pushFollow(FOLLOW_expression_in_around314);
+				expr = expression();
+
+				state._fsp--;
+				if (state.failed)
+					return r;
+				match(input, 19, FOLLOW_19_in_around316);
+				if (state.failed)
+					return r;
+				if (state.backtracking == 0) {
+					r = factory.createAround(pc, p, wildparams != null, expr);
+				}
+
+			}
+
+			if (state.backtracking == 0) {
+				addLocation(r, startToken, /* endToken */(CommonToken) input.LT(-1));
+			}
+		} catch (RecognitionException re) {
+			reportError(re);
+			recover(input, re);
+		} finally {
+		}
+		return r;
+	}
+
+	// $ANTLR end "around"
+
+	// $ANTLR start "pointcut"
+	// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:108:1: pointcut returns [Identifier r] : (a= '*' | b= identifier ) (a1= '*' | b1=
+	// identifier | c1= '::' )* ;
+	public final Identifier pointcut() throws RecognitionException {
+		Identifier r = null;
+
+		Token a = null;
+		Token a1 = null;
+		Token c1 = null;
+		Identifier b = null;
+
+		Identifier b1 = null;
+
+		final CommonToken startToken = (CommonToken) input.LT(1);
+		try {
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:111:1: ( (a= '*' | b= identifier ) (a1= '*' | b1= identifier | c1= '::' )* )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:112:2: (a= '*' | b= identifier ) (a1= '*' | b1= identifier | c1= '::' )*
+			{
+				// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:112:2: (a= '*' | b= identifier )
+				int alt11 = 2;
+				int LA11_0 = input.LA(1);
+
+				if ((LA11_0 == 31)) {
+					alt11 = 1;
+				} else if ((LA11_0 == Identifier)) {
+					alt11 = 2;
+				} else {
+					if (state.backtracking > 0) {
+						state.failed = true;
+						return r;
+					}
+					NoViableAltException nvae = new NoViableAltException("", 11, 0, input);
+
+					throw nvae;
+				}
+				switch (alt11) {
+				case 1:
+				// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:112:4: a= '*'
+				{
+					a = (Token) match(input, 31, FOLLOW_31_in_pointcut352);
+					if (state.failed)
+						return r;
+					if (state.backtracking == 0) {
+						r = id(a);
+					}
+
+				}
+					break;
+				case 2:
+				// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:113:4: b= identifier
+				{
+					pushFollow(FOLLOW_identifier_in_pointcut361);
+					b = identifier();
+
+					state._fsp--;
+					if (state.failed)
+						return r;
+					if (state.backtracking == 0) {
+						r = b;
+					}
+
+				}
+					break;
+
+				}
+
+				// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:114:4: (a1= '*' | b1= identifier | c1= '::' )*
+				loop12: do {
+					int alt12 = 4;
+					switch (input.LA(1)) {
+					case 31: {
+						alt12 = 1;
+					}
+						break;
+					case Identifier: {
+						alt12 = 2;
+					}
+						break;
+					case 33: {
+						alt12 = 3;
+					}
+						break;
+
+					}
+
+					switch (alt12) {
+					case 1:
+					// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:114:6: a1= '*'
+					{
+						a1 = (Token) match(input, 31, FOLLOW_31_in_pointcut372);
+						if (state.failed)
+							return r;
+						if (state.backtracking == 0) {
+							if (r != null)
+								r.append(id(a1));
+						}
+
+					}
+						break;
+					case 2:
+					// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:115:6: b1= identifier
+					{
+						pushFollow(FOLLOW_identifier_in_pointcut383);
+						b1 = identifier();
+
+						state._fsp--;
+						if (state.failed)
+							return r;
+						if (state.backtracking == 0) {
+							if (r != null)
+								r.append(b1);
+						}
+
+					}
+						break;
+					case 3:
+					// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:116:6: c1= '::'
+					{
+						c1 = (Token) match(input, 33, FOLLOW_33_in_pointcut394);
+						if (state.failed)
+							return r;
+						if (state.backtracking == 0) {
+							if (r != null)
+								r.append(id(c1));
+						}
+
+					}
+						break;
+
+					default:
+						break loop12;
+					}
+				} while (true);
+
+			}
+
+			if (state.backtracking == 0) {
+				addLocation(r, startToken, /* endToken */(CommonToken) input.LT(-1));
+			}
+		} catch (RecognitionException re) {
+			reportError(re);
+			recover(input, re);
+		} finally {
+		}
+		return r;
+	}
+
+	// $ANTLR end "pointcut"
+
+	// $ANTLR start "extension"
+	// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:121:1: extension returns [Extension r] : ( (priv= 'private' )? (cached= 'cached' )? (rType=
+	// type )? name= identifier '(' (params= declaredParameterList )? ')' ':' ( 'JAVA' jt= javaType '.' m= identifier '(' (pt= javaType ( ',' pt=
+	// javaType )* )? ')' ';' | expr= expression ';' ) | (priv= 'private' )? create= 'create' rType= type (rtn= identifier )? name= identifier '('
+	// (params= declaredParameterList )? ')' ':' expr= expression ';' );
+	public final Extension extension() throws RecognitionException {
+		Extension r = null;
+
+		Token priv = null;
+		Token cached = null;
+		Token create = null;
+		Identifier rType = null;
+
+		Identifier name = null;
+
+		List<DeclaredParameter> params = null;
+
+		Identifier jt = null;
+
+		Identifier m = null;
+
+		Identifier pt = null;
+
+		Expression expr = null;
+
+		Identifier rtn = null;
+
+		final CommonToken startToken = (CommonToken) input.LT(1);
+		final List<Identifier> javaParamTypes = new BasicEList<Identifier>();
+		try {
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:125:1: ( (priv= 'private' )? (cached= 'cached' )? (rType= type )? name= identifier
+			// '(' (params= declaredParameterList )? ')' ':' ( 'JAVA' jt= javaType '.' m= identifier '(' (pt= javaType ( ',' pt= javaType )* )? ')'
+			// ';' | expr= expression ';' ) | (priv= 'private' )? create= 'create' rType= type (rtn= identifier )? name= identifier '(' (params=
+			// declaredParameterList )? ')' ':' expr= expression ';' )
+			int alt23 = 2;
+			switch (input.LA(1)) {
+			case 34: {
+				int LA23_1 = input.LA(2);
+
+				if ((LA23_1 == 38)) {
+					alt23 = 2;
+				} else if ((LA23_1 == Identifier || LA23_1 == 35 || (LA23_1 >= 39 && LA23_1 <= 41))) {
+					alt23 = 1;
+				} else {
+					if (state.backtracking > 0) {
+						state.failed = true;
+						return r;
+					}
+					NoViableAltException nvae = new NoViableAltException("", 23, 1, input);
+
+					throw nvae;
+				}
+			}
+				break;
+			case Identifier:
+			case 35:
+			case 39:
+			case 40:
+			case 41: {
+				alt23 = 1;
+			}
+				break;
+			case 38: {
+				alt23 = 2;
+			}
+				break;
+			default:
+				if (state.backtracking > 0) {
+					state.failed = true;
+					return r;
+				}
+				NoViableAltException nvae = new NoViableAltException("", 23, 0, input);
+
+				throw nvae;
+			}
+
+			switch (alt23) {
+			case 1:
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:126:2: (priv= 'private' )? (cached= 'cached' )? (rType= type )? name= identifier
+			// '(' (params= declaredParameterList )? ')' ':' ( 'JAVA' jt= javaType '.' m= identifier '(' (pt= javaType ( ',' pt= javaType )* )? ')'
+			// ';' | expr= expression ';' )
+			{
+				// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:126:2: (priv= 'private' )?
+				int alt13 = 2;
+				int LA13_0 = input.LA(1);
+
+				if ((LA13_0 == 34)) {
+					alt13 = 1;
+				}
+				switch (alt13) {
+				case 1:
+				// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:126:3: priv= 'private'
+				{
+					priv = (Token) match(input, 34, FOLLOW_34_in_extension426);
+					if (state.failed)
+						return r;
+
+				}
+					break;
+
+				}
+
+				// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:126:20: (cached= 'cached' )?
+				int alt14 = 2;
+				int LA14_0 = input.LA(1);
+
+				if ((LA14_0 == 35)) {
+					alt14 = 1;
+				}
+				switch (alt14) {
+				case 1:
+				// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:126:21: cached= 'cached'
+				{
+					cached = (Token) match(input, 35, FOLLOW_35_in_extension433);
+					if (state.failed)
+						return r;
+
+				}
+					break;
+
+				}
+
+				// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:126:39: (rType= type )?
+				int alt15 = 2;
+				int LA15_0 = input.LA(1);
+
+				if (((LA15_0 >= 39 && LA15_0 <= 41))) {
+					alt15 = 1;
+				} else if ((LA15_0 == Identifier)) {
+					int LA15_2 = input.LA(2);
+
+					if ((LA15_2 == Identifier || LA15_2 == 33)) {
+						alt15 = 1;
+					}
+				}
+				switch (alt15) {
+				case 1:
+				// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:126:40: rType= type
+				{
+					pushFollow(FOLLOW_type_in_extension440);
+					rType = type();
+
+					state._fsp--;
+					if (state.failed)
+						return r;
+
+				}
+					break;
+
+				}
+
+				pushFollow(FOLLOW_identifier_in_extension446);
+				name = identifier();
+
+				state._fsp--;
+				if (state.failed)
+					return r;
+				match(input, 29, FOLLOW_29_in_extension448);
+				if (state.failed)
+					return r;
+				// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:126:73: (params= declaredParameterList )?
+				int alt16 = 2;
+				int LA16_0 = input.LA(1);
+
+				if ((LA16_0 == Identifier || (LA16_0 >= 39 && LA16_0 <= 41))) {
+					alt16 = 1;
+				}
+				switch (alt16) {
+				case 1:
+				// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:126:74: params= declaredParameterList
+				{
+					pushFollow(FOLLOW_declaredParameterList_in_extension453);
+					params = declaredParameterList();
+
+					state._fsp--;
+					if (state.failed)
+						return r;
+
+				}
+					break;
+
+				}
+
+				match(input, 32, FOLLOW_32_in_extension457);
+				if (state.failed)
+					return r;
+				match(input, 27, FOLLOW_27_in_extension459);
+				if (state.failed)
+					return r;
+				// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:128:2: ( 'JAVA' jt= javaType '.' m= identifier '(' (pt= javaType ( ',' pt=
+				// javaType )* )? ')' ';' | expr= expression ';' )
+				int alt19 = 2;
+				int LA19_0 = input.LA(1);
+
+				if ((LA19_0 == 36)) {
+					alt19 = 1;
+				} else if (((LA19_0 >= StringLiteral && LA19_0 <= Identifier) || LA19_0 == 24 || LA19_0 == 29 || (LA19_0 >= 39 && LA19_0 <= 42)
+						|| (LA19_0 >= 48 && LA19_0 <= 49) || LA19_0 == 63 || (LA19_0 >= 65 && LA19_0 <= 79))) {
+					alt19 = 2;
+				} else {
+					if (state.backtracking > 0) {
+						state.failed = true;
+						return r;
+					}
+					NoViableAltException nvae = new NoViableAltException("", 19, 0, input);
+
+					throw nvae;
+				}
+				switch (alt19) {
+				case 1:
+				// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:128:4: 'JAVA' jt= javaType '.' m= identifier '(' (pt= javaType ( ',' pt=
+				// javaType )* )? ')' ';'
+				{
+					match(input, 36, FOLLOW_36_in_extension466);
+					if (state.failed)
+						return r;
+					pushFollow(FOLLOW_javaType_in_extension470);
+					jt = javaType();
+
+					state._fsp--;
+					if (state.failed)
+						return r;
+					match(input, 37, FOLLOW_37_in_extension472);
+					if (state.failed)
+						return r;
+					pushFollow(FOLLOW_identifier_in_extension476);
+					m = identifier();
+
+					state._fsp--;
+					if (state.failed)
+						return r;
+					match(input, 29, FOLLOW_29_in_extension478);
+					if (state.failed)
+						return r;
+					// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:128:43: (pt= javaType ( ',' pt= javaType )* )?
+					int alt18 = 2;
+					int LA18_0 = input.LA(1);
+
+					if ((LA18_0 == Identifier)) {
+						alt18 = 1;
+					}
+					switch (alt18) {
+					case 1:
+					// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:128:44: pt= javaType ( ',' pt= javaType )*
+					{
+						pushFollow(FOLLOW_javaType_in_extension482);
+						pt = javaType();
+
+						state._fsp--;
+						if (state.failed)
+							return r;
+						if (state.backtracking == 0) {
+							if (pt != null)
+								javaParamTypes.add(pt);
+						}
+						// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:128:95: ( ',' pt= javaType )*
+						loop17: do {
+							int alt17 = 2;
+							int LA17_0 = input.LA(1);
+
+							if ((LA17_0 == 30)) {
+								alt17 = 1;
+							}
+
+							switch (alt17) {
+							case 1:
+							// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:128:96: ',' pt= javaType
+							{
+								match(input, 30, FOLLOW_30_in_extension486);
+								if (state.failed)
+									return r;
+								pushFollow(FOLLOW_javaType_in_extension490);
+								pt = javaType();
+
+								state._fsp--;
+								if (state.failed)
+									return r;
+								if (state.backtracking == 0) {
+									if (pt != null)
+										javaParamTypes.add(pt);
+								}
+
+							}
+								break;
+
+							default:
+								break loop17;
+							}
+						} while (true);
+
+					}
+						break;
+
+					}
+
+					match(input, 32, FOLLOW_32_in_extension498);
+					if (state.failed)
+						return r;
+					match(input, 19, FOLLOW_19_in_extension500);
+					if (state.failed)
+						return r;
+					if (state.backtracking == 0) {
+						r = factory.createJavaExtension(name, rType, params, jt, m, javaParamTypes, id(cached), id(priv));
+					}
+
+				}
+					break;
+				case 2:
+				// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:130:4: expr= expression ';'
+				{
+					pushFollow(FOLLOW_expression_in_extension510);
+					expr = expression();
+
+					state._fsp--;
+					if (state.failed)
+						return r;
+					match(input, 19, FOLLOW_19_in_extension512);
+					if (state.failed)
+						return r;
+					if (state.backtracking == 0) {
+						r = factory.createExpressionExtension(name, rType, params, expr, id(cached), id(priv));
+					}
+
+				}
+					break;
+
+				}
+
+			}
+				break;
+			case 2:
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:134:3: (priv= 'private' )? create= 'create' rType= type (rtn= identifier )? name=
+			// identifier '(' (params= declaredParameterList )? ')' ':' expr= expression ';'
+			{
+				// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:134:3: (priv= 'private' )?
+				int alt20 = 2;
+				int LA20_0 = input.LA(1);
+
+				if ((LA20_0 == 34)) {
+					alt20 = 1;
+				}
+				switch (alt20) {
+				case 1:
+				// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:134:4: priv= 'private'
+				{
+					priv = (Token) match(input, 34, FOLLOW_34_in_extension526);
+					if (state.failed)
+						return r;
+
+				}
+					break;
+
+				}
+
+				create = (Token) match(input, 38, FOLLOW_38_in_extension532);
+				if (state.failed)
+					return r;
+				pushFollow(FOLLOW_type_in_extension536);
+				rType = type();
+
+				state._fsp--;
+				if (state.failed)
+					return r;
+				// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:134:48: (rtn= identifier )?
+				int alt21 = 2;
+				int LA21_0 = input.LA(1);
+
+				if ((LA21_0 == Identifier)) {
+					int LA21_1 = input.LA(2);
+
+					if ((LA21_1 == Identifier)) {
+						alt21 = 1;
+					}
+				}
+				switch (alt21) {
+				case 1:
+				// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:134:49: rtn= identifier
+				{
+					pushFollow(FOLLOW_identifier_in_extension541);
+					rtn = identifier();
+
+					state._fsp--;
+					if (state.failed)
+						return r;
+
+				}
+					break;
+
+				}
+
+				pushFollow(FOLLOW_identifier_in_extension547);
+				name = identifier();
+
+				state._fsp--;
+				if (state.failed)
+					return r;
+				match(input, 29, FOLLOW_29_in_extension549);
+				if (state.failed)
+					return r;
+				// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:134:86: (params= declaredParameterList )?
+				int alt22 = 2;
+				int LA22_0 = input.LA(1);
+
+				if ((LA22_0 == Identifier || (LA22_0 >= 39 && LA22_0 <= 41))) {
+					alt22 = 1;
+				}
+				switch (alt22) {
+				case 1:
+				// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:134:87: params= declaredParameterList
+				{
+					pushFollow(FOLLOW_declaredParameterList_in_extension554);
+					params = declaredParameterList();
+
+					state._fsp--;
+					if (state.failed)
+						return r;
+
+				}
+					break;
+
+				}
+
+				match(input, 32, FOLLOW_32_in_extension558);
+				if (state.failed)
+					return r;
+				match(input, 27, FOLLOW_27_in_extension560);
+				if (state.failed)
+					return r;
+				pushFollow(FOLLOW_expression_in_extension566);
+				expr = expression();
+
+				state._fsp--;
+				if (state.failed)
+					return r;
+				match(input, 19, FOLLOW_19_in_extension568);
+				if (state.failed)
+					return r;
+				if (state.backtracking == 0) {
+					r = factory.createCreateExtension(id(create), rType, rtn, name, params, expr, id(priv));
+				}
+
+			}
+				break;
+
+			}
+			if (state.backtracking == 0) {
+				addLocation((AbstractExtension) r, startToken, /* endToken */(CommonToken) input.LT(-1));
+			}
+		} catch (RecognitionException re) {
+			reportError(re);
+			recover(input, re);
+		} finally {
+		}
+		return r;
+	}
+
+	// $ANTLR end "extension"
+
+	// $ANTLR start "javaType"
+	// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:140:1: javaType returns [Identifier r] : i= identifier (d= '.' (i1= identifier | i2=
+	// 'Collection' | i3= 'List' | i4= 'Set' ) )* ;
+	public final Identifier javaType() throws RecognitionException {
+		Identifier r = null;
+
+		Token d = null;
+		Token i2 = null;
+		Token i3 = null;
+		Token i4 = null;
+		Identifier i = null;
+
+		Identifier i1 = null;
+
+		final CommonToken startToken = (CommonToken) input.LT(1);
+		try {
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:143:1: (i= identifier (d= '.' (i1= identifier | i2= 'Collection' | i3= 'List' | i4=
+			// 'Set' ) )* )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:144:2: i= identifier (d= '.' (i1= identifier | i2= 'Collection' | i3= 'List' | i4=
+			// 'Set' ) )*
+			{
+				pushFollow(FOLLOW_identifier_in_javaType598);
+				i = identifier();
+
+				state._fsp--;
+				if (state.failed)
+					return r;
+				if (state.backtracking == 0) {
+					r = i;
+				}
+				// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:145:2: (d= '.' (i1= identifier | i2= 'Collection' | i3= 'List' | i4= 'Set' ) )*
+				loop25: do {
+					int alt25 = 2;
+					int LA25_0 = input.LA(1);
+
+					if ((LA25_0 == 37)) {
+						int LA25_1 = input.LA(2);
+
+						if ((LA25_1 == Identifier)) {
+							int LA25_3 = input.LA(3);
+
+							if ((LA25_3 == 30 || LA25_3 == 32 || LA25_3 == 37)) {
+								alt25 = 1;
+							}
+
+						} else if (((LA25_1 >= 39 && LA25_1 <= 41))) {
+							alt25 = 1;
+						}
+
+					}
+
+					switch (alt25) {
+					case 1:
+					// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:145:3: d= '.' (i1= identifier | i2= 'Collection' | i3= 'List' | i4= 'Set' )
+					{
+						d = (Token) match(input, 37, FOLLOW_37_in_javaType607);
+						if (state.failed)
+							return r;
+						if (state.backtracking == 0) {
+							if (r != null)
+								r.append(id(d));
+						}
+						// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:145:41: (i1= identifier | i2= 'Collection' | i3= 'List' | i4= 'Set' )
+						int alt24 = 4;
+						switch (input.LA(1)) {
+						case Identifier: {
+							alt24 = 1;
+						}
+							break;
+						case 39: {
+							alt24 = 2;
+						}
+							break;
+						case 40: {
+							alt24 = 3;
+						}
+							break;
+						case 41: {
+							alt24 = 4;
+						}
+							break;
+						default:
+							if (state.backtracking > 0) {
+								state.failed = true;
+								return r;
+							}
+							NoViableAltException nvae = new NoViableAltException("", 24, 0, input);
+
+							throw nvae;
+						}
+
+						switch (alt24) {
+						case 1:
+						// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:145:42: i1= identifier
+						{
+							pushFollow(FOLLOW_identifier_in_javaType613);
+							i1 = identifier();
+
+							state._fsp--;
+							if (state.failed)
+								return r;
+							if (state.backtracking == 0) {
+								if (r != null)
+									r.append(i1);
+							}
+
+						}
+							break;
+						case 2:
+						// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:145:86: i2= 'Collection'
+						{
+							i2 = (Token) match(input, 39, FOLLOW_39_in_javaType619);
+							if (state.failed)
+								return r;
+							if (state.backtracking == 0) {
+								r.append(id(i2));
+							}
+
+						}
+							break;
+						case 3:
+						// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:146:2: i3= 'List'
+						{
+							i3 = (Token) match(input, 40, FOLLOW_40_in_javaType628);
+							if (state.failed)
+								return r;
+							if (state.backtracking == 0) {
+								if (r != null)
+									r.append(id(i3));
+							}
+
+						}
+							break;
+						case 4:
+						// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:146:46: i4= 'Set'
+						{
+							i4 = (Token) match(input, 41, FOLLOW_41_in_javaType634);
+							if (state.failed)
+								return r;
+							if (state.backtracking == 0) {
+								if (r != null)
+									r.append(id(i4));
+							}
+
+						}
+							break;
+
+						}
+
+					}
+						break;
+
+					default:
+						break loop25;
+					}
+				} while (true);
+
+			}
+
+			if (state.backtracking == 0) {
+				addLocation(r, startToken, /* endToken */(CommonToken) input.LT(-1));
+			}
+		} catch (RecognitionException re) {
+			reportError(re);
+			recover(input, re);
+		} finally {
+		}
+		return r;
+	}
+
+	// $ANTLR end "javaType"
+
+	// $ANTLR start "expression"
+	// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:152:1: expression returns [Expression e] : x= letExpression ;
+	public final Expression expression() throws RecognitionException {
+		Expression e = null;
+
+		Expression x = null;
+
+		final CommonToken startToken = (CommonToken) input.LT(1);
+		try {
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:155:1: (x= letExpression )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:156:2: x= letExpression
+			{
+				pushFollow(FOLLOW_letExpression_in_expression665);
+				x = letExpression();
+
+				state._fsp--;
+				if (state.failed)
+					return e;
+				if (state.backtracking == 0) {
+					e = x;
+				}
+
+			}
+
+			if (state.backtracking == 0) {
+				addLocation(e, startToken, /* endToken */(CommonToken) input.LT(-1));
+			}
+		} catch (RecognitionException re) {
+			reportError(re);
+			recover(input, re);
+		} finally {
+		}
+		return e;
+	}
+
+	// $ANTLR end "expression"
+
+	// $ANTLR start "letExpression"
+	// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:160:1: letExpression returns [Expression e] : ( 'let' v= identifier '=' varExpr=
+	// castedExpression ':' target= expression | x= castedExpression );
+	public final Expression letExpression() throws RecognitionException {
+		Expression e = null;
+
+		Identifier v = null;
+
+		Expression varExpr = null;
+
+		Expression target = null;
+
+		Expression x = null;
+
+		final CommonToken startToken = (CommonToken) input.LT(1);
+		try {
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:163:1: ( 'let' v= identifier '=' varExpr= castedExpression ':' target= expression |
+			// x= castedExpression )
+			int alt26 = 2;
+			int LA26_0 = input.LA(1);
+
+			if ((LA26_0 == 42)) {
+				alt26 = 1;
+			} else if (((LA26_0 >= StringLiteral && LA26_0 <= Identifier) || LA26_0 == 24 || LA26_0 == 29 || (LA26_0 >= 39 && LA26_0 <= 41)
+					|| (LA26_0 >= 48 && LA26_0 <= 49) || LA26_0 == 63 || (LA26_0 >= 65 && LA26_0 <= 79))) {
+				alt26 = 2;
+			} else {
+				if (state.backtracking > 0) {
+					state.failed = true;
+					return e;
+				}
+				NoViableAltException nvae = new NoViableAltException("", 26, 0, input);
+
+				throw nvae;
+			}
+			switch (alt26) {
+			case 1:
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:164:4: 'let' v= identifier '=' varExpr= castedExpression ':' target= expression
+			{
+				match(input, 42, FOLLOW_42_in_letExpression693);
+				if (state.failed)
+					return e;
+				pushFollow(FOLLOW_identifier_in_letExpression697);
+				v = identifier();
+
+				state._fsp--;
+				if (state.failed)
+					return e;
+				match(input, 43, FOLLOW_43_in_letExpression699);
+				if (state.failed)
+					return e;
+				pushFollow(FOLLOW_castedExpression_in_letExpression703);
+				varExpr = castedExpression();
+
+				state._fsp--;
+				if (state.failed)
+					return e;
+				match(input, 27, FOLLOW_27_in_letExpression705);
+				if (state.failed)
+					return e;
+				pushFollow(FOLLOW_expression_in_letExpression709);
+				target = expression();
+
+				state._fsp--;
+				if (state.failed)
+					return e;
+				if (state.backtracking == 0) {
+					e = factory.createLetExpression(v, varExpr, target);
+				}
+
+			}
+				break;
+			case 2:
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:166:4: x= castedExpression
+			{
+				pushFollow(FOLLOW_castedExpression_in_letExpression722);
+				x = castedExpression();
+
+				state._fsp--;
+				if (state.failed)
+					return e;
+				if (state.backtracking == 0) {
+					e = x;
+				}
+
+			}
+				break;
+
+			}
+			if (state.backtracking == 0) {
+				addLocation(e, startToken, /* endToken */(CommonToken) input.LT(-1));
+			}
+		} catch (RecognitionException re) {
+			reportError(re);
+			recover(input, re);
+		} finally {
+		}
+		return e;
+	}
+
+	// $ANTLR end "letExpression"
+
+	// $ANTLR start "castedExpression"
+	// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:170:1: castedExpression returns [Expression e] : ( ( '(' type ')' castedExpression )=> '('
+	// t= type ')' x= chainExpression | x= chainExpression );
+	public final Expression castedExpression() throws RecognitionException {
+		Expression e = null;
+
+		Identifier t = null;
+
+		Expression x = null;
+
+		final CommonToken startToken = (CommonToken) input.LT(1);
+		try {
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:173:1: ( ( '(' type ')' castedExpression )=> '(' t= type ')' x= chainExpression |
+			// x= chainExpression )
+			int alt27 = 2;
+			alt27 = dfa27.predict(input);
+			switch (alt27) {
+			case 1:
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:174:5: ( '(' type ')' castedExpression )=> '(' t= type ')' x= chainExpression
+			{
+				match(input, 29, FOLLOW_29_in_castedExpression762);
+				if (state.failed)
+					return e;
+				pushFollow(FOLLOW_type_in_castedExpression766);
+				t = type();
+
+				state._fsp--;
+				if (state.failed)
+					return e;
+				match(input, 32, FOLLOW_32_in_castedExpression768);
+				if (state.failed)
+					return e;
+				pushFollow(FOLLOW_chainExpression_in_castedExpression772);
+				x = chainExpression();
+
+				state._fsp--;
+				if (state.failed)
+					return e;
+				if (state.backtracking == 0) {
+					e = factory.createCast(t, x);
+				}
+
+			}
+				break;
+			case 2:
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:176:4: x= chainExpression
+			{
+				pushFollow(FOLLOW_chainExpression_in_castedExpression781);
+				x = chainExpression();
+
+				state._fsp--;
+				if (state.failed)
+					return e;
+				if (state.backtracking == 0) {
+					e = x;
+				}
+
+			}
+				break;
+
+			}
+			if (state.backtracking == 0) {
+				addLocation(e, startToken, /* endToken */(CommonToken) input.LT(-1));
+			}
+		} catch (RecognitionException re) {
+			reportError(re);
+			recover(input, re);
+		} finally {
+		}
+		return e;
+	}
+
+	// $ANTLR end "castedExpression"
+
+	// $ANTLR start "chainExpression"
+	// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:180:1: chainExpression returns [Expression e] : x= ifExpression ( '->' right= ifExpression
+	// )* ;
+	public final Expression chainExpression() throws RecognitionException {
+		Expression e = null;
+
+		Expression x = null;
+
+		Expression right = null;
+
+		final CommonToken startToken = (CommonToken) input.LT(1);
+		try {
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:182:1: (x= ifExpression ( '->' right= ifExpression )* )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:183:2: x= ifExpression ( '->' right= ifExpression )*
+			{
+				pushFollow(FOLLOW_ifExpression_in_chainExpression805);
+				x = ifExpression();
+
+				state._fsp--;
+				if (state.failed)
+					return e;
+				if (state.backtracking == 0) {
+					e = x;
+				}
+				// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:183:25: ( '->' right= ifExpression )*
+				loop28: do {
+					int alt28 = 2;
+					int LA28_0 = input.LA(1);
+
+					if ((LA28_0 == 44)) {
+						alt28 = 1;
+					}
+
+					switch (alt28) {
+					case 1:
+					// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:183:27: '->' right= ifExpression
+					{
+						match(input, 44, FOLLOW_44_in_chainExpression811);
+						if (state.failed)
+							return e;
+						pushFollow(FOLLOW_ifExpression_in_chainExpression815);
+						right = ifExpression();
+
+						state._fsp--;
+						if (state.failed)
+							return e;
+						if (state.backtracking == 0) {
+							e = factory.createChainExpression(e, right);
+							addLocation(e, startToken, /* endToken */(CommonToken) input.LT(-1));
+						}
+
+					}
+						break;
+
+					default:
+						break loop28;
+					}
+				} while (true);
+
+			}
+
+		} catch (RecognitionException re) {
+			reportError(re);
+			recover(input, re);
+		} finally {
+		}
+		return e;
+	}
+
+	// $ANTLR end "chainExpression"
+
+	// $ANTLR start "ifExpression"
+	// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:187:1: ifExpression returns [Expression e] : (x= switchExpression ( '?' thenPart=
+	// switchExpression ':' elsePart= switchExpression )? | 'if' condition= switchExpression 'then' thenPart= switchExpression ( 'else' elsePart=
+	// expression )? );
+	public final Expression ifExpression() throws RecognitionException {
+		Expression e = null;
+
+		Expression x = null;
+
+		Expression thenPart = null;
+
+		Expression elsePart = null;
+
+		Expression condition = null;
+
+		final CommonToken startToken = (CommonToken) input.LT(1);
+		try {
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:190:1: (x= switchExpression ( '?' thenPart= switchExpression ':' elsePart=
+			// switchExpression )? | 'if' condition= switchExpression 'then' thenPart= switchExpression ( 'else' elsePart= expression )? )
+			int alt31 = 2;
+			int LA31_0 = input.LA(1);
+
+			if (((LA31_0 >= StringLiteral && LA31_0 <= Identifier) || LA31_0 == 29 || (LA31_0 >= 39 && LA31_0 <= 41)
+					|| (LA31_0 >= 48 && LA31_0 <= 49) || LA31_0 == 63 || (LA31_0 >= 65 && LA31_0 <= 79))) {
+				alt31 = 1;
+			} else if ((LA31_0 == 24)) {
+				alt31 = 2;
+			} else {
+				if (state.backtracking > 0) {
+					state.failed = true;
+					return e;
+				}
+				NoViableAltException nvae = new NoViableAltException("", 31, 0, input);
+
+				throw nvae;
+			}
+			switch (alt31) {
+			case 1:
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:191:2: x= switchExpression ( '?' thenPart= switchExpression ':' elsePart=
+			// switchExpression )?
+			{
+				pushFollow(FOLLOW_switchExpression_in_ifExpression845);
+				x = switchExpression();
+
+				state._fsp--;
+				if (state.failed)
+					return e;
+				if (state.backtracking == 0) {
+					e = x;
+				}
+				// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:191:28: ( '?' thenPart= switchExpression ':' elsePart= switchExpression )?
+				int alt29 = 2;
+				int LA29_0 = input.LA(1);
+
+				if ((LA29_0 == 45)) {
+					alt29 = 1;
+				}
+				switch (alt29) {
+				case 1:
+				// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:191:29: '?' thenPart= switchExpression ':' elsePart= switchExpression
+				{
+					match(input, 45, FOLLOW_45_in_ifExpression849);
+					if (state.failed)
+						return e;
+					pushFollow(FOLLOW_switchExpression_in_ifExpression853);
+					thenPart = switchExpression();
+
+					state._fsp--;
+					if (state.failed)
+						return e;
+					match(input, 27, FOLLOW_27_in_ifExpression855);
+					if (state.failed)
+						return e;
+					pushFollow(FOLLOW_switchExpression_in_ifExpression859);
+					elsePart = switchExpression();
+
+					state._fsp--;
+					if (state.failed)
+						return e;
+					if (state.backtracking == 0) {
+						e = factory.createIf(e, thenPart, elsePart);
+					}
+
+				}
+					break;
+
+				}
+
+			}
+				break;
+			case 2:
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:192:3: 'if' condition= switchExpression 'then' thenPart= switchExpression ( 'else'
+			// elsePart= expression )?
+			{
+				match(input, 24, FOLLOW_24_in_ifExpression867);
+				if (state.failed)
+					return e;
+				pushFollow(FOLLOW_switchExpression_in_ifExpression871);
+				condition = switchExpression();
+
+				state._fsp--;
+				if (state.failed)
+					return e;
+				match(input, 46, FOLLOW_46_in_ifExpression873);
+				if (state.failed)
+					return e;
+				pushFollow(FOLLOW_switchExpression_in_ifExpression877);
+				thenPart = switchExpression();
+
+				state._fsp--;
+				if (state.failed)
+					return e;
+				// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:192:68: ( 'else' elsePart= expression )?
+				int alt30 = 2;
+				int LA30_0 = input.LA(1);
+
+				if ((LA30_0 == 47)) {
+					alt30 = 1;
+				}
+				switch (alt30) {
+				case 1:
+				// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:192:69: 'else' elsePart= expression
+				{
+					match(input, 47, FOLLOW_47_in_ifExpression880);
+					if (state.failed)
+						return e;
+					pushFollow(FOLLOW_expression_in_ifExpression884);
+					elsePart = expression();
+
+					state._fsp--;
+					if (state.failed)
+						return e;
+
+				}
+					break;
+
+				}
+
+				if (state.backtracking == 0) {
+					e = factory.createIf(condition, thenPart, elsePart);
+				}
+
+			}
+				break;
+
+			}
+			if (state.backtracking == 0) {
+				addLocation(e, startToken, /* endToken */(CommonToken) input.LT(-1));
+			}
+		} catch (RecognitionException re) {
+			reportError(re);
+			recover(input, re);
+		} finally {
+		}
+		return e;
+	}
+
+	// $ANTLR end "ifExpression"
+
+	// $ANTLR start "switchExpression"
+	// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:196:1: switchExpression returns [Expression e=null] : ( 'switch' ( '(' pred= orExpression
+	// ')' )? '{' ( 'case' c= orExpression ':' v= orExpression )* 'default' ':' def= orExpression '}' | x= orExpression );
+	public final Expression switchExpression() throws RecognitionException {
+		Expression e = null;
+
+		Expression pred = null;
+
+		Expression c = null;
+
+		Expression v = null;
+
+		Expression def = null;
+
+		Expression x = null;
+
+		final CommonToken startToken = (CommonToken) input.LT(1);
+		final List<Case> cases = new BasicEList<Case>();
+		try {
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:199:1: ( 'switch' ( '(' pred= orExpression ')' )? '{' ( 'case' c= orExpression ':'
+			// v= orExpression )* 'default' ':' def= orExpression '}' | x= orExpression )
+			int alt34 = 2;
+			int LA34_0 = input.LA(1);
+
+			if ((LA34_0 == 48)) {
+				alt34 = 1;
+			} else if (((LA34_0 >= StringLiteral && LA34_0 <= Identifier) || LA34_0 == 29 || (LA34_0 >= 39 && LA34_0 <= 41) || LA34_0 == 49
+					|| LA34_0 == 63 || (LA34_0 >= 65 && LA34_0 <= 79))) {
+				alt34 = 2;
+			} else {
+				if (state.backtracking > 0) {
+					state.failed = true;
+					return e;
+				}
+				NoViableAltException nvae = new NoViableAltException("", 34, 0, input);
+
+				throw nvae;
+			}
+			switch (alt34) {
+			case 1:
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:200:4: 'switch' ( '(' pred= orExpression ')' )? '{' ( 'case' c= orExpression ':' v=
+			// orExpression )* 'default' ':' def= orExpression '}'
+			{
+				match(input, 48, FOLLOW_48_in_switchExpression914);
+				if (state.failed)
+					return e;
+				// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:200:13: ( '(' pred= orExpression ')' )?
+				int alt32 = 2;
+				int LA32_0 = input.LA(1);
+
+				if ((LA32_0 == 29)) {
+					alt32 = 1;
+				}
+				switch (alt32) {
+				case 1:
+				// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:200:14: '(' pred= orExpression ')'
+				{
+					match(input, 29, FOLLOW_29_in_switchExpression917);
+					if (state.failed)
+						return e;
+					pushFollow(FOLLOW_orExpression_in_switchExpression923);
+					pred = orExpression();
+
+					state._fsp--;
+					if (state.failed)
+						return e;
+					match(input, 32, FOLLOW_32_in_switchExpression925);
+					if (state.failed)
+						return e;
+
+				}
+					break;
+
+				}
+
+				match(input, 49, FOLLOW_49_in_switchExpression932);
+				if (state.failed)
+					return e;
+				// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:202:4: ( 'case' c= orExpression ':' v= orExpression )*
+				loop33: do {
+					int alt33 = 2;
+					int LA33_0 = input.LA(1);
+
+					if ((LA33_0 == 50)) {
+						alt33 = 1;
+					}
+
+					switch (alt33) {
+					case 1:
+					// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:203:6: 'case' c= orExpression ':' v= orExpression
+					{
+						match(input, 50, FOLLOW_50_in_switchExpression945);
+						if (state.failed)
+							return e;
+						pushFollow(FOLLOW_orExpression_in_switchExpression949);
+						c = orExpression();
+
+						state._fsp--;
+						if (state.failed)
+							return e;
+						match(input, 27, FOLLOW_27_in_switchExpression952);
+						if (state.failed)
+							return e;
+						pushFollow(FOLLOW_orExpression_in_switchExpression957);
+						v = orExpression();
+
+						state._fsp--;
+						if (state.failed)
+							return e;
+						if (state.backtracking == 0) {
+							Case _case = factory.createCase(c, v);
+							if (_case != null)
+								cases.add(_case);
+						}
+
+					}
+						break;
+
+					default:
+						break loop33;
+					}
+				} while (true);
+
+				match(input, 51, FOLLOW_51_in_switchExpression975);
+				if (state.failed)
+					return e;
+				match(input, 27, FOLLOW_27_in_switchExpression977);
+				if (state.failed)
+					return e;
+				pushFollow(FOLLOW_orExpression_in_switchExpression983);
+				def = orExpression();
+
+				state._fsp--;
+				if (state.failed)
+					return e;
+				match(input, 52, FOLLOW_52_in_switchExpression988);
+				if (state.failed)
+					return e;
+				if (state.backtracking == 0) {
+					e = factory.createSwitchExpression(pred, cases, def);
+				}
+
+			}
+				break;
+			case 2:
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:209:4: x= orExpression
+			{
+				pushFollow(FOLLOW_orExpression_in_switchExpression1000);
+				x = orExpression();
+
+				state._fsp--;
+				if (state.failed)
+					return e;
+				if (state.backtracking == 0) {
+					e = x;
+				}
+
+			}
+				break;
+
+			}
+			if (state.backtracking == 0) {
+				addLocation(e, startToken, /* endToken */(CommonToken) input.LT(-1));
+			}
+		} catch (RecognitionException re) {
+			reportError(re);
+			recover(input, re);
+		} finally {
+		}
+		return e;
+	}
+
+	// $ANTLR end "switchExpression"
+
+	// $ANTLR start "orExpression"
+	// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:213:1: orExpression returns [Expression e] : x= andExpression (name= '||' r= andExpression
+	// )* ;
+	public final Expression orExpression() throws RecognitionException {
+		Expression e = null;
+
+		Token name = null;
+		Expression x = null;
+
+		Expression r = null;
+
+		final CommonToken startToken = (CommonToken) input.LT(1);
+		try {
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:215:1: (x= andExpression (name= '||' r= andExpression )* )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:216:4: x= andExpression (name= '||' r= andExpression )*
+			{
+				pushFollow(FOLLOW_andExpression_in_orExpression1025);
+				x = andExpression();
+
+				state._fsp--;
+				if (state.failed)
+					return e;
+				if (state.backtracking == 0) {
+					e = x;
+				}
+				// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:216:28: (name= '||' r= andExpression )*
+				loop35: do {
+					int alt35 = 2;
+					int LA35_0 = input.LA(1);
+
+					if ((LA35_0 == 53)) {
+						alt35 = 1;
+					}
+
+					switch (alt35) {
+					case 1:
+					// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:216:29: name= '||' r= andExpression
+					{
+						name = (Token) match(input, 53, FOLLOW_53_in_orExpression1032);
+						if (state.failed)
+							return e;
+						pushFollow(FOLLOW_andExpression_in_orExpression1036);
+						r = andExpression();
+
+						state._fsp--;
+						if (state.failed)
+							return e;
+						if (state.backtracking == 0) {
+							e = factory.createBooleanOperation(id(name), e, r);
+							addLocation(e, startToken, /* endToken */(CommonToken) input.LT(-1));
+						}
+
+					}
+						break;
+
+					default:
+						break loop35;
+					}
+				} while (true);
+
+			}
+
+		} catch (RecognitionException re) {
+			reportError(re);
+			recover(input, re);
+		} finally {
+		}
+		return e;
+	}
+
+	// $ANTLR end "orExpression"
+
+	// $ANTLR start "andExpression"
+	// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:220:1: andExpression returns [Expression e] : x= impliesExpression (name= '&&' r=
+	// impliesExpression )* ;
+	public final Expression andExpression() throws RecognitionException {
+		Expression e = null;
+
+		Token name = null;
+		Expression x = null;
+
+		Expression r = null;
+
+		final CommonToken startToken = (CommonToken) input.LT(1);
+		try {
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:222:1: (x= impliesExpression (name= '&&' r= impliesExpression )* )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:223:2: x= impliesExpression (name= '&&' r= impliesExpression )*
+			{
+				pushFollow(FOLLOW_impliesExpression_in_andExpression1064);
+				x = impliesExpression();
+
+				state._fsp--;
+				if (state.failed)
+					return e;
+				if (state.backtracking == 0) {
+					e = x;
+				}
+				// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:223:30: (name= '&&' r= impliesExpression )*
+				loop36: do {
+					int alt36 = 2;
+					int LA36_0 = input.LA(1);
+
+					if ((LA36_0 == 54)) {
+						alt36 = 1;
+					}
+
+					switch (alt36) {
+					case 1:
+					// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:223:31: name= '&&' r= impliesExpression
+					{
+						name = (Token) match(input, 54, FOLLOW_54_in_andExpression1071);
+						if (state.failed)
+							return e;
+						pushFollow(FOLLOW_impliesExpression_in_andExpression1075);
+						r = impliesExpression();
+
+						state._fsp--;
+						if (state.failed)
+							return e;
+						if (state.backtracking == 0) {
+							e = factory.createBooleanOperation(id(name), e, r);
+							addLocation(e, startToken, /* endToken */(CommonToken) input.LT(-1));
+						}
+
+					}
+						break;
+
+					default:
+						break loop36;
+					}
+				} while (true);
+
+			}
+
+		} catch (RecognitionException re) {
+			reportError(re);
+			recover(input, re);
+		} finally {
+		}
+		return e;
+	}
+
+	// $ANTLR end "andExpression"
+
+	// $ANTLR start "impliesExpression"
+	// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:227:1: impliesExpression returns [Expression e] : x= relationalExpression (name= 'implies'
+	// r= relationalExpression )* ;
+	public final Expression impliesExpression() throws RecognitionException {
+		Expression e = null;
+
+		Token name = null;
+		Expression x = null;
+
+		Expression r = null;
+
+		final CommonToken startToken = (CommonToken) input.LT(1);
+		try {
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:229:1: (x= relationalExpression (name= 'implies' r= relationalExpression )* )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:230:2: x= relationalExpression (name= 'implies' r= relationalExpression )*
+			{
+				pushFollow(FOLLOW_relationalExpression_in_impliesExpression1102);
+				x = relationalExpression();
+
+				state._fsp--;
+				if (state.failed)
+					return e;
+				if (state.backtracking == 0) {
+					e = x;
+				}
+				// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:230:33: (name= 'implies' r= relationalExpression )*
+				loop37: do {
+					int alt37 = 2;
+					int LA37_0 = input.LA(1);
+
+					if ((LA37_0 == 55)) {
+						alt37 = 1;
+					}
+
+					switch (alt37) {
+					case 1:
+					// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:230:34: name= 'implies' r= relationalExpression
+					{
+						name = (Token) match(input, 55, FOLLOW_55_in_impliesExpression1109);
+						if (state.failed)
+							return e;
+						pushFollow(FOLLOW_relationalExpression_in_impliesExpression1113);
+						r = relationalExpression();
+
+						state._fsp--;
+						if (state.failed)
+							return e;
+						if (state.backtracking == 0) {
+							e = factory.createBooleanOperation(id(name), e, r);
+							addLocation(e, startToken, /* endToken */(CommonToken) input.LT(-1));
+						}
+
+					}
+						break;
+
+					default:
+						break loop37;
+					}
+				} while (true);
+
+			}
+
+		} catch (RecognitionException re) {
+			reportError(re);
+			recover(input, re);
+		} finally {
+		}
+		return e;
+	}
+
+	// $ANTLR end "impliesExpression"
+
+	// $ANTLR start "relationalExpression"
+	// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:234:1: relationalExpression returns [Expression e] : x= additiveExpression (name= ( '==' |
+	// '!=' | '>=' | '<=' | '>' | '<' ) r= additiveExpression )* ;
+	public final Expression relationalExpression() throws RecognitionException {
+		Expression e = null;
+
+		Token name = null;
+		Expression x = null;
+
+		Expression r = null;
+
+		final CommonToken startToken = (CommonToken) input.LT(1);
+		try {
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:236:1: (x= additiveExpression (name= ( '==' | '!=' | '>=' | '<=' | '>' | '<' ) r=
+			// additiveExpression )* )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:237:2: x= additiveExpression (name= ( '==' | '!=' | '>=' | '<=' | '>' | '<' ) r=
+			// additiveExpression )*
+			{
+				pushFollow(FOLLOW_additiveExpression_in_relationalExpression1141);
+				x = additiveExpression();
+
+				state._fsp--;
+				if (state.failed)
+					return e;
+				if (state.backtracking == 0) {
+					e = x;
+				}
+				// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:238:2: (name= ( '==' | '!=' | '>=' | '<=' | '>' | '<' ) r= additiveExpression
+				// )*
+				loop38: do {
+					int alt38 = 2;
+					int LA38_0 = input.LA(1);
+
+					if (((LA38_0 >= 56 && LA38_0 <= 61))) {
+						alt38 = 1;
+					}
+
+					switch (alt38) {
+					case 1:
+					// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:238:3: name= ( '==' | '!=' | '>=' | '<=' | '>' | '<' ) r=
+					// additiveExpression
+					{
+						name = (Token) input.LT(1);
+						if ((input.LA(1) >= 56 && input.LA(1) <= 61)) {
+							input.consume();
+							state.errorRecovery = false;
+							state.failed = false;
+						} else {
+							if (state.backtracking > 0) {
+								state.failed = true;
+								return e;
+							}
+							MismatchedSetException mse = new MismatchedSetException(null, input);
+							throw mse;
+						}
+
+						pushFollow(FOLLOW_additiveExpression_in_relationalExpression1175);
+						r = additiveExpression();
+
+						state._fsp--;
+						if (state.failed)
+							return e;
+						if (state.backtracking == 0) {
+							e = factory.createBinaryOperation(id(name), e, r);
+							addLocation(e, startToken, /* endToken */(CommonToken) input.LT(-1));
+						}
+
+					}
+						break;
+
+					default:
+						break loop38;
+					}
+				} while (true);
+
+			}
+
+		} catch (RecognitionException re) {
+			reportError(re);
+			recover(input, re);
+		} finally {
+		}
+		return e;
+	}
+
+	// $ANTLR end "relationalExpression"
+
+	// $ANTLR start "additiveExpression"
+	// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:242:1: additiveExpression returns [Expression e] : x= multiplicativeExpression (name= ( '+'
+	// | '-' ) r= multiplicativeExpression )* ;
+	public final Expression additiveExpression() throws RecognitionException {
+		Expression e = null;
+
+		Token name = null;
+		Expression x = null;
+
+		Expression r = null;
+
+		final CommonToken startToken = (CommonToken) input.LT(1);
+		try {
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:244:1: (x= multiplicativeExpression (name= ( '+' | '-' ) r=
+			// multiplicativeExpression )* )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:245:2: x= multiplicativeExpression (name= ( '+' | '-' ) r= multiplicativeExpression
+			// )*
+			{
+				pushFollow(FOLLOW_multiplicativeExpression_in_additiveExpression1200);
+				x = multiplicativeExpression();
+
+				state._fsp--;
+				if (state.failed)
+					return e;
+				if (state.backtracking == 0) {
+					e = x;
+				}
+				// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:246:4: (name= ( '+' | '-' ) r= multiplicativeExpression )*
+				loop39: do {
+					int alt39 = 2;
+					int LA39_0 = input.LA(1);
+
+					if (((LA39_0 >= 62 && LA39_0 <= 63))) {
+						alt39 = 1;
+					}
+
+					switch (alt39) {
+					case 1:
+					// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:246:5: name= ( '+' | '-' ) r= multiplicativeExpression
+					{
+						name = (Token) input.LT(1);
+						if ((input.LA(1) >= 62 && input.LA(1) <= 63)) {
+							input.consume();
+							state.errorRecovery = false;
+							state.failed = false;
+						} else {
+							if (state.backtracking > 0) {
+								state.failed = true;
+								return e;
+							}
+							MismatchedSetException mse = new MismatchedSetException(null, input);
+							throw mse;
+						}
+
+						pushFollow(FOLLOW_multiplicativeExpression_in_additiveExpression1219);
+						r = multiplicativeExpression();
+
+						state._fsp--;
+						if (state.failed)
+							return e;
+						if (state.backtracking == 0) {
+							e = factory.createBinaryOperation(id(name), e, r);
+							addLocation(e, startToken, /* endToken */(CommonToken) input.LT(-1));
+						}
+
+					}
+						break;
+
+					default:
+						break loop39;
+					}
+				} while (true);
+
+			}
+
+		} catch (RecognitionException re) {
+			reportError(re);
+			recover(input, re);
+		} finally {
+		}
+		return e;
+	}
+
+	// $ANTLR end "additiveExpression"
+
+	// $ANTLR start "multiplicativeExpression"
+	// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:250:1: multiplicativeExpression returns [Expression e] : x= unaryExpression (name= ( '*' |
+	// '/' ) r= unaryExpression )* ;
+	public final Expression multiplicativeExpression() throws RecognitionException {
+		Expression e = null;
+
+		Token name = null;
+		Expression x = null;
+
+		Expression r = null;
+
+		final CommonToken startToken = (CommonToken) input.LT(1);
+		try {
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:252:1: (x= unaryExpression (name= ( '*' | '/' ) r= unaryExpression )* )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:253:2: x= unaryExpression (name= ( '*' | '/' ) r= unaryExpression )*
+			{
+				pushFollow(FOLLOW_unaryExpression_in_multiplicativeExpression1244);
+				x = unaryExpression();
+
+				state._fsp--;
+				if (state.failed)
+					return e;
+				if (state.backtracking == 0) {
+					e = x;
+				}
+				// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:254:2: (name= ( '*' | '/' ) r= unaryExpression )*
+				loop40: do {
+					int alt40 = 2;
+					int LA40_0 = input.LA(1);
+
+					if ((LA40_0 == 31 || LA40_0 == 64)) {
+						alt40 = 1;
+					}
+
+					switch (alt40) {
+					case 1:
+					// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:254:3: name= ( '*' | '/' ) r= unaryExpression
+					{
+						name = (Token) input.LT(1);
+						if (input.LA(1) == 31 || input.LA(1) == 64) {
+							input.consume();
+							state.errorRecovery = false;
+							state.failed = false;
+						} else {
+							if (state.backtracking > 0) {
+								state.failed = true;
+								return e;
+							}
+							MismatchedSetException mse = new MismatchedSetException(null, input);
+							throw mse;
+						}
+
+						pushFollow(FOLLOW_unaryExpression_in_multiplicativeExpression1262);
+						r = unaryExpression();
+
+						state._fsp--;
+						if (state.failed)
+							return e;
+						if (state.backtracking == 0) {
+							e = factory.createBinaryOperation(id(name), e, r);
+							addLocation(e, startToken, /* endToken */(CommonToken) input.LT(-1));
+						}
+
+					}
+						break;
+
+					default:
+						break loop40;
+					}
+				} while (true);
+
+			}
+
+		} catch (RecognitionException re) {
+			reportError(re);
+			recover(input, re);
+		} finally {
+		}
+		return e;
+	}
+
+	// $ANTLR end "multiplicativeExpression"
+
+	// $ANTLR start "unaryExpression"
+	// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:258:1: unaryExpression returns [Expression e] : (x= infixExpression | name= '!' x=
+	// infixExpression | name= '-' x= infixExpression );
+	public final Expression unaryExpression() throws RecognitionException {
+		Expression e = null;
+
+		Token name = null;
+		Expression x = null;
+
+		final CommonToken startToken = (CommonToken) input.LT(1);
+		try {
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:261:1: (x= infixExpression | name= '!' x= infixExpression | name= '-' x=
+			// infixExpression )
+			int alt41 = 3;
+			switch (input.LA(1)) {
+			case StringLiteral:
+			case IntLiteral:
+			case Identifier:
+			case 29:
+			case 39:
+			case 40:
+			case 41:
+			case 49:
+			case 66:
+			case 67:
+			case 68:
+			case 69:
+			case 70:
+			case 71:
+			case 72:
+			case 73:
+			case 74:
+			case 75:
+			case 76:
+			case 77:
+			case 78:
+			case 79: {
+				alt41 = 1;
+			}
+				break;
+			case 65: {
+				alt41 = 2;
+			}
+				break;
+			case 63: {
+				alt41 = 3;
+			}
+				break;
+			default:
+				if (state.backtracking > 0) {
+					state.failed = true;
+					return e;
+				}
+				NoViableAltException nvae = new NoViableAltException("", 41, 0, input);
+
+				throw nvae;
+			}
+
+			switch (alt41) {
+			case 1:
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:262:2: x= infixExpression
+			{
+				pushFollow(FOLLOW_infixExpression_in_unaryExpression1291);
+				x = infixExpression();
+
+				state._fsp--;
+				if (state.failed)
+					return e;
+				if (state.backtracking == 0) {
+					e = x;
+				}
+
+			}
+				break;
+			case 2:
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:263:3: name= '!' x= infixExpression
+			{
+				name = (Token) match(input, 65, FOLLOW_65_in_unaryExpression1299);
+				if (state.failed)
+					return e;
+				pushFollow(FOLLOW_infixExpression_in_unaryExpression1303);
+				x = infixExpression();
+
+				state._fsp--;
+				if (state.failed)
+					return e;
+				if (state.backtracking == 0) {
+					e = factory.createOperationCall(id(name), x);
+				}
+
+			}
+				break;
+			case 3:
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:264:3: name= '-' x= infixExpression
+			{
+				name = (Token) match(input, 63, FOLLOW_63_in_unaryExpression1311);
+				if (state.failed)
+					return e;
+				pushFollow(FOLLOW_infixExpression_in_unaryExpression1315);
+				x = infixExpression();
+
+				state._fsp--;
+				if (state.failed)
+					return e;
+				if (state.backtracking == 0) {
+					e = factory.createOperationCall(id(name), x);
+				}
+
+			}
+				break;
+
+			}
+			if (state.backtracking == 0) {
+				addLocation(e, startToken, /* endToken */(CommonToken) input.LT(-1));
+			}
+		} catch (RecognitionException re) {
+			reportError(re);
+			recover(input, re);
+		} finally {
+		}
+		return e;
+	}
+
+	// $ANTLR end "unaryExpression"
+
+	// $ANTLR start "infixExpression"
+	// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:268:1: infixExpression returns [Expression e] : x= primaryExpression ( '.' op= featureCall
+	// )* ;
+	public final Expression infixExpression() throws RecognitionException {
+		Expression e = null;
+
+		Expression x = null;
+
+		FeatureCall op = null;
+
+		final CommonToken startToken = (CommonToken) input.LT(1);
+		try {
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:271:1: (x= primaryExpression ( '.' op= featureCall )* )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:272:2: x= primaryExpression ( '.' op= featureCall )*
+			{
+				pushFollow(FOLLOW_primaryExpression_in_infixExpression1342);
+				x = primaryExpression();
+
+				state._fsp--;
+				if (state.failed)
+					return e;
+				if (state.backtracking == 0) {
+					e = x;
+				}
+				// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:272:30: ( '.' op= featureCall )*
+				loop42: do {
+					int alt42 = 2;
+					int LA42_0 = input.LA(1);
+
+					if ((LA42_0 == 37)) {
+						alt42 = 1;
+					}
+
+					switch (alt42) {
+					case 1:
+					// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:272:32: '.' op= featureCall
+					{
+						match(input, 37, FOLLOW_37_in_infixExpression1348);
+						if (state.failed)
+							return e;
+						pushFollow(FOLLOW_featureCall_in_infixExpression1352);
+						op = featureCall();
+
+						state._fsp--;
+						if (state.failed)
+							return e;
+						if (state.backtracking == 0) {
+							if (op != null) {
+								op.setTarget(e);
+								e = op;
+							}
+						}
+
+					}
+						break;
+
+					default:
+						break loop42;
+					}
+				} while (true);
+
+			}
+
+			if (state.backtracking == 0) {
+				addLocation(e, startToken, /* endToken */(CommonToken) input.LT(-1));
+			}
+		} catch (RecognitionException re) {
+			reportError(re);
+			recover(input, re);
+		} finally {
+		}
+		return e;
+	}
+
+	// $ANTLR end "infixExpression"
+
+	// $ANTLR start "primaryExpression"
+	// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:276:1: primaryExpression returns [Expression e] : (c= StringLiteral | x= featureCall | x=
+	// booleanLiteral | x= numberLiteral | x= nullLiteral | x= listLiteral | x= constructorCall | x= globalVarExpression | x= paranthesizedExpression
+	// );
+	public final Expression primaryExpression() throws RecognitionException {
+		Expression e = null;
+
+		Token c = null;
+		Expression x = null;
+
+		final CommonToken startToken = (CommonToken) input.LT(1);
+		try {
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:279:1: (c= StringLiteral | x= featureCall | x= booleanLiteral | x= numberLiteral |
+			// x= nullLiteral | x= listLiteral | x= constructorCall | x= globalVarExpression | x= paranthesizedExpression )
+			int alt43 = 9;
+			switch (input.LA(1)) {
+			case StringLiteral: {
+				alt43 = 1;
+			}
+				break;
+			case Identifier:
+			case 39:
+			case 40:
+			case 41:
+			case 71:
+			case 72:
+			case 73:
+			case 74:
+			case 75:
+			case 76:
+			case 77:
+			case 78:
+			case 79: {
+				alt43 = 2;
+			}
+				break;
+			case 68:
+			case 69: {
+				alt43 = 3;
+			}
+				break;
+			case IntLiteral: {
+				alt43 = 4;
+			}
+				break;
+			case 70: {
+				alt43 = 5;
+			}
+				break;
+			case 49: {
+				alt43 = 6;
+			}
+				break;
+			case 67: {
+				alt43 = 7;
+			}
+				break;
+			case 66: {
+				alt43 = 8;
+			}
+				break;
+			case 29: {
+				alt43 = 9;
+			}
+				break;
+			default:
+				if (state.backtracking > 0) {
+					state.failed = true;
+					return e;
+				}
+				NoViableAltException nvae = new NoViableAltException("", 43, 0, input);
+
+				throw nvae;
+			}
+
+			switch (alt43) {
+			case 1:
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:280:4: c= StringLiteral
+			{
+				c = (Token) match(input, StringLiteral, FOLLOW_StringLiteral_in_primaryExpression1387);
+				if (state.failed)
+					return e;
+				if (state.backtracking == 0) {
+					e = factory.createStringLiteral(id(c));
+				}
+
+			}
+				break;
+			case 2:
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:281:5: x= featureCall
+			{
+				pushFollow(FOLLOW_featureCall_in_primaryExpression1398);
+				x = featureCall();
+
+				state._fsp--;
+				if (state.failed)
+					return e;
+				if (state.backtracking == 0) {
+					e = x;
+				}
+
+			}
+				break;
+			case 3:
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:282:5: x= booleanLiteral
+			{
+				pushFollow(FOLLOW_booleanLiteral_in_primaryExpression1408);
+				x = booleanLiteral();
+
+				state._fsp--;
+				if (state.failed)
+					return e;
+				if (state.backtracking == 0) {
+					e = x;
+				}
+
+			}
+				break;
+			case 4:
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:283:5: x= numberLiteral
+			{
+				pushFollow(FOLLOW_numberLiteral_in_primaryExpression1418);
+				x = numberLiteral();
+
+				state._fsp--;
+				if (state.failed)
+					return e;
+				if (state.backtracking == 0) {
+					e = x;
+				}
+
+			}
+				break;
+			case 5:
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:284:5: x= nullLiteral
+			{
+				pushFollow(FOLLOW_nullLiteral_in_primaryExpression1428);
+				x = nullLiteral();
+
+				state._fsp--;
+				if (state.failed)
+					return e;
+				if (state.backtracking == 0) {
+					e = x;
+				}
+
+			}
+				break;
+			case 6:
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:285:5: x= listLiteral
+			{
+				pushFollow(FOLLOW_listLiteral_in_primaryExpression1438);
+				x = listLiteral();
+
+				state._fsp--;
+				if (state.failed)
+					return e;
+				if (state.backtracking == 0) {
+					e = x;
+				}
+
+			}
+				break;
+			case 7:
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:286:5: x= constructorCall
+			{
+				pushFollow(FOLLOW_constructorCall_in_primaryExpression1448);
+				x = constructorCall();
+
+				state._fsp--;
+				if (state.failed)
+					return e;
+				if (state.backtracking == 0) {
+					e = x;
+				}
+
+			}
+				break;
+			case 8:
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:287:5: x= globalVarExpression
+			{
+				pushFollow(FOLLOW_globalVarExpression_in_primaryExpression1458);
+				x = globalVarExpression();
+
+				state._fsp--;
+				if (state.failed)
+					return e;
+				if (state.backtracking == 0) {
+					e = x;
+				}
+
+			}
+				break;
+			case 9:
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:288:5: x= paranthesizedExpression
+			{
+				pushFollow(FOLLOW_paranthesizedExpression_in_primaryExpression1468);
+				x = paranthesizedExpression();
+
+				state._fsp--;
+				if (state.failed)
+					return e;
+				if (state.backtracking == 0) {
+					e = x;
+				}
+
+			}
+				break;
+
+			}
+			if (state.backtracking == 0) {
+				addLocation(e, startToken, /* endToken */(CommonToken) input.LT(-1));
+			}
+		} catch (RecognitionException re) {
+			reportError(re);
+			recover(input, re);
+		} finally {
+		}
+		return e;
+	}
+
+	// $ANTLR end "primaryExpression"
+
+	// $ANTLR start "paranthesizedExpression"
+	// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:291:1: paranthesizedExpression returns [Expression e] : '(' x= expression ')' ;
+	public final Expression paranthesizedExpression() throws RecognitionException {
+		Expression e = null;
+
+		Expression x = null;
+
+		final CommonToken startToken = (CommonToken) input.LT(1);
+		try {
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:294:1: ( '(' x= expression ')' )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:295:5: '(' x= expression ')'
+			{
+				match(input, 29, FOLLOW_29_in_paranthesizedExpression1495);
+				if (state.failed)
+					return e;
+				pushFollow(FOLLOW_expression_in_paranthesizedExpression1499);
+				x = expression();
+
+				state._fsp--;
+				if (state.failed)
+					return e;
+				match(input, 32, FOLLOW_32_in_paranthesizedExpression1501);
+				if (state.failed)
+					return e;
+				if (state.backtracking == 0) {
+					e = factory.createParanthesizedExpression(x);
+				}
+
+			}
+
+			if (state.backtracking == 0) {
+				addLocation(e, startToken, /* endToken */(CommonToken) input.LT(-1));
+			}
+		} catch (RecognitionException re) {
+			reportError(re);
+			recover(input, re);
+		} finally {
+		}
+		return e;
+	}
+
+	// $ANTLR end "paranthesizedExpression"
+
+	// $ANTLR start "globalVarExpression"
+	// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:299:1: globalVarExpression returns [GlobalVarExpression e] : 'GLOBALVAR' name= identifier ;
+	public final GlobalVarExpression globalVarExpression() throws RecognitionException {
+		GlobalVarExpression e = null;
+
+		Identifier name = null;
+
+		final CommonToken startToken = (CommonToken) input.LT(1);
+		try {
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:302:1: ( 'GLOBALVAR' name= identifier )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:303:5: 'GLOBALVAR' name= identifier
+			{
+				match(input, 66, FOLLOW_66_in_globalVarExpression1530);
+				if (state.failed)
+					return e;
+				pushFollow(FOLLOW_identifier_in_globalVarExpression1534);
+				name = identifier();
+
+				state._fsp--;
+				if (state.failed)
+					return e;
+				if (state.backtracking == 0) {
+					e = factory.createGlobalVarExpression(name);
+				}
+
+			}
+
+			if (state.backtracking == 0) {
+				addLocation(e, startToken, /* endToken */(CommonToken) input.LT(-1));
+			}
+		} catch (RecognitionException re) {
+			reportError(re);
+			recover(input, re);
+		} finally {
+		}
+		return e;
+	}
+
+	// $ANTLR end "globalVarExpression"
+
+	// $ANTLR start "featureCall"
+	// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:306:1: featureCall returns [FeatureCall e] : (id1= identifier '(' (l= parameterList )? ')'
+	// | t= type | x= collectionExpression );
+	public final FeatureCall featureCall() throws RecognitionException {
+		FeatureCall e = null;
+
+		Identifier id1 = null;
+
+		List<Expression> l = null;
+
+		Identifier t = null;
+
+		FeatureCall x = null;
+
+		final CommonToken startToken = (CommonToken) input.LT(1);
+		try {
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:309:1: (id1= identifier '(' (l= parameterList )? ')' | t= type | x=
+			// collectionExpression )
+			int alt45 = 3;
+			switch (input.LA(1)) {
+			case Identifier: {
+				int LA45_1 = input.LA(2);
+
+				if ((LA45_1 == EOF || LA45_1 == 19 || (LA45_1 >= 25 && LA45_1 <= 27) || (LA45_1 >= 30 && LA45_1 <= 33) || LA45_1 == 37
+						|| (LA45_1 >= 44 && LA45_1 <= 47) || (LA45_1 >= 50 && LA45_1 <= 64))) {
+					alt45 = 2;
+				} else if ((LA45_1 == 29)) {
+					alt45 = 1;
+				} else {
+					if (state.backtracking > 0) {
+						state.failed = true;
+						return e;
+					}
+					NoViableAltException nvae = new NoViableAltException("", 45, 1, input);
+
+					throw nvae;
+				}
+			}
+				break;
+			case 39:
+			case 40:
+			case 41: {
+				alt45 = 2;
+			}
+				break;
+			case 71:
+			case 72:
+			case 73:
+			case 74:
+			case 75:
+			case 76:
+			case 77:
+			case 78:
+			case 79: {
+				alt45 = 3;
+			}
+				break;
+			default:
+				if (state.backtracking > 0) {
+					state.failed = true;
+					return e;
+				}
+				NoViableAltException nvae = new NoViableAltException("", 45, 0, input);
+
+				throw nvae;
+			}
+
+			switch (alt45) {
+			case 1:
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:310:2: id1= identifier '(' (l= parameterList )? ')'
+			{
+				pushFollow(FOLLOW_identifier_in_featureCall1561);
+				id1 = identifier();
+
+				state._fsp--;
+				if (state.failed)
+					return e;
+				match(input, 29, FOLLOW_29_in_featureCall1563);
+				if (state.failed)
+					return e;
+				// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:310:21: (l= parameterList )?
+				int alt44 = 2;
+				int LA44_0 = input.LA(1);
+
+				if (((LA44_0 >= StringLiteral && LA44_0 <= Identifier) || LA44_0 == 24 || LA44_0 == 29 || (LA44_0 >= 39 && LA44_0 <= 42)
+						|| (LA44_0 >= 48 && LA44_0 <= 49) || LA44_0 == 63 || (LA44_0 >= 65 && LA44_0 <= 79))) {
+					alt44 = 1;
+				}
+				switch (alt44) {
+				case 1:
+				// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:310:22: l= parameterList
+				{
+					pushFollow(FOLLOW_parameterList_in_featureCall1568);
+					l = parameterList();
+
+					state._fsp--;
+					if (state.failed)
+						return e;
+
+				}
+					break;
+
+				}
+
+				match(input, 32, FOLLOW_32_in_featureCall1572);
+				if (state.failed)
+					return e;
+				if (state.backtracking == 0) {
+					e = factory.createOperationCall(id1, l);
+				}
+
+			}
+				break;
+			case 2:
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:311:5: t= type
+			{
+				pushFollow(FOLLOW_type_in_featureCall1582);
+				t = type();
+
+				state._fsp--;
+				if (state.failed)
+					return e;
+				if (state.backtracking == 0) {
+					e = factory.createFeatureCall(t, null);
+				}
+
+			}
+				break;
+			case 3:
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:312:5: x= collectionExpression
+			{
+				pushFollow(FOLLOW_collectionExpression_in_featureCall1593);
+				x = collectionExpression();
+
+				state._fsp--;
+				if (state.failed)
+					return e;
+				if (state.backtracking == 0) {
+					e = x;
+				}
+
+			}
+				break;
+
+			}
+			if (state.backtracking == 0) {
+				addLocation(e, startToken, /* endToken */(CommonToken) input.LT(-1));
+			}
+		} catch (RecognitionException re) {
+			reportError(re);
+			recover(input, re);
+		} finally {
+		}
+		return e;
+	}
+
+	// $ANTLR end "featureCall"
+
+	// $ANTLR start "listLiteral"
+	// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:316:1: listLiteral returns [Expression e] : '{' (l= parameterList )? '}' ;
+	public final Expression listLiteral() throws RecognitionException {
+		Expression e = null;
+
+		List<Expression> l = null;
+
+		final CommonToken startToken = (CommonToken) input.LT(1);
+		try {
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:319:1: ( '{' (l= parameterList )? '}' )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:320:2: '{' (l= parameterList )? '}'
+			{
+				match(input, 49, FOLLOW_49_in_listLiteral1619);
+				if (state.failed)
+					return e;
+				// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:320:6: (l= parameterList )?
+				int alt46 = 2;
+				int LA46_0 = input.LA(1);
+
+				if (((LA46_0 >= StringLiteral && LA46_0 <= Identifier) || LA46_0 == 24 || LA46_0 == 29 || (LA46_0 >= 39 && LA46_0 <= 42)
+						|| (LA46_0 >= 48 && LA46_0 <= 49) || LA46_0 == 63 || (LA46_0 >= 65 && LA46_0 <= 79))) {
+					alt46 = 1;
+				}
+				switch (alt46) {
+				case 1:
+				// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:320:7: l= parameterList
+				{
+					pushFollow(FOLLOW_parameterList_in_listLiteral1624);
+					l = parameterList();
+
+					state._fsp--;
+					if (state.failed)
+						return e;
+
+				}
+					break;
+
+				}
+
+				match(input, 52, FOLLOW_52_in_listLiteral1628);
+				if (state.failed)
+					return e;
+				if (state.backtracking == 0) {
+					e = factory.createListLiteral(l);
+				}
+
+			}
+
+			if (state.backtracking == 0) {
+				addLocation(e, startToken, /* endToken */(CommonToken) input.LT(-1));
+			}
+		} catch (RecognitionException re) {
+			reportError(re);
+			recover(input, re);
+		} finally {
+		}
+		return e;
+	}
+
+	// $ANTLR end "listLiteral"
+
+	// $ANTLR start "constructorCall"
+	// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:323:1: constructorCall returns [Expression e] : 'new' t= simpleType ;
+	public final Expression constructorCall() throws RecognitionException {
+		Expression e = null;
+
+		Identifier t = null;
+
+		final CommonToken startToken = (CommonToken) input.LT(1);
+		try {
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:326:1: ( 'new' t= simpleType )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:327:2: 'new' t= simpleType
+			{
+				match(input, 67, FOLLOW_67_in_constructorCall1653);
+				if (state.failed)
+					return e;
+				pushFollow(FOLLOW_simpleType_in_constructorCall1657);
+				t = simpleType();
+
+				state._fsp--;
+				if (state.failed)
+					return e;
+				if (state.backtracking == 0) {
+					e = factory.createConstructorCall(t);
+				}
+
+			}
+
+			if (state.backtracking == 0) {
+				addLocation(e, startToken, /* endToken */(CommonToken) input.LT(-1));
+			}
+		} catch (RecognitionException re) {
+			reportError(re);
+			recover(input, re);
+		} finally {
+		}
+		return e;
+	}
+
+	// $ANTLR end "constructorCall"
+
+	// $ANTLR start "booleanLiteral"
+	// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:332:1: booleanLiteral returns [Expression e=factory.createBooleanLiteral(id(input.LT(1)))]
+	// : ( 'false' | 'true' );
+	public final Expression booleanLiteral() throws RecognitionException {
+		Expression e = factory.createBooleanLiteral(id(input.LT(1)));
+
+		final CommonToken startToken = (CommonToken) input.LT(1);
+		try {
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:335:1: ( 'false' | 'true' )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:
+			{
+				if ((input.LA(1) >= 68 && input.LA(1) <= 69)) {
+					input.consume();
+					state.errorRecovery = false;
+					state.failed = false;
+				} else {
+					if (state.backtracking > 0) {
+						state.failed = true;
+						return e;
+					}
+					MismatchedSetException mse = new MismatchedSetException(null, input);
+					throw mse;
+				}
+
+			}
+
+			if (state.backtracking == 0) {
+				addLocation(e, startToken, /* endToken */(CommonToken) input.LT(-1));
+			}
+		} catch (RecognitionException re) {
+			reportError(re);
+			recover(input, re);
+		} finally {
+		}
+		return e;
+	}
+
+	// $ANTLR end "booleanLiteral"
+
+	// $ANTLR start "nullLiteral"
+	// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:339:1: nullLiteral returns [Expression e=factory.createNullLiteral(id(input.LT(1)))] :
+	// 'null' ;
+	public final Expression nullLiteral() throws RecognitionException {
+		Expression e = factory.createNullLiteral(id(input.LT(1)));
+
+		final CommonToken startToken = (CommonToken) input.LT(1);
+		try {
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:342:1: ( 'null' )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:343:2: 'null'
+			{
+				match(input, 70, FOLLOW_70_in_nullLiteral1709);
+				if (state.failed)
+					return e;
+
+			}
+
+			if (state.backtracking == 0) {
+				addLocation(e, startToken, /* endToken */(CommonToken) input.LT(-1));
+			}
+		} catch (RecognitionException re) {
+			reportError(re);
+			recover(input, re);
+		} finally {
+		}
+		return e;
+	}
+
+	// $ANTLR end "nullLiteral"
+
+	// $ANTLR start "numberLiteral"
+	// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:346:1: numberLiteral returns [Expression e] : (a= IntLiteral | a= IntLiteral b= '.' c=
+	// IntLiteral );
+	public final Expression numberLiteral() throws RecognitionException {
+		Expression e = null;
+
+		Token a = null;
+		Token b = null;
+		Token c = null;
+
+		final CommonToken startToken = (CommonToken) input.LT(1);
+		try {
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:349:1: (a= IntLiteral | a= IntLiteral b= '.' c= IntLiteral )
+			int alt47 = 2;
+			int LA47_0 = input.LA(1);
+
+			if ((LA47_0 == IntLiteral)) {
+				int LA47_1 = input.LA(2);
+
+				if ((LA47_1 == 37)) {
+					int LA47_2 = input.LA(3);
+
+					if ((LA47_2 == IntLiteral)) {
+						alt47 = 2;
+					} else if ((LA47_2 == Identifier || (LA47_2 >= 39 && LA47_2 <= 41) || (LA47_2 >= 71 && LA47_2 <= 79))) {
+						alt47 = 1;
+					} else {
+						if (state.backtracking > 0) {
+							state.failed = true;
+							return e;
+						}
+						NoViableAltException nvae = new NoViableAltException("", 47, 2, input);
+
+						throw nvae;
+					}
+				} else if ((LA47_1 == EOF || LA47_1 == 19 || (LA47_1 >= 25 && LA47_1 <= 27) || (LA47_1 >= 30 && LA47_1 <= 32)
+						|| (LA47_1 >= 44 && LA47_1 <= 47) || (LA47_1 >= 50 && LA47_1 <= 64))) {
+					alt47 = 1;
+				} else {
+					if (state.backtracking > 0) {
+						state.failed = true;
+						return e;
+					}
+					NoViableAltException nvae = new NoViableAltException("", 47, 1, input);
+
+					throw nvae;
+				}
+			} else {
+				if (state.backtracking > 0) {
+					state.failed = true;
+					return e;
+				}
+				NoViableAltException nvae = new NoViableAltException("", 47, 0, input);
+
+				throw nvae;
+			}
+			switch (alt47) {
+			case 1:
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:350:4: a= IntLiteral
+			{
+				a = (Token) match(input, IntLiteral, FOLLOW_IntLiteral_in_numberLiteral1736);
+				if (state.failed)
+					return e;
+				if (state.backtracking == 0) {
+					e = factory.createIntegerLiteral(id(a));
+				}
+
+			}
+				break;
+			case 2:
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:351:4: a= IntLiteral b= '.' c= IntLiteral
+			{
+				a = (Token) match(input, IntLiteral, FOLLOW_IntLiteral_in_numberLiteral1745);
+				if (state.failed)
+					return e;
+				b = (Token) match(input, 37, FOLLOW_37_in_numberLiteral1749);
+				if (state.failed)
+					return e;
+				c = (Token) match(input, IntLiteral, FOLLOW_IntLiteral_in_numberLiteral1753);
+				if (state.failed)
+					return e;
+				if (state.backtracking == 0) {
+					e = factory.createRealLiteral(id(a).append(id(b)).append(id(c)));
+				}
+
+			}
+				break;
+
+			}
+			if (state.backtracking == 0) {
+				addLocation(e, startToken, /* endToken */(CommonToken) input.LT(-1));
+			}
+		} catch (RecognitionException re) {
+			reportError(re);
+			recover(input, re);
+		} finally {
+		}
+		return e;
+	}
+
+	// $ANTLR end "numberLiteral"
+
+	// $ANTLR start "collectionExpression"
+	// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:355:1: collectionExpression returns [FeatureCall e] : (name= 'typeSelect' '(' t= type ')' |
+	// name= ( 'collect' | 'select' | 'selectFirst' | 'reject' | 'exists' | 'notExists' | 'sortBy' | 'forAll' ) '(' (var= identifier '|' )? x=
+	// expression ')' );
+	public final FeatureCall collectionExpression() throws RecognitionException {
+		FeatureCall e = null;
+
+		Token name = null;
+		Identifier t = null;
+
+		Identifier var = null;
+
+		Expression x = null;
+
+		final CommonToken startToken = (CommonToken) input.LT(1);
+		try {
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:358:1: (name= 'typeSelect' '(' t= type ')' | name= ( 'collect' | 'select' |
+			// 'selectFirst' | 'reject' | 'exists' | 'notExists' | 'sortBy' | 'forAll' ) '(' (var= identifier '|' )? x= expression ')' )
+			int alt49 = 2;
+			int LA49_0 = input.LA(1);
+
+			if ((LA49_0 == 71)) {
+				alt49 = 1;
+			} else if (((LA49_0 >= 72 && LA49_0 <= 79))) {
+				alt49 = 2;
+			} else {
+				if (state.backtracking > 0) {
+					state.failed = true;
+					return e;
+				}
+				NoViableAltException nvae = new NoViableAltException("", 49, 0, input);
+
+				throw nvae;
+			}
+			switch (alt49) {
+			case 1:
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:359:3: name= 'typeSelect' '(' t= type ')'
+			{
+				name = (Token) match(input, 71, FOLLOW_71_in_collectionExpression1782);
+				if (state.failed)
+					return e;
+				match(input, 29, FOLLOW_29_in_collectionExpression1786);
+				if (state.failed)
+					return e;
+				pushFollow(FOLLOW_type_in_collectionExpression1790);
+				t = type();
+
+				state._fsp--;
+				if (state.failed)
+					return e;
+				match(input, 32, FOLLOW_32_in_collectionExpression1792);
+				if (state.failed)
+					return e;
+				if (state.backtracking == 0) {
+					e = factory.createTypeSelectExpression(id(name), t);
+				}
+
+			}
+				break;
+			case 2:
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:362:5: name= ( 'collect' | 'select' | 'selectFirst' | 'reject' | 'exists' |
+			// 'notExists' | 'sortBy' | 'forAll' ) '(' (var= identifier '|' )? x= expression ')'
+			{
+				name = (Token) input.LT(1);
+				if ((input.LA(1) >= 72 && input.LA(1) <= 79)) {
+					input.consume();
+					state.errorRecovery = false;
+					state.failed = false;
+				} else {
+					if (state.backtracking > 0) {
+						state.failed = true;
+						return e;
+					}
+					MismatchedSetException mse = new MismatchedSetException(null, input);
+					throw mse;
+				}
+
+				match(input, 29, FOLLOW_29_in_collectionExpression1855);
+				if (state.failed)
+					return e;
+				// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:369:19: (var= identifier '|' )?
+				int alt48 = 2;
+				int LA48_0 = input.LA(1);
+
+				if ((LA48_0 == Identifier)) {
+					int LA48_1 = input.LA(2);
+
+					if ((LA48_1 == 80)) {
+						alt48 = 1;
+					}
+				}
+				switch (alt48) {
+				case 1:
+				// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:369:20: var= identifier '|'
+				{
+					pushFollow(FOLLOW_identifier_in_collectionExpression1860);
+					var = identifier();
+
+					state._fsp--;
+					if (state.failed)
+						return e;
+					match(input, 80, FOLLOW_80_in_collectionExpression1862);
+					if (state.failed)
+						return e;
+
+				}
+					break;
+
+				}
+
+				pushFollow(FOLLOW_expression_in_collectionExpression1868);
+				x = expression();
+
+				state._fsp--;
+				if (state.failed)
+					return e;
+				match(input, 32, FOLLOW_32_in_collectionExpression1870);
+				if (state.failed)
+					return e;
+				if (state.backtracking == 0) {
+					e = factory.createCollectionExpression(id(name), var, x);
+				}
+
+			}
+				break;
+
+			}
+			if (state.backtracking == 0) {
+				addLocation(e, startToken, /* endToken */(CommonToken) input.LT(-1));
+			}
+		} catch (RecognitionException re) {
+			reportError(re);
+			recover(input, re);
+		} finally {
+		}
+		return e;
+	}
+
+	// $ANTLR end "collectionExpression"
+
+	// $ANTLR start "declaredParameterList"
+	// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:375:1: declaredParameterList returns [List<DeclaredParameter> l = new
+	// BasicEList<DeclaredParameter>()] : dp= declaredParameter ( ',' dp1= declaredParameter )* ;
+	public final List<DeclaredParameter> declaredParameterList() throws RecognitionException {
+		List<DeclaredParameter> l = new BasicEList<DeclaredParameter>();
+
+		DeclaredParameter dp = null;
+
+		DeclaredParameter dp1 = null;
+
+		final CommonToken startToken = (CommonToken) input.LT(1);
+		try {
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:378:1: (dp= declaredParameter ( ',' dp1= declaredParameter )* )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:379:2: dp= declaredParameter ( ',' dp1= declaredParameter )*
+			{
+				pushFollow(FOLLOW_declaredParameter_in_declaredParameterList1902);
+				dp = declaredParameter();
+
+				state._fsp--;
+				if (state.failed)
+					return l;
+				if (state.backtracking == 0) {
+					if (dp != null)
+						l.add(dp);
+				}
+				// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:379:50: ( ',' dp1= declaredParameter )*
+				loop50: do {
+					int alt50 = 2;
+					int LA50_0 = input.LA(1);
+
+					if ((LA50_0 == 30)) {
+						int LA50_1 = input.LA(2);
+
+						if ((LA50_1 == Identifier || (LA50_1 >= 39 && LA50_1 <= 41))) {
+							alt50 = 1;
+						}
+
+					}
+
+					switch (alt50) {
+					case 1:
+					// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:379:51: ',' dp1= declaredParameter
+					{
+						match(input, 30, FOLLOW_30_in_declaredParameterList1906);
+						if (state.failed)
+							return l;
+						pushFollow(FOLLOW_declaredParameter_in_declaredParameterList1910);
+						dp1 = declaredParameter();
+
+						state._fsp--;
+						if (state.failed)
+							return l;
+						if (state.backtracking == 0) {
+							if (dp1 != null)
+								l.add(dp1);
+						}
+
+					}
+						break;
+
+					default:
+						break loop50;
+					}
+				} while (true);
+
+			}
+
+			if (state.backtracking == 0) {
+				addLocation(dp, startToken, /* endToken */(CommonToken) input.LT(-1));
+			}
+		} catch (RecognitionException re) {
+			reportError(re);
+			recover(input, re);
+		} finally {
+		}
+		return l;
+	}
+
+	// $ANTLR end "declaredParameterList"
+
+	// $ANTLR start "declaredParameter"
+	// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:382:1: declaredParameter returns [DeclaredParameter dp] : t= type name= identifier ;
+	public final DeclaredParameter declaredParameter() throws RecognitionException {
+		DeclaredParameter dp = null;
+
+		Identifier t = null;
+
+		Identifier name = null;
+
+		final CommonToken startToken = (CommonToken) input.LT(1);
+		try {
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:385:1: (t= type name= identifier )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:386:2: t= type name= identifier
+			{
+				pushFollow(FOLLOW_type_in_declaredParameter1938);
+				t = type();
+
+				state._fsp--;
+				if (state.failed)
+					return dp;
+				pushFollow(FOLLOW_identifier_in_declaredParameter1942);
+				name = identifier();
+
+				state._fsp--;
+				if (state.failed)
+					return dp;
+				if (state.backtracking == 0) {
+					dp = factory.createDeclaredParameter(t, name);
+				}
+
+			}
+
+			if (state.backtracking == 0) {
+				addLocation(dp, startToken, /* endToken */(CommonToken) input.LT(-1));
+			}
+		} catch (RecognitionException re) {
+			reportError(re);
+			recover(input, re);
+		} finally {
+		}
+		return dp;
+	}
+
+	// $ANTLR end "declaredParameter"
+
+	// $ANTLR start "parameterList"
+	// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:389:1: parameterList returns [List<Expression> list = new BasicEList<Expression>()] : a=
+	// expression ( ',' b= expression )* ;
+	public final List<Expression> parameterList() throws RecognitionException {
+		List<Expression> list = new BasicEList<Expression>();
+
+		Expression a = null;
+
+		Expression b = null;
+
+		try {
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:389:79: (a= expression ( ',' b= expression )* )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:390:5: a= expression ( ',' b= expression )*
+			{
+				pushFollow(FOLLOW_expression_in_parameterList1964);
+				a = expression();
+
+				state._fsp--;
+				if (state.failed)
+					return list;
+				if (state.backtracking == 0) {
+					if (a != null)
+						list.add(a);
+				}
+				// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:390:47: ( ',' b= expression )*
+				loop51: do {
+					int alt51 = 2;
+					int LA51_0 = input.LA(1);
+
+					if ((LA51_0 == 30)) {
+						alt51 = 1;
+					}
+
+					switch (alt51) {
+					case 1:
+					// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:390:48: ',' b= expression
+					{
+						match(input, 30, FOLLOW_30_in_parameterList1969);
+						if (state.failed)
+							return list;
+						pushFollow(FOLLOW_expression_in_parameterList1973);
+						b = expression();
+
+						state._fsp--;
+						if (state.failed)
+							return list;
+						if (state.backtracking == 0) {
+							if (b != null)
+								list.add(b);
+						}
+
+					}
+						break;
+
+					default:
+						break loop51;
+					}
+				} while (true);
+
+			}
+
+		} catch (RecognitionException re) {
+			reportError(re);
+			recover(input, re);
+		} finally {
+		}
+		return list;
+	}
+
+	// $ANTLR end "parameterList"
+
+	// $ANTLR start "type"
+	// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:395:1: type returns [Identifier id] : (a= collectionType | b= simpleType );
+	public final Identifier type() throws RecognitionException {
+		Identifier id = null;
+
+		Identifier a = null;
+
+		Identifier b = null;
+
+		final CommonToken startToken = (CommonToken) input.LT(1);
+		try {
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:398:1: (a= collectionType | b= simpleType )
+			int alt52 = 2;
+			int LA52_0 = input.LA(1);
+
+			if (((LA52_0 >= 39 && LA52_0 <= 41))) {
+				alt52 = 1;
+			} else if ((LA52_0 == Identifier)) {
+				alt52 = 2;
+			} else {
+				if (state.backtracking > 0) {
+					state.failed = true;
+					return id;
+				}
+				NoViableAltException nvae = new NoViableAltException("", 52, 0, input);
+
+				throw nvae;
+			}
+			switch (alt52) {
+			case 1:
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:399:2: a= collectionType
+			{
+				pushFollow(FOLLOW_collectionType_in_type2007);
+				a = collectionType();
+
+				state._fsp--;
+				if (state.failed)
+					return id;
+				if (state.backtracking == 0) {
+					id = a;
+				}
+
+			}
+				break;
+			case 2:
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:400:2: b= simpleType
+			{
+				pushFollow(FOLLOW_simpleType_in_type2017);
+				b = simpleType();
+
+				state._fsp--;
+				if (state.failed)
+					return id;
+				if (state.backtracking == 0) {
+					id = b;
+				}
+
+			}
+				break;
+
+			}
+			if (state.backtracking == 0) {
+				addLocation(id, startToken, /* endToken */(CommonToken) input.LT(-1));
+			}
+		} catch (RecognitionException re) {
+			reportError(re);
+			recover(input, re);
+		} finally {
+		}
+		return id;
+	}
+
+	// $ANTLR end "type"
+
+	// $ANTLR start "collectionType"
+	// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:403:1: collectionType returns [Identifier id ] : cl= ( 'Collection' | 'List' | 'Set' ) (b=
+	// '[' id1= simpleType c= ']' )? ;
+	public final Identifier collectionType() throws RecognitionException {
+		Identifier id = null;
+
+		Token cl = null;
+		Token b = null;
+		Token c = null;
+		Identifier id1 = null;
+
+		final CommonToken startToken = (CommonToken) input.LT(1);
+		try {
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:406:1: (cl= ( 'Collection' | 'List' | 'Set' ) (b= '[' id1= simpleType c= ']' )? )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:407:3: cl= ( 'Collection' | 'List' | 'Set' ) (b= '[' id1= simpleType c= ']' )?
+			{
+				cl = (Token) input.LT(1);
+				if ((input.LA(1) >= 39 && input.LA(1) <= 41)) {
+					input.consume();
+					state.errorRecovery = false;
+					state.failed = false;
+				} else {
+					if (state.backtracking > 0) {
+						state.failed = true;
+						return id;
+					}
+					MismatchedSetException mse = new MismatchedSetException(null, input);
+					throw mse;
+				}
+
+				if (state.backtracking == 0) {
+					id = id(cl);
+				}
+				// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:408:3: (b= '[' id1= simpleType c= ']' )?
+				int alt53 = 2;
+				int LA53_0 = input.LA(1);
+
+				if ((LA53_0 == 81)) {
+					alt53 = 1;
+				}
+				switch (alt53) {
+				case 1:
+				// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:408:4: b= '[' id1= simpleType c= ']'
+				{
+					b = (Token) match(input, 81, FOLLOW_81_in_collectionType2068);
+					if (state.failed)
+						return id;
+					pushFollow(FOLLOW_simpleType_in_collectionType2072);
+					id1 = simpleType();
+
+					state._fsp--;
+					if (state.failed)
+						return id;
+					c = (Token) match(input, 82, FOLLOW_82_in_collectionType2076);
+					if (state.failed)
+						return id;
+					if (state.backtracking == 0) {
+						id.append(id(b));
+						id.append(id1);
+						id.append(id(c));
+					}
+
+				}
+					break;
+
+				}
+
+			}
+
+			if (state.backtracking == 0) {
+				addLocation(id, startToken, /* endToken */(CommonToken) input.LT(-1));
+			}
+		} catch (RecognitionException re) {
+			reportError(re);
+			recover(input, re);
+		} finally {
+		}
+		return id;
+	}
+
+	// $ANTLR end "collectionType"
+
+	// $ANTLR start "simpleType"
+	// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:411:1: simpleType returns [Identifier id] : x= identifier (d= '::' end= identifier )* ;
+	public final Identifier simpleType() throws RecognitionException {
+		Identifier id = null;
+
+		Token d = null;
+		Identifier x = null;
+
+		Identifier end = null;
+
+		final CommonToken startToken = (CommonToken) input.LT(1);
+		try {
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:414:1: (x= identifier (d= '::' end= identifier )* )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:415:2: x= identifier (d= '::' end= identifier )*
+			{
+				pushFollow(FOLLOW_identifier_in_simpleType2104);
+				x = identifier();
+
+				state._fsp--;
+				if (state.failed)
+					return id;
+				if (state.backtracking == 0) {
+					id = x;
+				}
+				// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:416:2: (d= '::' end= identifier )*
+				loop54: do {
+					int alt54 = 2;
+					int LA54_0 = input.LA(1);
+
+					if ((LA54_0 == 33)) {
+						alt54 = 1;
+					}
+
+					switch (alt54) {
+					case 1:
+					// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:416:3: d= '::' end= identifier
+					{
+						d = (Token) match(input, 33, FOLLOW_33_in_simpleType2112);
+						if (state.failed)
+							return id;
+						pushFollow(FOLLOW_identifier_in_simpleType2116);
+						end = identifier();
+
+						state._fsp--;
+						if (state.failed)
+							return id;
+						if (state.backtracking == 0) {
+							id.append(id(d));
+							id.append(end);
+						}
+
+					}
+						break;
+
+					default:
+						break loop54;
+					}
+				} while (true);
+
+			}
+
+			if (state.backtracking == 0) {
+				addLocation(id, startToken, /* endToken */(CommonToken) input.LT(-1));
+			}
+		} catch (RecognitionException re) {
+			reportError(re);
+			recover(input, re);
+		} finally {
+		}
+		return id;
+	}
+
+	// $ANTLR end "simpleType"
+
+	// $ANTLR start "identifier"
+	// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:419:1: identifier returns [Identifier r] : x= Identifier ;
+	public final Identifier identifier() throws RecognitionException {
+		Identifier r = null;
+
+		Token x = null;
+
+		final CommonToken startToken = (CommonToken) input.LT(1);
+		try {
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:422:1: (x= Identifier )
+			// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:423:4: x= Identifier
+			{
+				x = (Token) match(input, Identifier, FOLLOW_Identifier_in_identifier2147);
+				if (state.failed)
+					return r;
+				if (state.backtracking == 0) {
+					r = id(x);
+				}
+
+			}
+
+			if (state.backtracking == 0) {
+				addLocation(r, startToken, /* endToken */(CommonToken) input.LT(-1));
+			}
+		} catch (RecognitionException re) {
+			reportError(re);
+			recover(input, re);
+		} finally {
+		}
+		return r;
+	}
+
+	// $ANTLR end "identifier"
+
+	// $ANTLR start synpred1_Xtend
+	public final void synpred1_Xtend_fragment() throws RecognitionException {
+		// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:174:5: ( '(' type ')' castedExpression )
+		// src/org/eclipse/internal/xtend/xtend/parser/Xtend.g:174:6: '(' type ')' castedExpression
+		{
+			match(input, 29, FOLLOW_29_in_synpred1_Xtend751);
+			if (state.failed)
+				return;
+			pushFollow(FOLLOW_type_in_synpred1_Xtend753);
+			type();
+
+			state._fsp--;
+			if (state.failed)
+				return;
+			match(input, 32, FOLLOW_32_in_synpred1_Xtend755);
+			if (state.failed)
+				return;
+			pushFollow(FOLLOW_castedExpression_in_synpred1_Xtend757);
+			castedExpression();
+
+			state._fsp--;
+			if (state.failed)
+				return;
+
+		}
+	}
+
+	// $ANTLR end synpred1_Xtend
+
+	// Delegated rules
+
+	public final boolean synpred1_Xtend() {
+		state.backtracking++;
+		int start = input.mark();
+		try {
+			synpred1_Xtend_fragment(); // can never throw exception
+		} catch (RecognitionException re) {
+			System.err.println("impossible: " + re);
+		}
+		boolean success = !state.failed;
+		input.rewind(start);
+		state.backtracking--;
+		state.failed = false;
+		return success;
+	}
+
+	protected DFA27 dfa27 = new DFA27(this);
+	static final String DFA27_eotS = "\22\uffff";
+	static final String DFA27_eofS = "\22\uffff";
+	static final String DFA27_minS = "\1\4\1\0\20\uffff";
+	static final String DFA27_maxS = "\1\117\1\0\20\uffff";
+	static final String DFA27_acceptS = "\2\uffff\1\2\16\uffff\1\1";
+	static final String DFA27_specialS = "\1\uffff\1\0\20\uffff}>";
+	static final String[] DFA27_transitionS = { "\3\2\21\uffff\1\2\4\uffff\1\1\11\uffff\3\2\6\uffff\2\2\15\uffff" + "\1\2\1\uffff\17\2", "\1\uffff",
+			"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" };
+
+	static final short[] DFA27_eot = DFA.unpackEncodedString(DFA27_eotS);
+	static final short[] DFA27_eof = DFA.unpackEncodedString(DFA27_eofS);
+	static final char[] DFA27_min = DFA.unpackEncodedStringToUnsignedChars(DFA27_minS);
+	static final char[] DFA27_max = DFA.unpackEncodedStringToUnsignedChars(DFA27_maxS);
+	static final short[] DFA27_accept = DFA.unpackEncodedString(DFA27_acceptS);
+	static final short[] DFA27_special = DFA.unpackEncodedString(DFA27_specialS);
+	static final short[][] DFA27_transition;
+
+	static {
+		int numStates = DFA27_transitionS.length;
+		DFA27_transition = new short[numStates][];
+		for (int i = 0; i < numStates; i++) {
+			DFA27_transition[i] = DFA.unpackEncodedString(DFA27_transitionS[i]);
+		}
+	}
+
+	class DFA27 extends DFA {
+
+		public DFA27(BaseRecognizer recognizer) {
+			this.recognizer = recognizer;
+			this.decisionNumber = 27;
+			this.eot = DFA27_eot;
+			this.eof = DFA27_eof;
+			this.min = DFA27_min;
+			this.max = DFA27_max;
+			this.accept = DFA27_accept;
+			this.special = DFA27_special;
+			this.transition = DFA27_transition;
+		}
+
+		public String getDescription() {
+			return "170:1: castedExpression returns [Expression e] : ( ( '(' type ')' castedExpression )=> '(' t= type ')' x= chainExpression | x= chainExpression );";
+		}
+
+		public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+			TokenStream input = (TokenStream) _input;
+			int _s = s;
+			switch (s) {
+			case 0:
+				int LA27_1 = input.LA(1);
+
+				int index27_1 = input.index();
+				input.rewind();
+				s = -1;
+				if ((synpred1_Xtend())) {
+					s = 17;
+				}
+
+				else if ((true)) {
+					s = 2;
+				}
+
+				input.seek(index27_1);
+				if (s >= 0)
+					return s;
+				break;
+			}
+			if (state.backtracking > 0) {
+				state.failed = true;
+				return -1;
+			}
+			NoViableAltException nvae = new NoViableAltException(getDescription(), 27, _s, input);
+			error(nvae);
+			throw nvae;
+		}
+	}
+
+	public static final BitSet FOLLOW_nsImport_in_file55 = new BitSet(new long[] { 0x000003CC10540040L });
+	public static final BitSet FOLLOW_extImport_in_file65 = new BitSet(new long[] { 0x000003CC10500040L });
+	public static final BitSet FOLLOW_extension_in_file75 = new BitSet(new long[] { 0x000003CC10400040L });
+	public static final BitSet FOLLOW_around_in_file85 = new BitSet(new long[] { 0x000003CC10400040L });
+	public static final BitSet FOLLOW_check_in_file95 = new BitSet(new long[] { 0x000003CC10400040L });
+	public static final BitSet FOLLOW_EOF_in_file103 = new BitSet(new long[] { 0x0000000000000002L });
+	public static final BitSet FOLLOW_18_in_nsImport131 = new BitSet(new long[] { 0x0000038000000040L });
+	public static final BitSet FOLLOW_type_in_nsImport135 = new BitSet(new long[] { 0x0000000000080000L });
+	public static final BitSet FOLLOW_19_in_nsImport139 = new BitSet(new long[] { 0x0000000000000002L });
+	public static final BitSet FOLLOW_20_in_extImport164 = new BitSet(new long[] { 0x0000038000000040L });
+	public static final BitSet FOLLOW_type_in_extImport168 = new BitSet(new long[] { 0x0000000000280000L });
+	public static final BitSet FOLLOW_21_in_extImport173 = new BitSet(new long[] { 0x0000000000080000L });
+	public static final BitSet FOLLOW_19_in_extImport177 = new BitSet(new long[] { 0x0000000000000002L });
+	public static final BitSet FOLLOW_22_in_check202 = new BitSet(new long[] { 0x0000038000000040L });
+	public static final BitSet FOLLOW_type_in_check206 = new BitSet(new long[] { 0x0000000007800000L });
+	public static final BitSet FOLLOW_23_in_check208 = new BitSet(new long[] { 0x0000038000000040L });
+	public static final BitSet FOLLOW_identifier_in_check211 = new BitSet(new long[] { 0x0000000007000000L });
+	public static final BitSet FOLLOW_24_in_check216 = new BitSet(new long[] { 0x8003078021000070L, 0x000000000000FFFEL });
+	public static final BitSet FOLLOW_expression_in_check220 = new BitSet(new long[] { 0x0000000006000000L });
+	public static final BitSet FOLLOW_25_in_check227 = new BitSet(new long[] { 0x8003078021000070L, 0x000000000000FFFEL });
+	public static final BitSet FOLLOW_26_in_check229 = new BitSet(new long[] { 0x8003078021000070L, 0x000000000000FFFEL });
+	public static final BitSet FOLLOW_expression_in_check234 = new BitSet(new long[] { 0x0000000008000000L });
+	public static final BitSet FOLLOW_27_in_check236 = new BitSet(new long[] { 0x8003078021000070L, 0x000000000000FFFEL });
+	public static final BitSet FOLLOW_expression_in_check241 = new BitSet(new long[] { 0x0000000000080000L });
+	public static final BitSet FOLLOW_19_in_check243 = new BitSet(new long[] { 0x0000000000000002L });
+	public static final BitSet FOLLOW_28_in_around272 = new BitSet(new long[] { 0x0000038080000040L });
+	public static final BitSet FOLLOW_pointcut_in_around276 = new BitSet(new long[] { 0x0000000020000000L });
+	public static final BitSet FOLLOW_29_in_around278 = new BitSet(new long[] { 0x0000038180000040L });
+	public static final BitSet FOLLOW_declaredParameterList_in_around283 = new BitSet(new long[] { 0x00000001C0000000L });
+	public static final BitSet FOLLOW_30_in_around286 = new BitSet(new long[] { 0x0000000080000000L });
+	public static final BitSet FOLLOW_31_in_around291 = new BitSet(new long[] { 0x0000000100000000L });
+	public static final BitSet FOLLOW_31_in_around299 = new BitSet(new long[] { 0x0000000100000000L });
+	public static final BitSet FOLLOW_32_in_around303 = new BitSet(new long[] { 0x0000000008000000L });
+	public static final BitSet FOLLOW_27_in_around305 = new BitSet(new long[] { 0x8003078021000070L, 0x000000000000FFFEL });
+	public static final BitSet FOLLOW_expression_in_around314 = new BitSet(new long[] { 0x0000000000080000L });
+	public static final BitSet FOLLOW_19_in_around316 = new BitSet(new long[] { 0x0000000000000002L });
+	public static final BitSet FOLLOW_31_in_pointcut352 = new BitSet(new long[] { 0x0000038280000042L });
+	public static final BitSet FOLLOW_identifier_in_pointcut361 = new BitSet(new long[] { 0x0000038280000042L });
+	public static final BitSet FOLLOW_31_in_pointcut372 = new BitSet(new long[] { 0x0000038280000042L });
+	public static final BitSet FOLLOW_identifier_in_pointcut383 = new BitSet(new long[] { 0x0000038280000042L });
+	public static final BitSet FOLLOW_33_in_pointcut394 = new BitSet(new long[] { 0x0000038280000042L });
+	public static final BitSet FOLLOW_34_in_extension426 = new BitSet(new long[] { 0x0000038800000040L });
+	public static final BitSet FOLLOW_35_in_extension433 = new BitSet(new long[] { 0x0000038000000040L });
+	public static final BitSet FOLLOW_type_in_extension440 = new BitSet(new long[] { 0x0000038000000040L });
+	public static final BitSet FOLLOW_identifier_in_extension446 = new BitSet(new long[] { 0x0000000020000000L });
+	public static final BitSet FOLLOW_29_in_extension448 = new BitSet(new long[] { 0x0000038100000040L });
+	public static final BitSet FOLLOW_declaredParameterList_in_extension453 = new BitSet(new long[] { 0x0000000100000000L });
+	public static final BitSet FOLLOW_32_in_extension457 = new BitSet(new long[] { 0x0000000008000000L });
+	public static final BitSet FOLLOW_27_in_extension459 = new BitSet(new long[] { 0x8003079021000070L, 0x000000000000FFFEL });
+	public static final BitSet FOLLOW_36_in_extension466 = new BitSet(new long[] { 0x0000038000000040L });
+	public static final BitSet FOLLOW_javaType_in_extension470 = new BitSet(new long[] { 0x0000002000000000L });
+	public static final BitSet FOLLOW_37_in_extension472 = new BitSet(new long[] { 0x0000038000000040L });
+	public static final BitSet FOLLOW_identifier_in_extension476 = new BitSet(new long[] { 0x0000000020000000L });
+	public static final BitSet FOLLOW_29_in_extension478 = new BitSet(new long[] { 0x0000038100000040L });
+	public static final BitSet FOLLOW_javaType_in_extension482 = new BitSet(new long[] { 0x0000000140000000L });
+	public static final BitSet FOLLOW_30_in_extension486 = new BitSet(new long[] { 0x0000038000000040L });
+	public static final BitSet FOLLOW_javaType_in_extension490 = new BitSet(new long[] { 0x0000000140000000L });
+	public static final BitSet FOLLOW_32_in_extension498 = new BitSet(new long[] { 0x0000000000080000L });
+	public static final BitSet FOLLOW_19_in_extension500 = new BitSet(new long[] { 0x0000000000000002L });
+	public static final BitSet FOLLOW_expression_in_extension510 = new BitSet(new long[] { 0x0000000000080000L });
+	public static final BitSet FOLLOW_19_in_extension512 = new BitSet(new long[] { 0x0000000000000002L });
+	public static final BitSet FOLLOW_34_in_extension526 = new BitSet(new long[] { 0x0000004000000000L });
+	public static final BitSet FOLLOW_38_in_extension532 = new BitSet(new long[] { 0x0000038000000040L });
+	public static final BitSet FOLLOW_type_in_extension536 = new BitSet(new long[] { 0x0000038000000040L });
+	public static final BitSet FOLLOW_identifier_in_extension541 = new BitSet(new long[] { 0x0000038000000040L });
+	public static final BitSet FOLLOW_identifier_in_extension547 = new BitSet(new long[] { 0x0000000020000000L });
+	public static final BitSet FOLLOW_29_in_extension549 = new BitSet(new long[] { 0x0000038100000040L });
+	public static final BitSet FOLLOW_declaredParameterList_in_extension554 = new BitSet(new long[] { 0x0000000100000000L });
+	public static final BitSet FOLLOW_32_in_extension558 = new BitSet(new long[] { 0x0000000008000000L });
+	public static final BitSet FOLLOW_27_in_extension560 = new BitSet(new long[] { 0x8003078021000070L, 0x000000000000FFFEL });
+	public static final BitSet FOLLOW_expression_in_extension566 = new BitSet(new long[] { 0x0000000000080000L });
+	public static final BitSet FOLLOW_19_in_extension568 = new BitSet(new long[] { 0x0000000000000002L });
+	public static final BitSet FOLLOW_identifier_in_javaType598 = new BitSet(new long[] { 0x0000002000000002L });
+	public static final BitSet FOLLOW_37_in_javaType607 = new BitSet(new long[] { 0x0000038000000040L });
+	public static final BitSet FOLLOW_identifier_in_javaType613 = new BitSet(new long[] { 0x0000002000000002L });
+	public static final BitSet FOLLOW_39_in_javaType619 = new BitSet(new long[] { 0x0000002000000002L });
+	public static final BitSet FOLLOW_40_in_javaType628 = new BitSet(new long[] { 0x0000002000000002L });
+	public static final BitSet FOLLOW_41_in_javaType634 = new BitSet(new long[] { 0x0000002000000002L });
+	public static final BitSet FOLLOW_letExpression_in_expression665 = new BitSet(new long[] { 0x0000000000000002L });
+	public static final BitSet FOLLOW_42_in_letExpression693 = new BitSet(new long[] { 0x0000038000000040L });
+	public static final BitSet FOLLOW_identifier_in_letExpression697 = new BitSet(new long[] { 0x0000080000000000L });
+	public static final BitSet FOLLOW_43_in_letExpression699 = new BitSet(new long[] { 0x8003078021000070L, 0x000000000000FFFEL });
+	public static final BitSet FOLLOW_castedExpression_in_letExpression703 = new BitSet(new long[] { 0x0000000008000000L });
+	public static final BitSet FOLLOW_27_in_letExpression705 = new BitSet(new long[] { 0x8003078021000070L, 0x000000000000FFFEL });
+	public static final BitSet FOLLOW_expression_in_letExpression709 = new BitSet(new long[] { 0x0000000000000002L });
+	public static final BitSet FOLLOW_castedExpression_in_letExpression722 = new BitSet(new long[] { 0x0000000000000002L });
+	public static final BitSet FOLLOW_29_in_castedExpression762 = new BitSet(new long[] { 0x0000038000000040L });
+	public static final BitSet FOLLOW_type_in_castedExpression766 = new BitSet(new long[] { 0x0000000100000000L });
+	public static final BitSet FOLLOW_32_in_castedExpression768 = new BitSet(new long[] { 0x8003078021000070L, 0x000000000000FFFEL });
+	public static final BitSet FOLLOW_chainExpression_in_castedExpression772 = new BitSet(new long[] { 0x0000000000000002L });
+	public static final BitSet FOLLOW_chainExpression_in_castedExpression781 = new BitSet(new long[] { 0x0000000000000002L });
+	public static final BitSet FOLLOW_ifExpression_in_chainExpression805 = new BitSet(new long[] { 0x0000100000000002L });
+	public static final BitSet FOLLOW_44_in_chainExpression811 = new BitSet(new long[] { 0x8003078021000070L, 0x000000000000FFFEL });
+	public static final BitSet FOLLOW_ifExpression_in_chainExpression815 = new BitSet(new long[] { 0x0000100000000002L });
+	public static final BitSet FOLLOW_switchExpression_in_ifExpression845 = new BitSet(new long[] { 0x0000200000000002L });
+	public static final BitSet FOLLOW_45_in_ifExpression849 = new BitSet(new long[] { 0x8003038020000070L, 0x000000000000FFFEL });
+	public static final BitSet FOLLOW_switchExpression_in_ifExpression853 = new BitSet(new long[] { 0x0000000008000000L });
+	public static final BitSet FOLLOW_27_in_ifExpression855 = new BitSet(new long[] { 0x8003038020000070L, 0x000000000000FFFEL });
+	public static final BitSet FOLLOW_switchExpression_in_ifExpression859 = new BitSet(new long[] { 0x0000000000000002L });
+	public static final BitSet FOLLOW_24_in_ifExpression867 = new BitSet(new long[] { 0x8003038020000070L, 0x000000000000FFFEL });
+	public static final BitSet FOLLOW_switchExpression_in_ifExpression871 = new BitSet(new long[] { 0x0000400000000000L });
+	public static final BitSet FOLLOW_46_in_ifExpression873 = new BitSet(new long[] { 0x8003038020000070L, 0x000000000000FFFEL });
+	public static final BitSet FOLLOW_switchExpression_in_ifExpression877 = new BitSet(new long[] { 0x0000800000000002L });
+	public static final BitSet FOLLOW_47_in_ifExpression880 = new BitSet(new long[] { 0x8003078021000070L, 0x000000000000FFFEL });
+	public static final BitSet FOLLOW_expression_in_ifExpression884 = new BitSet(new long[] { 0x0000000000000002L });
+	public static final BitSet FOLLOW_48_in_switchExpression914 = new BitSet(new long[] { 0x0002000020000000L });
+	public static final BitSet FOLLOW_29_in_switchExpression917 = new BitSet(new long[] { 0x8003038020000070L, 0x000000000000FFFEL });
+	public static final BitSet FOLLOW_orExpression_in_switchExpression923 = new BitSet(new long[] { 0x0000000100000000L });
+	public static final BitSet FOLLOW_32_in_switchExpression925 = new BitSet(new long[] { 0x0002000000000000L });
+	public static final BitSet FOLLOW_49_in_switchExpression932 = new BitSet(new long[] { 0x000C000000000000L });
+	public static final BitSet FOLLOW_50_in_switchExpression945 = new BitSet(new long[] { 0x8003038020000070L, 0x000000000000FFFEL });
+	public static final BitSet FOLLOW_orExpression_in_switchExpression949 = new BitSet(new long[] { 0x0000000008000000L });
+	public static final BitSet FOLLOW_27_in_switchExpression952 = new BitSet(new long[] { 0x8003038020000070L, 0x000000000000FFFEL });
+	public static final BitSet FOLLOW_orExpression_in_switchExpression957 = new BitSet(new long[] { 0x000C000000000000L });
+	public static final BitSet FOLLOW_51_in_switchExpression975 = new BitSet(new long[] { 0x0000000008000000L });
+	public static final BitSet FOLLOW_27_in_switchExpression977 = new BitSet(new long[] { 0x8003038020000070L, 0x000000000000FFFEL });
+	public static final BitSet FOLLOW_orExpression_in_switchExpression983 = new BitSet(new long[] { 0x0010000000000000L });
+	public static final BitSet FOLLOW_52_in_switchExpression988 = new BitSet(new long[] { 0x0000000000000002L });
+	public static final BitSet FOLLOW_orExpression_in_switchExpression1000 = new BitSet(new long[] { 0x0000000000000002L });
+	public static final BitSet FOLLOW_andExpression_in_orExpression1025 = new BitSet(new long[] { 0x0020000000000002L });
+	public static final BitSet FOLLOW_53_in_orExpression1032 = new BitSet(new long[] { 0x8003038020000070L, 0x000000000000FFFEL });
+	public static final BitSet FOLLOW_andExpression_in_orExpression1036 = new BitSet(new long[] { 0x0020000000000002L });
+	public static final BitSet FOLLOW_impliesExpression_in_andExpression1064 = new BitSet(new long[] { 0x0040000000000002L });
+	public static final BitSet FOLLOW_54_in_andExpression1071 = new BitSet(new long[] { 0x8003038020000070L, 0x000000000000FFFEL });
+	public static final BitSet FOLLOW_impliesExpression_in_andExpression1075 = new BitSet(new long[] { 0x0040000000000002L });
+	public static final BitSet FOLLOW_relationalExpression_in_impliesExpression1102 = new BitSet(new long[] { 0x0080000000000002L });
+	public static final BitSet FOLLOW_55_in_impliesExpression1109 = new BitSet(new long[] { 0x8003038020000070L, 0x000000000000FFFEL });
+	public static final BitSet FOLLOW_relationalExpression_in_impliesExpression1113 = new BitSet(new long[] { 0x0080000000000002L });
+	public static final BitSet FOLLOW_additiveExpression_in_relationalExpression1141 = new BitSet(new long[] { 0x3F00000000000002L });
+	public static final BitSet FOLLOW_set_in_relationalExpression1149 = new BitSet(new long[] { 0x8003038020000070L, 0x000000000000FFFEL });
+	public static final BitSet FOLLOW_additiveExpression_in_relationalExpression1175 = new BitSet(new long[] { 0x3F00000000000002L });
+	public static final BitSet FOLLOW_multiplicativeExpression_in_additiveExpression1200 = new BitSet(new long[] { 0xC000000000000002L });
+	public static final BitSet FOLLOW_set_in_additiveExpression1210 = new BitSet(new long[] { 0x8003038020000070L, 0x000000000000FFFEL });
+	public static final BitSet FOLLOW_multiplicativeExpression_in_additiveExpression1219 = new BitSet(new long[] { 0xC000000000000002L });
+	public static final BitSet FOLLOW_unaryExpression_in_multiplicativeExpression1244 = new BitSet(new long[] { 0x0000000080000002L,
+			0x0000000000000001L });
+	public static final BitSet FOLLOW_set_in_multiplicativeExpression1252 = new BitSet(new long[] { 0x8003038020000070L, 0x000000000000FFFEL });
+	public static final BitSet FOLLOW_unaryExpression_in_multiplicativeExpression1262 = new BitSet(new long[] { 0x0000000080000002L,
+			0x0000000000000001L });
+	public static final BitSet FOLLOW_infixExpression_in_unaryExpression1291 = new BitSet(new long[] { 0x0000000000000002L });
+	public static final BitSet FOLLOW_65_in_unaryExpression1299 = new BitSet(new long[] { 0x0002038020000070L, 0x000000000000FFFCL });
+	public static final BitSet FOLLOW_infixExpression_in_unaryExpression1303 = new BitSet(new long[] { 0x0000000000000002L });
+	public static final BitSet FOLLOW_63_in_unaryExpression1311 = new BitSet(new long[] { 0x0002038020000070L, 0x000000000000FFFCL });
+	public static final BitSet FOLLOW_infixExpression_in_unaryExpression1315 = new BitSet(new long[] { 0x0000000000000002L });
+	public static final BitSet FOLLOW_primaryExpression_in_infixExpression1342 = new BitSet(new long[] { 0x0000002000000002L });
+	public static final BitSet FOLLOW_37_in_infixExpression1348 = new BitSet(new long[] { 0x0000038000000040L, 0x000000000000FF80L });
+	public static final BitSet FOLLOW_featureCall_in_infixExpression1352 = new BitSet(new long[] { 0x0000002000000002L });
+	public static final BitSet FOLLOW_StringLiteral_in_primaryExpression1387 = new BitSet(new long[] { 0x0000000000000002L });
+	public static final BitSet FOLLOW_featureCall_in_primaryExpression1398 = new BitSet(new long[] { 0x0000000000000002L });
+	public static final BitSet FOLLOW_booleanLiteral_in_primaryExpression1408 = new BitSet(new long[] { 0x0000000000000002L });
+	public static final BitSet FOLLOW_numberLiteral_in_primaryExpression1418 = new BitSet(new long[] { 0x0000000000000002L });
+	public static final BitSet FOLLOW_nullLiteral_in_primaryExpression1428 = new BitSet(new long[] { 0x0000000000000002L });
+	public static final BitSet FOLLOW_listLiteral_in_primaryExpression1438 = new BitSet(new long[] { 0x0000000000000002L });
+	public static final BitSet FOLLOW_constructorCall_in_primaryExpression1448 = new BitSet(new long[] { 0x0000000000000002L });
+	public static final BitSet FOLLOW_globalVarExpression_in_primaryExpression1458 = new BitSet(new long[] { 0x0000000000000002L });
+	public static final BitSet FOLLOW_paranthesizedExpression_in_primaryExpression1468 = new BitSet(new long[] { 0x0000000000000002L });
+	public static final BitSet FOLLOW_29_in_paranthesizedExpression1495 = new BitSet(new long[] { 0x8003078021000070L, 0x000000000000FFFEL });
+	public static final BitSet FOLLOW_expression_in_paranthesizedExpression1499 = new BitSet(new long[] { 0x0000000100000000L });
+	public static final BitSet FOLLOW_32_in_paranthesizedExpression1501 = new BitSet(new long[] { 0x0000000000000002L });
+	public static final BitSet FOLLOW_66_in_globalVarExpression1530 = new BitSet(new long[] { 0x0000038000000040L });
+	public static final BitSet FOLLOW_identifier_in_globalVarExpression1534 = new BitSet(new long[] { 0x0000000000000002L });
+	public static final BitSet FOLLOW_identifier_in_featureCall1561 = new BitSet(new long[] { 0x0000000020000000L });
+	public static final BitSet FOLLOW_29_in_featureCall1563 = new BitSet(new long[] { 0x8003078121000070L, 0x000000000000FFFEL });
+	public static final BitSet FOLLOW_parameterList_in_featureCall1568 = new BitSet(new long[] { 0x0000000100000000L });
+	public static final BitSet FOLLOW_32_in_featureCall1572 = new BitSet(new long[] { 0x0000000000000002L });
+	public static final BitSet FOLLOW_type_in_featureCall1582 = new BitSet(new long[] { 0x0000000000000002L });
+	public static final BitSet FOLLOW_collectionExpression_in_featureCall1593 = new BitSet(new long[] { 0x0000000000000002L });
+	public static final BitSet FOLLOW_49_in_listLiteral1619 = new BitSet(new long[] { 0x8013078021000070L, 0x000000000000FFFEL });
+	public static final BitSet FOLLOW_parameterList_in_listLiteral1624 = new BitSet(new long[] { 0x0010000000000000L });
+	public static final BitSet FOLLOW_52_in_listLiteral1628 = new BitSet(new long[] { 0x0000000000000002L });
+	public static final BitSet FOLLOW_67_in_constructorCall1653 = new BitSet(new long[] { 0x0000038000000040L });
+	public static final BitSet FOLLOW_simpleType_in_constructorCall1657 = new BitSet(new long[] { 0x0000000000000002L });
+	public static final BitSet FOLLOW_set_in_booleanLiteral0 = new BitSet(new long[] { 0x0000000000000002L });
+	public static final BitSet FOLLOW_70_in_nullLiteral1709 = new BitSet(new long[] { 0x0000000000000002L });
+	public static final BitSet FOLLOW_IntLiteral_in_numberLiteral1736 = new BitSet(new long[] { 0x0000000000000002L });
+	public static final BitSet FOLLOW_IntLiteral_in_numberLiteral1745 = new BitSet(new long[] { 0x0000002000000000L });
+	public static final BitSet FOLLOW_37_in_numberLiteral1749 = new BitSet(new long[] { 0x0000000000000020L });
+	public static final BitSet FOLLOW_IntLiteral_in_numberLiteral1753 = new BitSet(new long[] { 0x0000000000000002L });
+	public static final BitSet FOLLOW_71_in_collectionExpression1782 = new BitSet(new long[] { 0x0000000020000000L });
+	public static final BitSet FOLLOW_29_in_collectionExpression1786 = new BitSet(new long[] { 0x0000038000000040L });
+	public static final BitSet FOLLOW_type_in_collectionExpression1790 = new BitSet(new long[] { 0x0000000100000000L });
+	public static final BitSet FOLLOW_32_in_collectionExpression1792 = new BitSet(new long[] { 0x0000000000000002L });
+	public static final BitSet FOLLOW_set_in_collectionExpression1805 = new BitSet(new long[] { 0x0000000020000000L });
+	public static final BitSet FOLLOW_29_in_collectionExpression1855 = new BitSet(new long[] { 0x8003078021000070L, 0x000000000000FFFEL });
+	public static final BitSet FOLLOW_identifier_in_collectionExpression1860 = new BitSet(new long[] { 0x0000000000000000L, 0x0000000000010000L });
+	public static final BitSet FOLLOW_80_in_collectionExpression1862 = new BitSet(new long[] { 0x8003078021000070L, 0x000000000000FFFEL });
+	public static final BitSet FOLLOW_expression_in_collectionExpression1868 = new BitSet(new long[] { 0x0000000100000000L });
+	public static final BitSet FOLLOW_32_in_collectionExpression1870 = new BitSet(new long[] { 0x0000000000000002L });
+	public static final BitSet FOLLOW_declaredParameter_in_declaredParameterList1902 = new BitSet(new long[] { 0x0000000040000002L });
+	public static final BitSet FOLLOW_30_in_declaredParameterList1906 = new BitSet(new long[] { 0x0000038000000040L });
+	public static final BitSet FOLLOW_declaredParameter_in_declaredParameterList1910 = new BitSet(new long[] { 0x0000000040000002L });
+	public static final BitSet FOLLOW_type_in_declaredParameter1938 = new BitSet(new long[] { 0x0000038000000040L });
+	public static final BitSet FOLLOW_identifier_in_declaredParameter1942 = new BitSet(new long[] { 0x0000000000000002L });
+	public static final BitSet FOLLOW_expression_in_parameterList1964 = new BitSet(new long[] { 0x0000000040000002L });
+	public static final BitSet FOLLOW_30_in_parameterList1969 = new BitSet(new long[] { 0x8003078021000070L, 0x000000000000FFFEL });
+	public static final BitSet FOLLOW_expression_in_parameterList1973 = new BitSet(new long[] { 0x0000000040000002L });
+	public static final BitSet FOLLOW_collectionType_in_type2007 = new BitSet(new long[] { 0x0000000000000002L });
+	public static final BitSet FOLLOW_simpleType_in_type2017 = new BitSet(new long[] { 0x0000000000000002L });
+	public static final BitSet FOLLOW_set_in_collectionType2047 = new BitSet(new long[] { 0x0000000000000002L, 0x0000000000020000L });
+	public static final BitSet FOLLOW_81_in_collectionType2068 = new BitSet(new long[] { 0x0000038000000040L });
+	public static final BitSet FOLLOW_simpleType_in_collectionType2072 = new BitSet(new long[] { 0x0000000000000000L, 0x0000000000040000L });
+	public static final BitSet FOLLOW_82_in_collectionType2076 = new BitSet(new long[] { 0x0000000000000002L });
+	public static final BitSet FOLLOW_identifier_in_simpleType2104 = new BitSet(new long[] { 0x0000000200000002L });
+	public static final BitSet FOLLOW_33_in_simpleType2112 = new BitSet(new long[] { 0x0000038000000040L });
+	public static final BitSet FOLLOW_identifier_in_simpleType2116 = new BitSet(new long[] { 0x0000000200000002L });
+	public static final BitSet FOLLOW_Identifier_in_identifier2147 = new BitSet(new long[] { 0x0000000000000002L });
+	public static final BitSet FOLLOW_29_in_synpred1_Xtend751 = new BitSet(new long[] { 0x0000038000000040L });
+	public static final BitSet FOLLOW_type_in_synpred1_Xtend753 = new BitSet(new long[] { 0x0000000100000000L });
+	public static final BitSet FOLLOW_32_in_synpred1_Xtend755 = new BitSet(new long[] { 0x8003078021000070L, 0x000000000000FFFEL });
+	public static final BitSet FOLLOW_castedExpression_in_synpred1_Xtend757 = new BitSet(new long[] { 0x0000000000000002L });
+
 }
\ No newline at end of file