aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorszarnekow2009-01-29 08:05:21 (EST)
committersefftinge2009-01-29 08:05:21 (EST)
commit0f81fd017b2828504d9472bf7ea2a0b6f8eb9a97 (patch)
tree0c3d3b927d2f160a1322c8d72d59a163e4d62a22
parentd8e3ea8f56c0bb4159f27453b269c7ac1c79318b (diff)
downloadorg.eclipse.xtext-0f81fd017b2828504d9472bf7ea2a0b6f8eb9a97.zip
org.eclipse.xtext-0f81fd017b2828504d9472bf7ea2a0b6f8eb9a97.tar.gz
org.eclipse.xtext-0f81fd017b2828504d9472bf7ea2a0b6f8eb9a97.tar.bz2
Added EpatchTestLanguage and test infrastructure, deactivated tests so far
-rw-r--r--examples/org.eclipse.xtext.example.domainmodel/src-gen/org/eclipse/xtext/example/domainmodel.ecore2
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/XtextTest.ecore8
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/epatch/AbstractEpatchTestLanguageRuntimeConfig.java95
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.ecore133
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi855
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/epatch/EpatchTestLanguageStandaloneSetup.java53
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/epatch/IEpatchTestLanguage.java23
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/EpatchTestLanguageAntlrTokenFileProvider.java15
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/EpatchTestLanguageParser.java43
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g2556
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.tokens37
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguageLexer.java2040
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguageParser.java5919
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage__.g64
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/epatch/parser/packrat/EpatchTestLanguageDelimiters.java31
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/epatch/parser/packrat/EpatchTestLanguagePackratParser.java22
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/epatch/parser/packrat/EpatchTestLanguageParserConfiguration.java531
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/epatch/parser/packrat/consumers/EpatchTestLanguageAssignmentConsumer.java155
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/epatch/parser/packrat/consumers/EpatchTestLanguageAssignmentValueConsumer.java434
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/epatch/parser/packrat/consumers/EpatchTestLanguageBiListAssignmentConsumer.java397
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/epatch/parser/packrat/consumers/EpatchTestLanguageBiSingleAssignmentConsumer.java191
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/epatch/parser/packrat/consumers/EpatchTestLanguageCreatedObjectConsumer.java352
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/epatch/parser/packrat/consumers/EpatchTestLanguageEPackageImportConsumer.java165
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/epatch/parser/packrat/consumers/EpatchTestLanguageEPatchConsumer.java246
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/epatch/parser/packrat/consumers/EpatchTestLanguageExecutableConsumer.java107
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/epatch/parser/packrat/consumers/EpatchTestLanguageExpressionExecutableConsumer.java77
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/epatch/parser/packrat/consumers/EpatchTestLanguageExtensionImportConsumer.java202
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/epatch/parser/packrat/consumers/EpatchTestLanguageImportConsumer.java131
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/epatch/parser/packrat/consumers/EpatchTestLanguageJavaExecutableConsumer.java153
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/epatch/parser/packrat/consumers/EpatchTestLanguageJavaImportConsumer.java202
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/epatch/parser/packrat/consumers/EpatchTestLanguageListAssignmentValueConsumer.java585
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/epatch/parser/packrat/consumers/EpatchTestLanguageMigrationConsumer.java272
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/epatch/parser/packrat/consumers/EpatchTestLanguageModelImportConsumer.java107
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/epatch/parser/packrat/consumers/EpatchTestLanguageMonoListAssignmentConsumer.java278
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/epatch/parser/packrat/consumers/EpatchTestLanguageMonoSingleAssignmentConsumer.java154
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/epatch/parser/packrat/consumers/EpatchTestLanguageNamedObjectConsumer.java107
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/epatch/parser/packrat/consumers/EpatchTestLanguageNamedResourceConsumer.java465
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/epatch/parser/packrat/consumers/EpatchTestLanguageObjectCopyConsumer.java144
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/epatch/parser/packrat/consumers/EpatchTestLanguageObjectNewConsumer.java144
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/epatch/parser/packrat/consumers/EpatchTestLanguageObjectRefConsumer.java671
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/epatch/parser/packrat/consumers/EpatchTestLanguageResourceImportConsumer.java165
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/epatch/parser/packrat/consumers/EpatchTestLanguageSingleAssignmentValueConsumer.java469
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/epatch/parsetree/reconstr/EpatchTestLanguageParseTreeConstructor.java7233
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/epatch/services/EpatchTestLanguageGrammarAccess.java1871
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/epatch/services/EpatchTestLanguageMetamodelAccess.java51
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/epatch/services/EpatchTestLanguageResourceFactory.java28
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/terminalrules/XtextTerminalsTestLanguage.ecore6
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/testlanguages/ReferenceGrammar.ecore6
-rwxr-xr-xtests/org.eclipse.xtext.generator.tests/src/org/eclipse/xtext/GenerateAllTestGrammars.java5
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src/org/eclipse/xtext/parser/epatch/EPatchTestLanguage.xtext106
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src/org/eclipse/xtext/parser/epatch/EpatchComparingTest.java86
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.java15
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src/org/eclipse/xtext/parser/epatch/EpatchTestLanguageChecks.chk7
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src/org/eclipse/xtext/parser/epatch/EpatchTestLanguageRuntimeConfig.java19
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src/org/eclipse/xtext/parser/epatch/parser/packrat/consumers/EpatchTestLanguageFRAGMENTConsumer.java52
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src/org/eclipse/xtext/parser/epatch/testcases/01.epatch11
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src/org/eclipse/xtext/parser/epatch/testcases/02.epatch21
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src/org/eclipse/xtext/parser/epatch/testcases/03.epatch14
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src/org/eclipse/xtext/parser/epatch/testcases/04.epatch13
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src/org/eclipse/xtext/parser/epatch/testcases/05.epatch11
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src/org/eclipse/xtext/parser/epatch/testcases/06.epatch11
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src/org/eclipse/xtext/parser/epatch/testcases/07.epatch11
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src/org/eclipse/xtext/parser/epatch/testcases/08.epatch33
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src/org/eclipse/xtext/parser/epatch/testcases/09.epatch34
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src/org/eclipse/xtext/parser/epatch/testcases/10.epatch11
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src/org/eclipse/xtext/parser/epatch/testcases/11.epatch11
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src/org/eclipse/xtext/parser/epatch/testcases/12.epatch17
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src/org/eclipse/xtext/parser/epatch/testcases/13.epatch17
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src/org/eclipse/xtext/parser/epatch/testcases/14.epatch11
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src/org/eclipse/xtext/parser/epatch/testcases/15.epatch11
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src/org/eclipse/xtext/parser/epatch/testcases/16.epatch11
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src/org/eclipse/xtext/parser/epatch/testcases/17.epatch13
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src/org/eclipse/xtext/parser/epatch/testcases/18.epatch20
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src/org/eclipse/xtext/parser/epatch/testcases/19.epatch11
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src/org/eclipse/xtext/parser/epatch/testcases/20.epatch11
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src/org/eclipse/xtext/parser/epatch/testcases/21.epatch11
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src/org/eclipse/xtext/parser/epatch/testcases/22.epatch26
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src/org/eclipse/xtext/parser/epatch/testcases/23.epatch25
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src/org/eclipse/xtext/parser/epatch/testcases/24.epatch14
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src/org/eclipse/xtext/parser/epatch/testcases/25.epatch17
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src/org/eclipse/xtext/parser/epatch/testcases/26.epatch11
81 files changed, 28679 insertions, 13 deletions
diff --git a/examples/org.eclipse.xtext.example.domainmodel/src-gen/org/eclipse/xtext/example/domainmodel.ecore b/examples/org.eclipse.xtext.example.domainmodel/src-gen/org/eclipse/xtext/example/domainmodel.ecore
index 6d74b1d..9f2974c 100644
--- a/examples/org.eclipse.xtext.example.domainmodel/src-gen/org/eclipse/xtext/example/domainmodel.ecore
+++ b/examples/org.eclipse.xtext.example.domainmodel/src-gen/org/eclipse/xtext/example/domainmodel.ecore
@@ -34,10 +34,10 @@
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Parameter" eSuperTypes="//TypedElement"/>
<eClassifiers xsi:type="ecore:EClass" name="TypedElement">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="type" eType="//TypeRef" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="name">
<eType xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="type" eType="//TypeRef" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="TypeRef">
<eStructuralFeatures xsi:type="ecore:EReference" name="referenced" eType="//Type"/>
diff --git a/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/XtextTest.ecore b/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/XtextTest.ecore
index 30c6432..050e1ba 100644
--- a/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/XtextTest.ecore
+++ b/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/XtextTest.ecore
@@ -14,18 +14,18 @@
<eStructuralFeatures xsi:type="ecore:EReference" name="rules" unique="false" upperBound="-1" eType="//AbstractRule" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="AbstractRule">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="type" eType="//TypeRef" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="name">
<eType xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eStructuralFeatures>
- <eStructuralFeatures xsi:type="ecore:EReference" name="type" eType="//TypeRef" containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="AbstractMetamodelDeclaration">
- <eStructuralFeatures xsi:type="ecore:EReference" name="ePackage">
- <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EPackage"/>
- </eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="alias">
<eType xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="ePackage">
+ <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/Ecore#//EPackage"/>
+ </eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="GeneratedMetamodel" eSuperTypes="//AbstractMetamodelDeclaration">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="name">
diff --git a/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/epatch/AbstractEpatchTestLanguageRuntimeConfig.java b/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/epatch/AbstractEpatchTestLanguageRuntimeConfig.java
new file mode 100644
index 0000000..7d33e71
--- /dev/null
+++ b/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/epatch/AbstractEpatchTestLanguageRuntimeConfig.java
@@ -0,0 +1,95 @@
+package org.eclipse.xtext.parser.epatch;
+
+import java.util.Set;
+
+import org.eclipse.xtext.service.AbstractServiceRegistrationFactory;
+
+/**
+ * used to register components to be used at runtime.
+ */
+public abstract class AbstractEpatchTestLanguageRuntimeConfig extends AbstractServiceRegistrationFactory {
+
+ protected Class<? extends org.eclipse.xtext.IMetamodelAccess> getIMetamodelAccess() {
+ return org.eclipse.xtext.parser.epatch.services.EpatchTestLanguageMetamodelAccess.class;
+ }
+
+ protected Class<? extends org.eclipse.xtext.IGrammarAccess> getIGrammarAccess() {
+ return org.eclipse.xtext.parser.epatch.services.EpatchTestLanguageGrammarAccess.class;
+ }
+
+ protected Class<? extends org.eclipse.xtext.parser.IAstFactory> getIAstFactory() {
+ return org.eclipse.xtext.parser.DefaultEcoreElementFactory.class;
+ }
+
+ protected Class<? extends org.eclipse.xtext.resource.IResourceFactory> getIResourceFactory() {
+ return org.eclipse.xtext.parser.epatch.services.EpatchTestLanguageResourceFactory.class;
+ }
+
+ protected Class<? extends org.eclipse.xtext.parsetree.reconstr.IParseTreeConstructor> getIParseTreeConstructor() {
+ return org.eclipse.xtext.parser.epatch.parsetree.reconstr.EpatchTestLanguageParseTreeConstructor.class;
+ }
+
+ protected Class<? extends org.eclipse.xtext.parsetree.reconstr.ITokenSerializer> getITokenSerializer() {
+ return org.eclipse.xtext.parsetree.reconstr.impl.WhitespacePreservingTokenSerializer.class;
+ }
+
+ protected Class<? extends org.eclipse.xtext.parsetree.reconstr.ICrossReferenceSerializer> getICrossReferenceSerializer() {
+ return org.eclipse.xtext.parsetree.reconstr.impl.SimpleCrossReferenceSerializer.class;
+ }
+
+ protected Class<? extends org.eclipse.xtext.parsetree.reconstr.ITransientValueService> getITransientValueService() {
+ return org.eclipse.xtext.parsetree.reconstr.impl.SimpleTransientValueService.class;
+ }
+
+ protected Class<? extends org.eclipse.xtext.parser.antlr.IAntlrParser> getIAntlrParser() {
+ return org.eclipse.xtext.parser.epatch.parser.antlr.EpatchTestLanguageParser.class;
+ }
+
+ protected Class<? extends org.eclipse.xtext.parser.ITokenToStringConverter> getITokenToStringConverter() {
+ return org.eclipse.xtext.parser.antlr.AntlrTokenToStringConverter.class;
+ }
+
+ protected Class<? extends org.eclipse.xtext.parser.antlr.IAntlrTokenFileProvider> getIAntlrTokenFileProvider() {
+ return org.eclipse.xtext.parser.epatch.parser.antlr.EpatchTestLanguageAntlrTokenFileProvider.class;
+ }
+
+ protected Class<? extends org.eclipse.xtext.parser.antlr.Lexer> getLexer() {
+ return org.eclipse.xtext.parser.epatch.parser.antlr.internal.InternalEpatchTestLanguageLexer.class;
+ }
+
+ protected Class<? extends org.eclipse.xtext.parser.packrat.IPackratParser> getIPackratParser() {
+ return org.eclipse.xtext.parser.epatch.parser.packrat.EpatchTestLanguagePackratParser.class;
+ }
+
+ protected Class<? extends org.eclipse.xtext.parser.packrat.IParseResultFactory> getIParseResultFactory() {
+ return org.eclipse.xtext.parser.packrat.ParseResultFactory.class;
+ }
+
+ protected Class<? extends org.eclipse.xtext.parser.ISwitchingParser> getISwitchingParser() {
+ return org.eclipse.xtext.parser.SwitchingParser.class;
+ }
+
+
+ public Set<IServiceRegistration> registrations() {
+ return scope(org.eclipse.xtext.parser.epatch.IEpatchTestLanguage.SCOPE)
+ .with(org.eclipse.xtext.IMetamodelAccess.class, getIMetamodelAccess())
+ .with(org.eclipse.xtext.IGrammarAccess.class, getIGrammarAccess())
+ .with(org.eclipse.xtext.parser.IAstFactory.class, getIAstFactory())
+ .with(org.eclipse.xtext.resource.IResourceFactory.class, getIResourceFactory())
+ .with(org.eclipse.xtext.parsetree.reconstr.IParseTreeConstructor.class, getIParseTreeConstructor())
+ .with(org.eclipse.xtext.parsetree.reconstr.ITokenSerializer.class, getITokenSerializer())
+ .with(org.eclipse.xtext.parsetree.reconstr.ICrossReferenceSerializer.class, getICrossReferenceSerializer())
+ .with(org.eclipse.xtext.parsetree.reconstr.ITransientValueService.class, getITransientValueService())
+ .with(org.eclipse.xtext.parser.antlr.IAntlrParser.class, getIAntlrParser())
+ .with(org.eclipse.xtext.parser.ITokenToStringConverter.class, getITokenToStringConverter())
+ .with(org.eclipse.xtext.parser.antlr.IAntlrTokenFileProvider.class, getIAntlrTokenFileProvider())
+ .with(org.eclipse.xtext.parser.antlr.Lexer.class, getLexer())
+ .with(org.eclipse.xtext.parser.packrat.IPackratParser.class, getIPackratParser())
+ .with(org.eclipse.xtext.parser.packrat.IParseResultFactory.class, getIParseResultFactory())
+ .with(org.eclipse.xtext.parser.ISwitchingParser.class, getISwitchingParser())
+
+ .registrations();
+ }
+
+}
+
diff --git a/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.ecore b/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.ecore
new file mode 100644
index 0000000..245e1eb
--- /dev/null
+++ b/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.ecore
@@ -0,0 +1,133 @@
+<?xml version="1.0" encoding="ASCII"?>
+<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="EpatchTestLanguage" nsURI="http://www.eclipse.org/2008/tmf/xtext/EpatchTestLanguage" nsPrefix="EpatchTestLanguage">
+ <eClassifiers xsi:type="ecore:EClass" name="EPatch">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name">
+ <eType xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="imports" unique="false" upperBound="-1" eType="//Import" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="resources" unique="false" upperBound="-1" eType="//NamedResource" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="objects" unique="false" upperBound="-1" eType="//ObjectRef" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Import"/>
+ <eClassifiers xsi:type="ecore:EClass" name="ModelImport" eSuperTypes="//Import">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name">
+ <eType xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ResourceImport" eSuperTypes="//ModelImport">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="uri">
+ <eType xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="EPackageImport" eSuperTypes="//ModelImport">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="nsURI">
+ <eType xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="JavaImport" eSuperTypes="//Import">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="path" unique="false" upperBound="-1">
+ <eType xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ExtensionImport" eSuperTypes="//Import">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="path" unique="false" upperBound="-1">
+ <eType xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="NamedResource">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name">
+ <eType xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="leftUri">
+ <eType xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="leftRoot" eType="//CreatedObject" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="rightUri">
+ <eType xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="rightRoot" eType="//CreatedObject" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="NamedObject">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name">
+ <eType xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="assignments" unique="false" upperBound="-1" eType="//Assignment" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="leftMig" eType="//Migration" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ObjectRef" eSuperTypes="//NamedObject">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="leftRes" eType="//NamedResource"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="leftFrag">
+ <eType xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="rightRes" eType="//NamedResource"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="rightFrag">
+ <eType xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="rightMig" eType="//Migration" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Assignment">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="feature">
+ <eType xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SingleAssignment" eSuperTypes="//Assignment">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="leftValue" eType="//AssignmentValue" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="rightValue" eType="//AssignmentValue" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ListAssignment" eSuperTypes="//Assignment">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="leftValues" unique="false" upperBound="-1" eType="//AssignmentValue" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="rightValues" unique="false" upperBound="-1" eType="//AssignmentValue" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="AssignmentValue">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="value">
+ <eType xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="refObject" eType="//NamedObject"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="refFeature">
+ <eType xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="refIndex">
+ <eType xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="newObject" eType="//CreatedObject" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="import" eType="//Import"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="impFrag">
+ <eType xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="index">
+ <eType xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="keyword">
+ <eType xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CreatedObject" eSuperTypes="//NamedObject"/>
+ <eClassifiers xsi:type="ecore:EClass" name="ObjectNew" eSuperTypes="//CreatedObject">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="import" eType="//Import"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="impFrag">
+ <eType xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ObjectCopy" eSuperTypes="//CreatedObject">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="resource" eType="//NamedResource"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="fragment">
+ <eType xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Migration">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="first" eType="//Executable" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="asOp" eType="//Executable" containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="eachOp" eType="//Executable" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Executable"/>
+ <eClassifiers xsi:type="ecore:EClass" name="JavaExecutable" eSuperTypes="//Executable">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="method">
+ <eType xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ExpressionExecutable" eSuperTypes="//Executable">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="exprstr">
+ <eType xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+</ecore:EPackage>
diff --git a/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi b/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi
new file mode 100644
index 0000000..5e8ecce
--- /dev/null
+++ b/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi
@@ -0,0 +1,855 @@
+<?xml version="1.0" encoding="ASCII"?>
+<xtext:Grammar xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:xtext="http://www.eclipse.org/2008/Xtext">
+ <idElements>org</idElements>
+ <idElements>eclipse</idElements>
+ <idElements>xtext</idElements>
+ <idElements>parser</idElements>
+ <idElements>epatch</idElements>
+ <idElements>EpatchTestLanguage</idElements>
+ <metamodelDeclarations xsi:type="xtext:GeneratedMetamodel" name="EpatchTestLanguage">
+ <ePackage href="http://www.eclipse.org/2008/tmf/xtext/EpatchTestLanguage#/"/>
+ </metamodelDeclarations>
+ <rules xsi:type="xtext:ParserRule" name="EPatch" definesHiddenTokens="true">
+ <type metamodel="//@metamodelDeclarations.0">
+ <type xsi:type="ecore:EClass" href="http://www.eclipse.org/2008/tmf/xtext/EpatchTestLanguage#//EPatch"/>
+ </type>
+ <hiddenTokens href="classpath:/org/eclipse/xtext/builtin/XtextBuiltin.xmi#//@rules.5"/>
+ <hiddenTokens href="classpath:/org/eclipse/xtext/builtin/XtextBuiltin.xmi#//@rules.3"/>
+ <hiddenTokens href="classpath:/org/eclipse/xtext/builtin/XtextBuiltin.xmi#//@rules.4"/>
+ <alternatives xsi:type="xtext:Group">
+ <abstractTokens xsi:type="xtext:Group">
+ <abstractTokens xsi:type="xtext:Group">
+ <abstractTokens xsi:type="xtext:Group">
+ <abstractTokens xsi:type="xtext:Group">
+ <abstractTokens xsi:type="xtext:Group">
+ <abstractTokens xsi:type="xtext:Keyword" value="epatch"/>
+ <abstractTokens xsi:type="xtext:Assignment" feature="name" operator="=">
+ <terminal xsi:type="xtext:RuleCall">
+ <rule href="classpath:/org/eclipse/xtext/builtin/XtextBuiltin.xmi#//@rules.0"/>
+ </terminal>
+ </abstractTokens>
+ </abstractTokens>
+ <abstractTokens xsi:type="xtext:Keyword" value="{"/>
+ </abstractTokens>
+ <abstractTokens xsi:type="xtext:Assignment" cardinality="*" feature="imports" operator="+=">
+ <terminal xsi:type="xtext:RuleCall" rule="//@rules.1"/>
+ </abstractTokens>
+ </abstractTokens>
+ <abstractTokens xsi:type="xtext:Assignment" cardinality="*" feature="resources" operator="+=">
+ <terminal xsi:type="xtext:RuleCall" rule="//@rules.7"/>
+ </abstractTokens>
+ </abstractTokens>
+ <abstractTokens xsi:type="xtext:Assignment" cardinality="*" feature="objects" operator="+=">
+ <terminal xsi:type="xtext:RuleCall" rule="//@rules.9"/>
+ </abstractTokens>
+ </abstractTokens>
+ <abstractTokens xsi:type="xtext:Keyword" value="}"/>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="Import">
+ <type metamodel="//@metamodelDeclarations.0">
+ <type xsi:type="ecore:EClass" href="http://www.eclipse.org/2008/tmf/xtext/EpatchTestLanguage#//Import"/>
+ </type>
+ <alternatives xsi:type="xtext:Alternatives">
+ <groups xsi:type="xtext:Alternatives">
+ <groups xsi:type="xtext:RuleCall" rule="//@rules.2"/>
+ <groups xsi:type="xtext:RuleCall" rule="//@rules.5"/>
+ </groups>
+ <groups xsi:type="xtext:RuleCall" rule="//@rules.6"/>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="ModelImport">
+ <type metamodel="//@metamodelDeclarations.0">
+ <type xsi:type="ecore:EClass" href="http://www.eclipse.org/2008/tmf/xtext/EpatchTestLanguage#//ModelImport"/>
+ </type>
+ <alternatives xsi:type="xtext:Alternatives">
+ <groups xsi:type="xtext:RuleCall" rule="//@rules.3"/>
+ <groups xsi:type="xtext:RuleCall" rule="//@rules.4"/>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="ResourceImport">
+ <type metamodel="//@metamodelDeclarations.0">
+ <type xsi:type="ecore:EClass" href="http://www.eclipse.org/2008/tmf/xtext/EpatchTestLanguage#//ResourceImport"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <abstractTokens xsi:type="xtext:Group">
+ <abstractTokens xsi:type="xtext:Group">
+ <abstractTokens xsi:type="xtext:Keyword" value="import"/>
+ <abstractTokens xsi:type="xtext:Assignment" feature="name" operator="=">
+ <terminal xsi:type="xtext:RuleCall">
+ <rule href="classpath:/org/eclipse/xtext/builtin/XtextBuiltin.xmi#//@rules.0"/>
+ </terminal>
+ </abstractTokens>
+ </abstractTokens>
+ <abstractTokens xsi:type="xtext:Keyword" value="uri"/>
+ </abstractTokens>
+ <abstractTokens xsi:type="xtext:Assignment" feature="uri" operator="=">
+ <terminal xsi:type="xtext:RuleCall">
+ <rule href="classpath:/org/eclipse/xtext/builtin/XtextBuiltin.xmi#//@rules.2"/>
+ </terminal>
+ </abstractTokens>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="EPackageImport">
+ <type metamodel="//@metamodelDeclarations.0">
+ <type xsi:type="ecore:EClass" href="http://www.eclipse.org/2008/tmf/xtext/EpatchTestLanguage#//EPackageImport"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <abstractTokens xsi:type="xtext:Group">
+ <abstractTokens xsi:type="xtext:Group">
+ <abstractTokens xsi:type="xtext:Keyword" value="import"/>
+ <abstractTokens xsi:type="xtext:Assignment" feature="name" operator="=">
+ <terminal xsi:type="xtext:RuleCall">
+ <rule href="classpath:/org/eclipse/xtext/builtin/XtextBuiltin.xmi#//@rules.0"/>
+ </terminal>
+ </abstractTokens>
+ </abstractTokens>
+ <abstractTokens xsi:type="xtext:Keyword" value="ns"/>
+ </abstractTokens>
+ <abstractTokens xsi:type="xtext:Assignment" feature="nsURI" operator="=">
+ <terminal xsi:type="xtext:RuleCall">
+ <rule href="classpath:/org/eclipse/xtext/builtin/XtextBuiltin.xmi#//@rules.2"/>
+ </terminal>
+ </abstractTokens>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="JavaImport">
+ <type metamodel="//@metamodelDeclarations.0">
+ <type xsi:type="ecore:EClass" href="http://www.eclipse.org/2008/tmf/xtext/EpatchTestLanguage#//JavaImport"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <abstractTokens xsi:type="xtext:Group">
+ <abstractTokens xsi:type="xtext:Group">
+ <abstractTokens xsi:type="xtext:Keyword" value="import"/>
+ <abstractTokens xsi:type="xtext:Keyword" value="java"/>
+ </abstractTokens>
+ <abstractTokens xsi:type="xtext:Assignment" feature="path" operator="+=">
+ <terminal xsi:type="xtext:RuleCall">
+ <rule href="classpath:/org/eclipse/xtext/builtin/XtextBuiltin.xmi#//@rules.0"/>
+ </terminal>
+ </abstractTokens>
+ </abstractTokens>
+ <abstractTokens xsi:type="xtext:Group" cardinality="*">
+ <abstractTokens xsi:type="xtext:Keyword" value="."/>
+ <abstractTokens xsi:type="xtext:Assignment" feature="path" operator="+=">
+ <terminal xsi:type="xtext:RuleCall">
+ <rule href="classpath:/org/eclipse/xtext/builtin/XtextBuiltin.xmi#//@rules.0"/>
+ </terminal>
+ </abstractTokens>
+ </abstractTokens>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="ExtensionImport">
+ <type metamodel="//@metamodelDeclarations.0">
+ <type xsi:type="ecore:EClass" href="http://www.eclipse.org/2008/tmf/xtext/EpatchTestLanguage#//ExtensionImport"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <abstractTokens xsi:type="xtext:Group">
+ <abstractTokens xsi:type="xtext:Group">
+ <abstractTokens xsi:type="xtext:Keyword" value="import"/>
+ <abstractTokens xsi:type="xtext:Keyword" value="extension"/>
+ </abstractTokens>
+ <abstractTokens xsi:type="xtext:Assignment" feature="path" operator="+=">
+ <terminal xsi:type="xtext:RuleCall">
+ <rule href="classpath:/org/eclipse/xtext/builtin/XtextBuiltin.xmi#//@rules.0"/>
+ </terminal>
+ </abstractTokens>
+ </abstractTokens>
+ <abstractTokens xsi:type="xtext:Group" cardinality="*">
+ <abstractTokens xsi:type="xtext:Keyword" value="::"/>
+ <abstractTokens xsi:type="xtext:Assignment" feature="path" operator="+=">
+ <terminal xsi:type="xtext:RuleCall">
+ <rule href="classpath:/org/eclipse/xtext/builtin/XtextBuiltin.xmi#//@rules.0"/>
+ </terminal>
+ </abstractTokens>
+ </abstractTokens>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="NamedResource">
+ <type metamodel="//@metamodelDeclarations.0">
+ <type xsi:type="ecore:EClass" href="http://www.eclipse.org/2008/tmf/xtext/EpatchTestLanguage#//NamedResource"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <abstractTokens xsi:type="xtext:Group">
+ <abstractTokens xsi:type="xtext:Group">
+ <abstractTokens xsi:type="xtext:Group">
+ <abstractTokens xsi:type="xtext:Group">
+ <abstractTokens xsi:type="xtext:Group">
+ <abstractTokens xsi:type="xtext:Group">
+ <abstractTokens xsi:type="xtext:Group">
+ <abstractTokens xsi:type="xtext:Group">
+ <abstractTokens xsi:type="xtext:Keyword" value="resource"/>
+ <abstractTokens xsi:type="xtext:Assignment" feature="name" operator="=">
+ <terminal xsi:type="xtext:RuleCall">
+ <rule href="classpath:/org/eclipse/xtext/builtin/XtextBuiltin.xmi#//@rules.0"/>
+ </terminal>
+ </abstractTokens>
+ </abstractTokens>
+ <abstractTokens xsi:type="xtext:Keyword" value="{"/>
+ </abstractTokens>
+ <abstractTokens xsi:type="xtext:Keyword" value="left"/>
+ </abstractTokens>
+ <abstractTokens xsi:type="xtext:Alternatives">
+ <groups xsi:type="xtext:Group">
+ <abstractTokens xsi:type="xtext:Keyword" value="uri"/>
+ <abstractTokens xsi:type="xtext:Assignment" feature="leftUri" operator="=">
+ <terminal xsi:type="xtext:RuleCall">
+ <rule href="classpath:/org/eclipse/xtext/builtin/XtextBuiltin.xmi#//@rules.2"/>
+ </terminal>
+ </abstractTokens>
+ </groups>
+ <groups xsi:type="xtext:Assignment" feature="leftRoot" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="//@rules.18"/>
+ </groups>
+ </abstractTokens>
+ </abstractTokens>
+ <abstractTokens xsi:type="xtext:Keyword" value=";"/>
+ </abstractTokens>
+ <abstractTokens xsi:type="xtext:Keyword" value="right"/>
+ </abstractTokens>
+ <abstractTokens xsi:type="xtext:Alternatives">
+ <groups xsi:type="xtext:Group">
+ <abstractTokens xsi:type="xtext:Keyword" value="uri"/>
+ <abstractTokens xsi:type="xtext:Assignment" feature="rightUri" operator="=">
+ <terminal xsi:type="xtext:RuleCall">
+ <rule href="classpath:/org/eclipse/xtext/builtin/XtextBuiltin.xmi#//@rules.2"/>
+ </terminal>
+ </abstractTokens>
+ </groups>
+ <groups xsi:type="xtext:Assignment" feature="rightRoot" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="//@rules.18"/>
+ </groups>
+ </abstractTokens>
+ </abstractTokens>
+ <abstractTokens xsi:type="xtext:Keyword" value=";"/>
+ </abstractTokens>
+ <abstractTokens xsi:type="xtext:Keyword" value="}"/>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="NamedObject">
+ <type metamodel="//@metamodelDeclarations.0">
+ <type xsi:type="ecore:EClass" href="http://www.eclipse.org/2008/tmf/xtext/EpatchTestLanguage#//NamedObject"/>
+ </type>
+ <alternatives xsi:type="xtext:Alternatives">
+ <groups xsi:type="xtext:RuleCall" rule="//@rules.9"/>
+ <groups xsi:type="xtext:RuleCall" rule="//@rules.18"/>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="ObjectRef">
+ <type metamodel="//@metamodelDeclarations.0">
+ <type xsi:type="ecore:EClass" href="http://www.eclipse.org/2008/tmf/xtext/EpatchTestLanguage#//ObjectRef"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <abstractTokens xsi:type="xtext:Group">
+ <abstractTokens xsi:type="xtext:Group">
+ <abstractTokens xsi:type="xtext:Keyword" value="object"/>
+ <abstractTokens xsi:type="xtext:Assignment" cardinality="?" feature="name" operator="=">
+ <terminal xsi:type="xtext:RuleCall">
+ <rule href="classpath:/org/eclipse/xtext/builtin/XtextBuiltin.xmi#//@rules.0"/>
+ </terminal>
+ </abstractTokens>
+ </abstractTokens>
+ <abstractTokens xsi:type="xtext:Alternatives">
+ <groups xsi:type="xtext:Group">
+ <abstractTokens xsi:type="xtext:Assignment" feature="leftRes" operator="=">
+ <terminal xsi:type="xtext:CrossReference">
+ <type metamodel="//@metamodelDeclarations.0">
+ <type xsi:type="ecore:EClass" href="http://www.eclipse.org/2008/tmf/xtext/EpatchTestLanguage#//NamedResource"/>
+ </type>
+ <rule href="classpath:/org/eclipse/xtext/builtin/XtextBuiltin.xmi#//@rules.0"/>
+ </terminal>
+ </abstractTokens>
+ <abstractTokens xsi:type="xtext:Assignment" feature="leftFrag" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="//@rules.21"/>
+ </abstractTokens>
+ </groups>
+ <groups xsi:type="xtext:Group">
+ <abstractTokens xsi:type="xtext:Group">
+ <abstractTokens xsi:type="xtext:Group">
+ <abstractTokens xsi:type="xtext:Group">
+ <abstractTokens xsi:type="xtext:Group">
+ <abstractTokens xsi:type="xtext:Keyword" value="left"/>
+ <abstractTokens xsi:type="xtext:Assignment" feature="leftRes" operator="=">
+ <terminal xsi:type="xtext:CrossReference">
+ <type metamodel="//@metamodelDeclarations.0">
+ <type xsi:type="ecore:EClass" href="http://www.eclipse.org/2008/tmf/xtext/EpatchTestLanguage#//NamedResource"/>
+ </type>
+ <rule href="classpath:/org/eclipse/xtext/builtin/XtextBuiltin.xmi#//@rules.0"/>
+ </terminal>
+ </abstractTokens>
+ </abstractTokens>
+ <abstractTokens xsi:type="xtext:Assignment" feature="leftFrag" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="//@rules.21"/>
+ </abstractTokens>
+ </abstractTokens>
+ <abstractTokens xsi:type="xtext:Keyword" value="right"/>
+ </abstractTokens>
+ <abstractTokens xsi:type="xtext:Assignment" feature="rightRes" operator="=">
+ <terminal xsi:type="xtext:CrossReference">
+ <type metamodel="//@metamodelDeclarations.0">
+ <type xsi:type="ecore:EClass" href="http://www.eclipse.org/2008/tmf/xtext/EpatchTestLanguage#//NamedResource"/>
+ </type>
+ <rule href="classpath:/org/eclipse/xtext/builtin/XtextBuiltin.xmi#//@rules.0"/>
+ </terminal>
+ </abstractTokens>
+ </abstractTokens>
+ <abstractTokens xsi:type="xtext:Assignment" feature="rightFrag" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="//@rules.21"/>
+ </abstractTokens>
+ </groups>
+ </abstractTokens>
+ </abstractTokens>
+ <abstractTokens xsi:type="xtext:Group" cardinality="?">
+ <abstractTokens xsi:type="xtext:Group">
+ <abstractTokens xsi:type="xtext:Group">
+ <abstractTokens xsi:type="xtext:Group">
+ <abstractTokens xsi:type="xtext:Keyword" value="{"/>
+ <abstractTokens xsi:type="xtext:Alternatives" cardinality="+">
+ <groups xsi:type="xtext:Assignment" feature="assignments" operator="+=">
+ <terminal xsi:type="xtext:RuleCall" rule="//@rules.11"/>
+ </groups>
+ <groups xsi:type="xtext:Assignment" feature="assignments" operator="+=">
+ <terminal xsi:type="xtext:RuleCall" rule="//@rules.12"/>
+ </groups>
+ </abstractTokens>
+ </abstractTokens>
+ <abstractTokens xsi:type="xtext:Group" cardinality="?">
+ <abstractTokens xsi:type="xtext:Keyword" value="left"/>
+ <abstractTokens xsi:type="xtext:Assignment" feature="leftMig" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="//@rules.22"/>
+ </abstractTokens>
+ </abstractTokens>
+ </abstractTokens>
+ <abstractTokens xsi:type="xtext:Group" cardinality="?">
+ <abstractTokens xsi:type="xtext:Keyword" value="right"/>
+ <abstractTokens xsi:type="xtext:Assignment" feature="rightMig" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="//@rules.22"/>
+ </abstractTokens>
+ </abstractTokens>
+ </abstractTokens>
+ <abstractTokens xsi:type="xtext:Keyword" value="}"/>
+ </abstractTokens>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="Assignment">
+ <type metamodel="//@metamodelDeclarations.0">
+ <type xsi:type="ecore:EClass" href="http://www.eclipse.org/2008/tmf/xtext/EpatchTestLanguage#//Assignment"/>
+ </type>
+ <alternatives xsi:type="xtext:Alternatives">
+ <groups xsi:type="xtext:Alternatives">
+ <groups xsi:type="xtext:Alternatives">
+ <groups xsi:type="xtext:RuleCall" rule="//@rules.11"/>
+ <groups xsi:type="xtext:RuleCall" rule="//@rules.12"/>
+ </groups>
+ <groups xsi:type="xtext:RuleCall" rule="//@rules.13"/>
+ </groups>
+ <groups xsi:type="xtext:RuleCall" rule="//@rules.14"/>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="BiSingleAssignment">
+ <type metamodel="//@metamodelDeclarations.0">
+ <type xsi:type="ecore:EClass" href="http://www.eclipse.org/2008/tmf/xtext/EpatchTestLanguage#//SingleAssignment"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <abstractTokens xsi:type="xtext:Group">
+ <abstractTokens xsi:type="xtext:Group">
+ <abstractTokens xsi:type="xtext:Group">
+ <abstractTokens xsi:type="xtext:Group">
+ <abstractTokens xsi:type="xtext:Assignment" feature="feature" operator="=">
+ <terminal xsi:type="xtext:RuleCall">
+ <rule href="classpath:/org/eclipse/xtext/builtin/XtextBuiltin.xmi#//@rules.0"/>
+ </terminal>
+ </abstractTokens>
+ <abstractTokens xsi:type="xtext:Keyword" value="="/>
+ </abstractTokens>
+ <abstractTokens xsi:type="xtext:Assignment" feature="leftValue" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="//@rules.17"/>
+ </abstractTokens>
+ </abstractTokens>
+ <abstractTokens xsi:type="xtext:Keyword" value="|"/>
+ </abstractTokens>
+ <abstractTokens xsi:type="xtext:Assignment" feature="rightValue" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="//@rules.17"/>
+ </abstractTokens>
+ </abstractTokens>
+ <abstractTokens xsi:type="xtext:Keyword" value=";"/>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="BiListAssignment">
+ <type metamodel="//@metamodelDeclarations.0">
+ <type xsi:type="ecore:EClass" href="http://www.eclipse.org/2008/tmf/xtext/EpatchTestLanguage#//ListAssignment"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <abstractTokens xsi:type="xtext:Group">
+ <abstractTokens xsi:type="xtext:Group">
+ <abstractTokens xsi:type="xtext:Group">
+ <abstractTokens xsi:type="xtext:Group">
+ <abstractTokens xsi:type="xtext:Group">
+ <abstractTokens xsi:type="xtext:Group">
+ <abstractTokens xsi:type="xtext:Assignment" feature="feature" operator="=">
+ <terminal xsi:type="xtext:RuleCall">
+ <rule href="classpath:/org/eclipse/xtext/builtin/XtextBuiltin.xmi#//@rules.0"/>
+ </terminal>
+ </abstractTokens>
+ <abstractTokens xsi:type="xtext:Keyword" value="="/>
+ </abstractTokens>
+ <abstractTokens xsi:type="xtext:Keyword" value="["/>
+ </abstractTokens>
+ <abstractTokens xsi:type="xtext:Group" cardinality="?">
+ <abstractTokens xsi:type="xtext:Assignment" feature="leftValues" operator="+=">
+ <terminal xsi:type="xtext:RuleCall" rule="//@rules.16"/>
+ </abstractTokens>
+ <abstractTokens xsi:type="xtext:Group" cardinality="*">
+ <abstractTokens xsi:type="xtext:Keyword" value=","/>
+ <abstractTokens xsi:type="xtext:Assignment" feature="leftValues" operator="+=">
+ <terminal xsi:type="xtext:RuleCall" rule="//@rules.16"/>
+ </abstractTokens>
+ </abstractTokens>
+ </abstractTokens>
+ </abstractTokens>
+ <abstractTokens xsi:type="xtext:Keyword" value="|"/>
+ </abstractTokens>
+ <abstractTokens xsi:type="xtext:Group" cardinality="?">
+ <abstractTokens xsi:type="xtext:Assignment" feature="rightValues" operator="+=">
+ <terminal xsi:type="xtext:RuleCall" rule="//@rules.16"/>
+ </abstractTokens>
+ <abstractTokens xsi:type="xtext:Group" cardinality="*">
+ <abstractTokens xsi:type="xtext:Keyword" value=","/>
+ <abstractTokens xsi:type="xtext:Assignment" feature="rightValues" operator="+=">
+ <terminal xsi:type="xtext:RuleCall" rule="//@rules.16"/>
+ </abstractTokens>
+ </abstractTokens>
+ </abstractTokens>
+ </abstractTokens>
+ <abstractTokens xsi:type="xtext:Keyword" value="]"/>
+ </abstractTokens>
+ <abstractTokens xsi:type="xtext:Keyword" value=";"/>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="MonoSingleAssignment">
+ <type metamodel="//@metamodelDeclarations.0">
+ <type xsi:type="ecore:EClass" href="http://www.eclipse.org/2008/tmf/xtext/EpatchTestLanguage#//SingleAssignment"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <abstractTokens xsi:type="xtext:Group">
+ <abstractTokens xsi:type="xtext:Group">
+ <abstractTokens xsi:type="xtext:Assignment" feature="feature" operator="=">
+ <terminal xsi:type="xtext:RuleCall">
+ <rule href="classpath:/org/eclipse/xtext/builtin/XtextBuiltin.xmi#//@rules.0"/>
+ </terminal>
+ </abstractTokens>
+ <abstractTokens xsi:type="xtext:Keyword" value="="/>
+ </abstractTokens>
+ <abstractTokens xsi:type="xtext:Assignment" feature="leftValue" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="//@rules.17"/>
+ </abstractTokens>
+ </abstractTokens>
+ <abstractTokens xsi:type="xtext:Keyword" value=";"/>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="MonoListAssignment">
+ <type metamodel="//@metamodelDeclarations.0">
+ <type xsi:type="ecore:EClass" href="http://www.eclipse.org/2008/tmf/xtext/EpatchTestLanguage#//ListAssignment"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <abstractTokens xsi:type="xtext:Group">
+ <abstractTokens xsi:type="xtext:Group">
+ <abstractTokens xsi:type="xtext:Group">
+ <abstractTokens xsi:type="xtext:Group">
+ <abstractTokens xsi:type="xtext:Assignment" feature="feature" operator="=">
+ <terminal xsi:type="xtext:RuleCall">
+ <rule href="classpath:/org/eclipse/xtext/builtin/XtextBuiltin.xmi#//@rules.0"/>
+ </terminal>
+ </abstractTokens>
+ <abstractTokens xsi:type="xtext:Keyword" value="="/>
+ </abstractTokens>
+ <abstractTokens xsi:type="xtext:Keyword" value="["/>
+ </abstractTokens>
+ <abstractTokens xsi:type="xtext:Group" cardinality="?">
+ <abstractTokens xsi:type="xtext:Assignment" feature="leftValues" operator="+=">
+ <terminal xsi:type="xtext:RuleCall" rule="//@rules.15"/>
+ </abstractTokens>
+ <abstractTokens xsi:type="xtext:Group" cardinality="*">
+ <abstractTokens xsi:type="xtext:Keyword" value=","/>
+ <abstractTokens xsi:type="xtext:Assignment" feature="leftValues" operator="+=">
+ <terminal xsi:type="xtext:RuleCall" rule="//@rules.15"/>
+ </abstractTokens>
+ </abstractTokens>
+ </abstractTokens>
+ </abstractTokens>
+ <abstractTokens xsi:type="xtext:Keyword" value="]"/>
+ </abstractTokens>
+ <abstractTokens xsi:type="xtext:Keyword" value=";"/>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="AssignmentValue">
+ <type metamodel="//@metamodelDeclarations.0">
+ <type xsi:type="ecore:EClass" href="http://www.eclipse.org/2008/tmf/xtext/EpatchTestLanguage#//AssignmentValue"/>
+ </type>
+ <alternatives xsi:type="xtext:Alternatives">
+ <groups xsi:type="xtext:Alternatives">
+ <groups xsi:type="xtext:Alternatives">
+ <groups xsi:type="xtext:Assignment" feature="value" operator="=">
+ <terminal xsi:type="xtext:RuleCall">
+ <rule href="classpath:/org/eclipse/xtext/builtin/XtextBuiltin.xmi#//@rules.2"/>
+ </terminal>
+ </groups>
+ <groups xsi:type="xtext:Group">
+ <abstractTokens xsi:type="xtext:Assignment" feature="refObject" operator="=">
+ <terminal xsi:type="xtext:CrossReference">
+ <type metamodel="//@metamodelDeclarations.0">
+ <type xsi:type="ecore:EClass" href="http://www.eclipse.org/2008/tmf/xtext/EpatchTestLanguage#//NamedObject"/>
+ </type>
+ <rule href="classpath:/org/eclipse/xtext/builtin/XtextBuiltin.xmi#//@rules.0"/>
+ </terminal>
+ </abstractTokens>
+ <abstractTokens xsi:type="xtext:Group" cardinality="?">
+ <abstractTokens xsi:type="xtext:Group">
+ <abstractTokens xsi:type="xtext:Keyword" value="."/>
+ <abstractTokens xsi:type="xtext:Assignment" feature="refFeature" operator="=">
+ <terminal xsi:type="xtext:RuleCall">
+ <rule href="classpath:/org/eclipse/xtext/builtin/XtextBuiltin.xmi#//@rules.0"/>
+ </terminal>
+ </abstractTokens>
+ </abstractTokens>
+ <abstractTokens xsi:type="xtext:Group" cardinality="?">
+ <abstractTokens xsi:type="xtext:Group">
+ <abstractTokens xsi:type="xtext:Keyword" value="["/>
+ <abstractTokens xsi:type="xtext:Assignment" feature="refIndex" operator="=">
+ <terminal xsi:type="xtext:RuleCall">
+ <rule href="classpath:/org/eclipse/xtext/builtin/XtextBuiltin.xmi#//@rules.1"/>
+ </terminal>
+ </abstractTokens>
+ </abstractTokens>
+ <abstractTokens xsi:type="xtext:Keyword" value="]"/>
+ </abstractTokens>
+ </abstractTokens>
+ </groups>
+ </groups>
+ <groups xsi:type="xtext:Assignment" feature="newObject" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="//@rules.18"/>
+ </groups>
+ </groups>
+ <groups xsi:type="xtext:Group">
+ <abstractTokens xsi:type="xtext:Assignment" feature="import" operator="=">
+ <terminal xsi:type="xtext:CrossReference">
+ <type metamodel="//@metamodelDeclarations.0">
+ <type xsi:type="ecore:EClass" href="http://www.eclipse.org/2008/tmf/xtext/EpatchTestLanguage#//Import"/>
+ </type>
+ <rule href="classpath:/org/eclipse/xtext/builtin/XtextBuiltin.xmi#//@rules.0"/>
+ </terminal>
+ </abstractTokens>
+ <abstractTokens xsi:type="xtext:Assignment" feature="impFrag" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="//@rules.21"/>
+ </abstractTokens>
+ </groups>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="ListAssignmentValue">
+ <type metamodel="//@metamodelDeclarations.0">
+ <type xsi:type="ecore:EClass" href="http://www.eclipse.org/2008/tmf/xtext/EpatchTestLanguage#//AssignmentValue"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <abstractTokens xsi:type="xtext:Group">
+ <abstractTokens xsi:type="xtext:Assignment" feature="index" operator="=">
+ <terminal xsi:type="xtext:RuleCall">
+ <rule href="classpath:/org/eclipse/xtext/builtin/XtextBuiltin.xmi#//@rules.1"/>
+ </terminal>
+ </abstractTokens>
+ <abstractTokens xsi:type="xtext:Keyword" value=":"/>
+ </abstractTokens>
+ <abstractTokens xsi:type="xtext:Alternatives">
+ <groups xsi:type="xtext:Alternatives">
+ <groups xsi:type="xtext:Alternatives">
+ <groups xsi:type="xtext:Alternatives">
+ <groups xsi:type="xtext:Group">
+ <abstractTokens xsi:type="xtext:Group">
+ <abstractTokens xsi:type="xtext:Keyword" value="["/>
+ <abstractTokens xsi:type="xtext:Assignment" feature="refIndex" operator="=">
+ <terminal xsi:type="xtext:RuleCall">
+ <rule href="classpath:/org/eclipse/xtext/builtin/XtextBuiltin.xmi#//@rules.1"/>
+ </terminal>
+ </abstractTokens>
+ </abstractTokens>
+ <abstractTokens xsi:type="xtext:Keyword" value="]"/>
+ </groups>
+ <groups xsi:type="xtext:Assignment" feature="value" operator="=">
+ <terminal xsi:type="xtext:RuleCall">
+ <rule href="classpath:/org/eclipse/xtext/builtin/XtextBuiltin.xmi#//@rules.2"/>
+ </terminal>
+ </groups>
+ </groups>
+ <groups xsi:type="xtext:Group">
+ <abstractTokens xsi:type="xtext:Assignment" feature="refObject" operator="=">
+ <terminal xsi:type="xtext:CrossReference">
+ <type metamodel="//@metamodelDeclarations.0">
+ <type xsi:type="ecore:EClass" href="http://www.eclipse.org/2008/tmf/xtext/EpatchTestLanguage#//NamedObject"/>
+ </type>
+ <rule href="classpath:/org/eclipse/xtext/builtin/XtextBuiltin.xmi#//@rules.0"/>
+ </terminal>
+ </abstractTokens>
+ <abstractTokens xsi:type="xtext:Group" cardinality="?">
+ <abstractTokens xsi:type="xtext:Group">
+ <abstractTokens xsi:type="xtext:Keyword" value="."/>
+ <abstractTokens xsi:type="xtext:Assignment" feature="refFeature" operator="=">
+ <terminal xsi:type="xtext:RuleCall">
+ <rule href="classpath:/org/eclipse/xtext/builtin/XtextBuiltin.xmi#//@rules.0"/>
+ </terminal>
+ </abstractTokens>
+ </abstractTokens>
+ <abstractTokens xsi:type="xtext:Group" cardinality="?">
+ <abstractTokens xsi:type="xtext:Group">
+ <abstractTokens xsi:type="xtext:Keyword" value="["/>
+ <abstractTokens xsi:type="xtext:Assignment" feature="refIndex" operator="=">
+ <terminal xsi:type="xtext:RuleCall">
+ <rule href="classpath:/org/eclipse/xtext/builtin/XtextBuiltin.xmi#//@rules.1"/>
+ </terminal>
+ </abstractTokens>
+ </abstractTokens>
+ <abstractTokens xsi:type="xtext:Keyword" value="]"/>
+ </abstractTokens>
+ </abstractTokens>
+ </groups>
+ </groups>
+ <groups xsi:type="xtext:Assignment" feature="newObject" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="//@rules.18"/>
+ </groups>
+ </groups>
+ <groups xsi:type="xtext:Group">
+ <abstractTokens xsi:type="xtext:Assignment" feature="import" operator="=">
+ <terminal xsi:type="xtext:CrossReference">
+ <type metamodel="//@metamodelDeclarations.0">
+ <type xsi:type="ecore:EClass" href="http://www.eclipse.org/2008/tmf/xtext/EpatchTestLanguage#//Import"/>
+ </type>
+ <rule href="classpath:/org/eclipse/xtext/builtin/XtextBuiltin.xmi#//@rules.0"/>
+ </terminal>
+ </abstractTokens>
+ <abstractTokens xsi:type="xtext:Assignment" feature="impFrag" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="//@rules.21"/>
+ </abstractTokens>
+ </groups>
+ </abstractTokens>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="SingleAssignmentValue">
+ <type metamodel="//@metamodelDeclarations.0">
+ <type xsi:type="ecore:EClass" href="http://www.eclipse.org/2008/tmf/xtext/EpatchTestLanguage#//AssignmentValue"/>
+ </type>
+ <alternatives xsi:type="xtext:Alternatives">
+ <groups xsi:type="xtext:Alternatives">
+ <groups xsi:type="xtext:Alternatives">
+ <groups xsi:type="xtext:Alternatives">
+ <groups xsi:type="xtext:Assignment" feature="keyword" operator="=">
+ <terminal xsi:type="xtext:Keyword" value="null"/>
+ </groups>
+ <groups xsi:type="xtext:Assignment" feature="value" operator="=">
+ <terminal xsi:type="xtext:RuleCall">
+ <rule href="classpath:/org/eclipse/xtext/builtin/XtextBuiltin.xmi#//@rules.2"/>
+ </terminal>
+ </groups>
+ </groups>
+ <groups xsi:type="xtext:Group">
+ <abstractTokens xsi:type="xtext:Assignment" feature="refObject" operator="=">
+ <terminal xsi:type="xtext:CrossReference">
+ <type metamodel="//@metamodelDeclarations.0">
+ <type xsi:type="ecore:EClass" href="http://www.eclipse.org/2008/tmf/xtext/EpatchTestLanguage#//NamedObject"/>
+ </type>
+ <rule href="classpath:/org/eclipse/xtext/builtin/XtextBuiltin.xmi#//@rules.0"/>
+ </terminal>
+ </abstractTokens>
+ <abstractTokens xsi:type="xtext:Group" cardinality="?">
+ <abstractTokens xsi:type="xtext:Group">
+ <abstractTokens xsi:type="xtext:Keyword" value="."/>
+ <abstractTokens xsi:type="xtext:Assignment" feature="refFeature" operator="=">
+ <terminal xsi:type="xtext:RuleCall">
+ <rule href="classpath:/org/eclipse/xtext/builtin/XtextBuiltin.xmi#//@rules.0"/>
+ </terminal>
+ </abstractTokens>
+ </abstractTokens>
+ <abstractTokens xsi:type="xtext:Group" cardinality="?">
+ <abstractTokens xsi:type="xtext:Group">
+ <abstractTokens xsi:type="xtext:Keyword" value="["/>
+ <abstractTokens xsi:type="xtext:Assignment" feature="refIndex" operator="=">
+ <terminal xsi:type="xtext:RuleCall">
+ <rule href="classpath:/org/eclipse/xtext/builtin/XtextBuiltin.xmi#//@rules.1"/>
+ </terminal>
+ </abstractTokens>
+ </abstractTokens>
+ <abstractTokens xsi:type="xtext:Keyword" value="]"/>
+ </abstractTokens>
+ </abstractTokens>
+ </groups>
+ </groups>
+ <groups xsi:type="xtext:Assignment" feature="newObject" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="//@rules.18"/>
+ </groups>
+ </groups>
+ <groups xsi:type="xtext:Group">
+ <abstractTokens xsi:type="xtext:Assignment" feature="import" operator="=">
+ <terminal xsi:type="xtext:CrossReference">
+ <type metamodel="//@metamodelDeclarations.0">
+ <type xsi:type="ecore:EClass" href="http://www.eclipse.org/2008/tmf/xtext/EpatchTestLanguage#//Import"/>
+ </type>
+ <rule href="classpath:/org/eclipse/xtext/builtin/XtextBuiltin.xmi#//@rules.0"/>
+ </terminal>
+ </abstractTokens>
+ <abstractTokens xsi:type="xtext:Assignment" feature="impFrag" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="//@rules.21"/>
+ </abstractTokens>
+ </groups>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="CreatedObject">
+ <type metamodel="//@metamodelDeclarations.0">
+ <type xsi:type="ecore:EClass" href="http://www.eclipse.org/2008/tmf/xtext/EpatchTestLanguage#//CreatedObject"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <abstractTokens xsi:type="xtext:Group">
+ <abstractTokens xsi:type="xtext:Alternatives">
+ <groups xsi:type="xtext:RuleCall" rule="//@rules.19"/>
+ <groups xsi:type="xtext:RuleCall" rule="//@rules.20"/>
+ </abstractTokens>
+ <abstractTokens xsi:type="xtext:Assignment" cardinality="?" feature="name" operator="=">
+ <terminal xsi:type="xtext:RuleCall">
+ <rule href="classpath:/org/eclipse/xtext/builtin/XtextBuiltin.xmi#//@rules.0"/>
+ </terminal>
+ </abstractTokens>
+ </abstractTokens>
+ <abstractTokens xsi:type="xtext:Group" cardinality="?">
+ <abstractTokens xsi:type="xtext:Group">
+ <abstractTokens xsi:type="xtext:Group">
+ <abstractTokens xsi:type="xtext:Keyword" value="{"/>
+ <abstractTokens xsi:type="xtext:Alternatives" cardinality="+">
+ <groups xsi:type="xtext:Assignment" feature="assignments" operator="+=">
+ <terminal xsi:type="xtext:RuleCall" rule="//@rules.13"/>
+ </groups>
+ <groups xsi:type="xtext:Assignment" feature="assignments" operator="+=">
+ <terminal xsi:type="xtext:RuleCall" rule="//@rules.14"/>
+ </groups>
+ </abstractTokens>
+ </abstractTokens>
+ <abstractTokens xsi:type="xtext:Assignment" cardinality="?" feature="leftMig" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="//@rules.22"/>
+ </abstractTokens>
+ </abstractTokens>
+ <abstractTokens xsi:type="xtext:Keyword" value="}"/>
+ </abstractTokens>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="ObjectNew">
+ <type metamodel="//@metamodelDeclarations.0">
+ <type xsi:type="ecore:EClass" href="http://www.eclipse.org/2008/tmf/xtext/EpatchTestLanguage#//ObjectNew"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <abstractTokens xsi:type="xtext:Group">
+ <abstractTokens xsi:type="xtext:Keyword" value="new"/>
+ <abstractTokens xsi:type="xtext:Assignment" feature="import" operator="=">
+ <terminal xsi:type="xtext:CrossReference">
+ <type metamodel="//@metamodelDeclarations.0">
+ <type xsi:type="ecore:EClass" href="http://www.eclipse.org/2008/tmf/xtext/EpatchTestLanguage#//Import"/>
+ </type>
+ <rule href="classpath:/org/eclipse/xtext/builtin/XtextBuiltin.xmi#//@rules.0"/>
+ </terminal>
+ </abstractTokens>
+ </abstractTokens>
+ <abstractTokens xsi:type="xtext:Assignment" feature="impFrag" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="//@rules.21"/>
+ </abstractTokens>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="ObjectCopy">
+ <type metamodel="//@metamodelDeclarations.0">
+ <type xsi:type="ecore:EClass" href="http://www.eclipse.org/2008/tmf/xtext/EpatchTestLanguage#//ObjectCopy"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <abstractTokens xsi:type="xtext:Group">
+ <abstractTokens xsi:type="xtext:Keyword" value="copy"/>
+ <abstractTokens xsi:type="xtext:Assignment" feature="resource" operator="=">
+ <terminal xsi:type="xtext:CrossReference">
+ <type metamodel="//@metamodelDeclarations.0">
+ <type xsi:type="ecore:EClass" href="http://www.eclipse.org/2008/tmf/xtext/EpatchTestLanguage#//NamedResource"/>
+ </type>
+ <rule href="classpath:/org/eclipse/xtext/builtin/XtextBuiltin.xmi#//@rules.0"/>
+ </terminal>
+ </abstractTokens>
+ </abstractTokens>
+ <abstractTokens xsi:type="xtext:Assignment" feature="fragment" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="//@rules.21"/>
+ </abstractTokens>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:LexerRule" name="FRAGMENT" body="'#' ('a'..'z'|'A'..'Z'|'0'..'9'|'_'|'/'|'['|']'|'{'|'}'|'.'|'@')+">
+ <type>
+ <metamodel href="classpath:/org/eclipse/xtext/builtin/XtextBuiltin.xmi#//@metamodelDeclarations.0"/>
+ <type xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </type>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="Migration">
+ <type metamodel="//@metamodelDeclarations.0">
+ <type xsi:type="ecore:EClass" href="http://www.eclipse.org/2008/tmf/xtext/EpatchTestLanguage#//Migration"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <abstractTokens xsi:type="xtext:Group">
+ <abstractTokens xsi:type="xtext:Group">
+ <abstractTokens xsi:type="xtext:Keyword" value="migrate"/>
+ <abstractTokens xsi:type="xtext:Assignment" cardinality="?" feature="first" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="//@rules.23"/>
+ </abstractTokens>
+ </abstractTokens>
+ <abstractTokens xsi:type="xtext:Alternatives" cardinality="?">
+ <groups xsi:type="xtext:Group">
+ <abstractTokens xsi:type="xtext:Keyword" value="as"/>
+ <abstractTokens xsi:type="xtext:Assignment" feature="asOp" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="//@rules.23"/>
+ </abstractTokens>
+ </groups>
+ <groups xsi:type="xtext:Group">
+ <abstractTokens xsi:type="xtext:Keyword" value="each"/>
+ <abstractTokens xsi:type="xtext:Assignment" feature="eachOp" operator="=">
+ <terminal xsi:type="xtext:RuleCall" rule="//@rules.23"/>
+ </abstractTokens>
+ </groups>
+ </abstractTokens>
+ </abstractTokens>
+ <abstractTokens xsi:type="xtext:Keyword" value=";"/>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="Executable">
+ <type metamodel="//@metamodelDeclarations.0">
+ <type xsi:type="ecore:EClass" href="http://www.eclipse.org/2008/tmf/xtext/EpatchTestLanguage#//Executable"/>
+ </type>
+ <alternatives xsi:type="xtext:Alternatives">
+ <groups xsi:type="xtext:RuleCall" rule="//@rules.24"/>
+ <groups xsi:type="xtext:RuleCall" rule="//@rules.25"/>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="JavaExecutable">
+ <type metamodel="//@metamodelDeclarations.0">
+ <type xsi:type="ecore:EClass" href="http://www.eclipse.org/2008/tmf/xtext/EpatchTestLanguage#//JavaExecutable"/>
+ </type>
+ <alternatives xsi:type="xtext:Group">
+ <abstractTokens xsi:type="xtext:Group">
+ <abstractTokens xsi:type="xtext:Group">
+ <abstractTokens xsi:type="xtext:Keyword" value="java"/>
+ <abstractTokens xsi:type="xtext:Assignment" feature="method" operator="=">
+ <terminal xsi:type="xtext:RuleCall">
+ <rule href="classpath:/org/eclipse/xtext/builtin/XtextBuiltin.xmi#//@rules.0"/>
+ </terminal>
+ </abstractTokens>
+ </abstractTokens>
+ <abstractTokens xsi:type="xtext:Keyword" value="("/>
+ </abstractTokens>
+ <abstractTokens xsi:type="xtext:Keyword" value=")"/>
+ </alternatives>
+ </rules>
+ <rules xsi:type="xtext:ParserRule" name="ExpressionExecutable">
+ <type metamodel="//@metamodelDeclarations.0">
+ <type xsi:type="ecore:EClass" href="http://www.eclipse.org/2008/tmf/xtext/EpatchTestLanguage#//ExpressionExecutable"/>
+ </type>
+ <alternatives xsi:type="xtext:Assignment" feature="exprstr" operator="=">
+ <terminal xsi:type="xtext:RuleCall">
+ <rule href="classpath:/org/eclipse/xtext/builtin/XtextBuiltin.xmi#//@rules.2"/>
+ </terminal>
+ </alternatives>
+ </rules>
+</xtext:Grammar>
diff --git a/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/epatch/EpatchTestLanguageStandaloneSetup.java b/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/epatch/EpatchTestLanguageStandaloneSetup.java
new file mode 100644
index 0000000..905d18c
--- /dev/null
+++ b/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/epatch/EpatchTestLanguageStandaloneSetup.java
@@ -0,0 +1,53 @@
+/*
+Generated with Xtext
+*/
+package org.eclipse.xtext.parser.epatch;
+
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.xtext.EcoreUtil2;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.xtext.resource.IResourceFactory;
+import org.eclipse.xtext.service.IServiceScope;
+import org.eclipse.xtext.service.ServiceRegistry;
+import org.eclipse.xtext.service.IServiceRegistrationFactory.IServiceRegistration;
+
+import org.eclipse.xtext.parser.epatch.IEpatchTestLanguage;
+
+public abstract class EpatchTestLanguageStandaloneSetup {
+
+ private static boolean isInitialized = false;
+
+ public synchronized static void doSetup() {
+ if(!isInitialized) {
+ // setup super language first
+ org.eclipse.xtext.builtin.XtextBuiltinStandaloneSetup.doSetup();
+
+ for (IServiceRegistration reg : new org.eclipse.xtext.parser.epatch.EpatchTestLanguageRuntimeConfig().registrations()) {
+ ServiceRegistry.registerFactory(reg.scope(), reg.serviceFactory(), reg.priority());
+ }
+
+ // register resource factory to EMF
+ IResourceFactory resourceFactory = new org.eclipse.xtext.parser.epatch.services.EpatchTestLanguageResourceFactory();
+ Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().put("epatchtestlanguage", resourceFactory);
+
+
+ // initialize EPackages
+
+ if (!EPackage.Registry.INSTANCE.containsKey("http://www.eclipse.org/2008/tmf/xtext/EpatchTestLanguage")) {
+ EPackage EpatchTestLanguage = EcoreUtil2.loadEPackage(
+ "classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.ecore",
+ EpatchTestLanguageStandaloneSetup.class.getClassLoader());
+ if (EpatchTestLanguage == null)
+ throw new IllegalStateException(
+ "Couldn't load EPackage from 'classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.ecore'");
+ EPackage.Registry.INSTANCE.put("http://www.eclipse.org/2008/tmf/xtext/EpatchTestLanguage", EpatchTestLanguage);
+ }
+
+ isInitialized = true;
+ }
+ }
+
+ public static IServiceScope getServiceScope() {
+ return org.eclipse.xtext.parser.epatch.IEpatchTestLanguage.SCOPE;
+ }
+}
diff --git a/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/epatch/IEpatchTestLanguage.java b/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/epatch/IEpatchTestLanguage.java
new file mode 100644
index 0000000..55f0a65
--- /dev/null
+++ b/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/epatch/IEpatchTestLanguage.java
@@ -0,0 +1,23 @@
+/*
+Generated with Xtext
+*/
+package org.eclipse.xtext.parser.epatch;
+
+import org.eclipse.xtext.service.IServiceScope;
+import org.eclipse.xtext.service.ServiceScopeFactory;
+
+public interface IEpatchTestLanguage {
+
+ /**
+ * the unique identifier of this language.
+ * To be used to get the language descriptor and related services from the registry.
+ * Within ILanguageServices it is encouraged to use dependency injection instead
+ * of directly accessing the ServiceRegistry
+ */
+ public static final String ID = "org.eclipse.xtext.parser.epatch.EpatchTestLanguage";
+ public static final String NAME = "EpatchTestLanguage";
+ public static final String NAMESPACE = "org.eclipse.xtext.parser.epatch";
+ public static final String[] FILE_EXTENSIONS = new String[]{"epatchtestlanguage"};
+ public static final IServiceScope SCOPE = ServiceScopeFactory.createScope(ID, org.eclipse.xtext.builtin.IXtextBuiltin.SCOPE);
+
+}
diff --git a/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/EpatchTestLanguageAntlrTokenFileProvider.java b/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/EpatchTestLanguageAntlrTokenFileProvider.java
new file mode 100644
index 0000000..a5b4723
--- /dev/null
+++ b/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/EpatchTestLanguageAntlrTokenFileProvider.java
@@ -0,0 +1,15 @@
+/*
+Generated with Xtext
+*/
+package org.eclipse.xtext.parser.epatch.parser.antlr;
+
+import java.io.InputStream;
+import org.eclipse.xtext.parser.antlr.IAntlrTokenFileProvider;
+
+public class EpatchTestLanguageAntlrTokenFileProvider implements IAntlrTokenFileProvider {
+
+ public InputStream getAntlrTokenFile() {
+ ClassLoader classLoader = EpatchTestLanguageAntlrTokenFileProvider.class.getClassLoader();
+ return classLoader.getResourceAsStream("org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.tokens");
+ }
+}
diff --git a/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/EpatchTestLanguageParser.java b/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/EpatchTestLanguageParser.java
new file mode 100644
index 0000000..dfd8a2c
--- /dev/null
+++ b/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/EpatchTestLanguageParser.java
@@ -0,0 +1,43 @@
+/*
+Generated with Xtext
+*/
+package org.eclipse.xtext.parser.epatch.parser.antlr;
+
+import org.antlr.runtime.ANTLRInputStream;
+import org.eclipse.xtext.parser.antlr.AntlrTokenDefProvider;
+import org.eclipse.xtext.parser.IParseResult;
+import org.eclipse.xtext.parser.ParseException;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream;
+import org.eclipse.xtext.service.Inject;
+
+import org.eclipse.xtext.parser.epatch.parser.antlr.internal.InternalEpatchTestLanguageLexer;
+import org.eclipse.xtext.parser.epatch.parser.antlr.internal.InternalEpatchTestLanguageParser;
+
+public class EpatchTestLanguageParser extends org.eclipse.xtext.parser.antlr.AbstractAntlrParser {
+
+ @Inject
+ protected AntlrTokenDefProvider antlrTokenDefProvider;
+
+ @Override
+ protected IParseResult parse(String ruleName, ANTLRInputStream in) {
+ InternalEpatchTestLanguageLexer lexer = new InternalEpatchTestLanguageLexer(in);
+ XtextTokenStream stream = new XtextTokenStream(lexer, antlrTokenDefProvider);
+ InternalEpatchTestLanguageParser parser = new InternalEpatchTestLanguageParser(
+ stream, getElementFactory(), grammarAccess.getGrammar());
+ parser.setTokenTypeMap(antlrTokenDefProvider.getTokenDefMap());
+ try {
+ if(ruleName != null) {
+ return parser.parse(ruleName);
+ } else {
+ return parser.parse();
+ }
+ } catch (Exception re) {
+ throw new ParseException(re.getMessage(),re);
+ }
+ }
+
+ @Override
+ protected String getDefaultRuleName() {
+ return "EPatch";
+ }
+}
diff --git a/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g b/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g
new file mode 100644
index 0000000..ad82aff
--- /dev/null
+++ b/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g
@@ -0,0 +1,2556 @@
+/*
+Generated with Xtext
+*/
+grammar InternalEpatchTestLanguage;
+
+options {
+ superClass=AbstractInternalAntlrParser;
+}
+
+@lexer::header {
+package org.eclipse.xtext.parser.epatch.parser.antlr.internal;
+
+// Hack: Use our own Lexer superclass by means of import.
+// Currently there is no other way to specify the superclass for the lexer.
+import org.eclipse.xtext.parser.antlr.Lexer;
+}
+
+@parser::header {
+package org.eclipse.xtext.parser.epatch.parser.antlr.internal;
+
+import java.io.InputStream;
+import org.eclipse.xtext.*;
+import org.eclipse.xtext.parser.*;
+import org.eclipse.xtext.parser.impl.*;
+import org.eclipse.xtext.parsetree.*;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.xtext.parser.antlr.AbstractInternalAntlrParser;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
+import org.eclipse.xtext.parser.antlr.AntlrDatatypeRuleToken;
+import org.eclipse.xtext.conversion.ValueConverterException;
+
+}
+
+@parser::members {
+
+ public InternalEpatchTestLanguageParser(TokenStream input, IAstFactory factory, Grammar g) {
+ this(input);
+ this.factory = factory;
+ grammar = g;
+ }
+
+ @Override
+ protected InputStream getTokenFile() {
+ ClassLoader classLoader = InternalEpatchTestLanguageParser.class.getClassLoader();
+ return classLoader.getResourceAsStream("org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.tokens");
+ }
+
+ @Override
+ protected String getFirstRuleName() {
+ return "EPatch";
+ }
+}
+
+@rulecatch {
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+}
+
+
+
+
+
+// Entry rule entryRuleEPatch
+entryRuleEPatch returns [EObject current=null] :
+ { currentNode = createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.0" /* xtext::ParserRule */, currentNode); }
+ iv_ruleEPatch=ruleEPatch
+ { $current=$iv_ruleEPatch.current; }
+ EOF
+;
+
+// Rule EPatch
+ruleEPatch returns [EObject current=null]
+ @init { EObject temp=null; setCurrentLookahead(); resetLookahead();
+ HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens("RULE_WS", "RULE_ML_COMMENT", "RULE_SL_COMMENT");
+ }
+ @after { resetLookahead();
+ myHiddenTokenState.restore();
+ }:
+(((((('epatch'
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.0/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0" /* xtext::Keyword */, null);
+ }
+(
+
+ lv_name=RULE_ID
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.0/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1/@terminal" /* xtext::RuleCall */, "name");
+ }
+
+ {
+ if ($current==null) {
+ $current = factory.create("EPatch");
+ associateNodeWithAstElement(currentNode, $current);
+ }
+
+ try {
+ factory.set($current, "name", lv_name, "ID", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ }
+
+))'{'
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.0/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1" /* xtext::Keyword */, null);
+ }
+)(
+
+
+ {
+ currentNode=createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.0/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1/@terminal" /* xtext::RuleCall */, currentNode);
+ }
+ lv_imports=ruleImport
+ {
+ if ($current==null) {
+ $current = factory.create("EPatch");
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+
+ try {
+ factory.add($current, "imports", lv_imports, "Import", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)*)(
+
+
+ {
+ currentNode=createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.0/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1/@terminal" /* xtext::RuleCall */, currentNode);
+ }
+ lv_resources=ruleNamedResource
+ {
+ if ($current==null) {
+ $current = factory.create("EPatch");
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+
+ try {
+ factory.add($current, "resources", lv_resources, "NamedResource", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)*)(
+
+
+ {
+ currentNode=createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.0/@alternatives/@abstractTokens.0/@abstractTokens.1/@terminal" /* xtext::RuleCall */, currentNode);
+ }
+ lv_objects=ruleObjectRef
+ {
+ if ($current==null) {
+ $current = factory.create("EPatch");
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+
+ try {
+ factory.add($current, "objects", lv_objects, "ObjectRef", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)*)'}'
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.0/@alternatives/@abstractTokens.1" /* xtext::Keyword */, null);
+ }
+);
+
+
+
+
+
+
+
+// Entry rule entryRuleImport
+entryRuleImport returns [EObject current=null] :
+ { currentNode = createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.1" /* xtext::ParserRule */, currentNode); }
+ iv_ruleImport=ruleImport
+ { $current=$iv_ruleImport.current; }
+ EOF
+;
+
+// Rule Import
+ruleImport returns [EObject current=null]
+ @init { EObject temp=null; setCurrentLookahead(); resetLookahead();
+ }
+ @after { resetLookahead();
+ }:
+((
+ {
+ currentNode=createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.1/@alternatives/@groups.0/@groups.0" /* xtext::RuleCall */, currentNode);
+ }
+ this_ModelImport=ruleModelImport
+ {
+ $current = $this_ModelImport.current;
+ currentNode = currentNode.getParent();
+ }
+
+ |
+ {
+ currentNode=createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.1/@alternatives/@groups.0/@groups.1" /* xtext::RuleCall */, currentNode);
+ }
+ this_JavaImport=ruleJavaImport
+ {
+ $current = $this_JavaImport.current;
+ currentNode = currentNode.getParent();
+ }
+)
+ |
+ {
+ currentNode=createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.1/@alternatives/@groups.1" /* xtext::RuleCall */, currentNode);
+ }
+ this_ExtensionImport=ruleExtensionImport
+ {
+ $current = $this_ExtensionImport.current;
+ currentNode = currentNode.getParent();
+ }
+);
+
+
+
+
+
+
+
+// Entry rule entryRuleModelImport
+entryRuleModelImport returns [EObject current=null] :
+ { currentNode = createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.2" /* xtext::ParserRule */, currentNode); }
+ iv_ruleModelImport=ruleModelImport
+ { $current=$iv_ruleModelImport.current; }
+ EOF
+;
+
+// Rule ModelImport
+ruleModelImport returns [EObject current=null]
+ @init { EObject temp=null; setCurrentLookahead(); resetLookahead();
+ }
+ @after { resetLookahead();
+ }:
+(
+ {
+ currentNode=createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.2/@alternatives/@groups.0" /* xtext::RuleCall */, currentNode);
+ }
+ this_ResourceImport=ruleResourceImport
+ {
+ $current = $this_ResourceImport.current;
+ currentNode = currentNode.getParent();
+ }
+
+ |
+ {
+ currentNode=createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.2/@alternatives/@groups.1" /* xtext::RuleCall */, currentNode);
+ }
+ this_EPackageImport=ruleEPackageImport
+ {
+ $current = $this_EPackageImport.current;
+ currentNode = currentNode.getParent();
+ }
+);
+
+
+
+
+
+
+
+// Entry rule entryRuleResourceImport
+entryRuleResourceImport returns [EObject current=null] :
+ { currentNode = createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.3" /* xtext::ParserRule */, currentNode); }
+ iv_ruleResourceImport=ruleResourceImport
+ { $current=$iv_ruleResourceImport.current; }
+ EOF
+;
+
+// Rule ResourceImport
+ruleResourceImport returns [EObject current=null]
+ @init { EObject temp=null; setCurrentLookahead(); resetLookahead();
+ }
+ @after { resetLookahead();
+ }:
+((('import'
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.3/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0" /* xtext::Keyword */, null);
+ }
+(
+
+ lv_name=RULE_ID
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.3/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1/@terminal" /* xtext::RuleCall */, "name");
+ }
+
+ {
+ if ($current==null) {
+ $current = factory.create("ResourceImport");
+ associateNodeWithAstElement(currentNode, $current);
+ }
+
+ try {
+ factory.set($current, "name", lv_name, "ID", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ }
+
+))'uri'
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.3/@alternatives/@abstractTokens.0/@abstractTokens.1" /* xtext::Keyword */, null);
+ }
+)(
+
+ lv_uri=RULE_STRING
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.3/@alternatives/@abstractTokens.1/@terminal" /* xtext::RuleCall */, "uri");
+ }
+
+ {
+ if ($current==null) {
+ $current = factory.create("ResourceImport");
+ associateNodeWithAstElement(currentNode, $current);
+ }
+
+ try {
+ factory.set($current, "uri", lv_uri, "STRING", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ }
+
+));
+
+
+
+
+
+
+
+// Entry rule entryRuleEPackageImport
+entryRuleEPackageImport returns [EObject current=null] :
+ { currentNode = createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.4" /* xtext::ParserRule */, currentNode); }
+ iv_ruleEPackageImport=ruleEPackageImport
+ { $current=$iv_ruleEPackageImport.current; }
+ EOF
+;
+
+// Rule EPackageImport
+ruleEPackageImport returns [EObject current=null]
+ @init { EObject temp=null; setCurrentLookahead(); resetLookahead();
+ }
+ @after { resetLookahead();
+ }:
+((('import'
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.4/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0" /* xtext::Keyword */, null);
+ }
+(
+
+ lv_name=RULE_ID
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.4/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1/@terminal" /* xtext::RuleCall */, "name");
+ }
+
+ {
+ if ($current==null) {
+ $current = factory.create("EPackageImport");
+ associateNodeWithAstElement(currentNode, $current);
+ }
+
+ try {
+ factory.set($current, "name", lv_name, "ID", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ }
+
+))'ns'
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.4/@alternatives/@abstractTokens.0/@abstractTokens.1" /* xtext::Keyword */, null);
+ }
+)(
+
+ lv_nsURI=RULE_STRING
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.4/@alternatives/@abstractTokens.1/@terminal" /* xtext::RuleCall */, "nsURI");
+ }
+
+ {
+ if ($current==null) {
+ $current = factory.create("EPackageImport");
+ associateNodeWithAstElement(currentNode, $current);
+ }
+
+ try {
+ factory.set($current, "nsURI", lv_nsURI, "STRING", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ }
+
+));
+
+
+
+
+
+
+
+// Entry rule entryRuleJavaImport
+entryRuleJavaImport returns [EObject current=null] :
+ { currentNode = createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.5" /* xtext::ParserRule */, currentNode); }
+ iv_ruleJavaImport=ruleJavaImport
+ { $current=$iv_ruleJavaImport.current; }
+ EOF
+;
+
+// Rule JavaImport
+ruleJavaImport returns [EObject current=null]
+ @init { EObject temp=null; setCurrentLookahead(); resetLookahead();
+ }
+ @after { resetLookahead();
+ }:
+((('import'
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.5/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0" /* xtext::Keyword */, null);
+ }
+'java'
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.5/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1" /* xtext::Keyword */, null);
+ }
+)(
+
+ lv_path=RULE_ID
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.5/@alternatives/@abstractTokens.0/@abstractTokens.1/@terminal" /* xtext::RuleCall */, "path");
+ }
+
+ {
+ if ($current==null) {
+ $current = factory.create("JavaImport");
+ associateNodeWithAstElement(currentNode, $current);
+ }
+
+ try {
+ factory.add($current, "path", lv_path, "ID", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ }
+
+))('.'
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.5/@alternatives/@abstractTokens.1/@abstractTokens.0" /* xtext::Keyword */, null);
+ }
+(
+
+ lv_path=RULE_ID
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.5/@alternatives/@abstractTokens.1/@abstractTokens.1/@terminal" /* xtext::RuleCall */, "path");
+ }
+
+ {
+ if ($current==null) {
+ $current = factory.create("JavaImport");
+ associateNodeWithAstElement(currentNode, $current);
+ }
+
+ try {
+ factory.add($current, "path", lv_path, "ID", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ }
+
+))*);
+
+
+
+
+
+
+
+// Entry rule entryRuleExtensionImport
+entryRuleExtensionImport returns [EObject current=null] :
+ { currentNode = createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.6" /* xtext::ParserRule */, currentNode); }
+ iv_ruleExtensionImport=ruleExtensionImport
+ { $current=$iv_ruleExtensionImport.current; }
+ EOF
+;
+
+// Rule ExtensionImport
+ruleExtensionImport returns [EObject current=null]
+ @init { EObject temp=null; setCurrentLookahead(); resetLookahead();
+ }
+ @after { resetLookahead();
+ }:
+((('import'
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.6/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0" /* xtext::Keyword */, null);
+ }
+'extension'
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.6/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1" /* xtext::Keyword */, null);
+ }
+)(
+
+ lv_path=RULE_ID
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.6/@alternatives/@abstractTokens.0/@abstractTokens.1/@terminal" /* xtext::RuleCall */, "path");
+ }
+
+ {
+ if ($current==null) {
+ $current = factory.create("ExtensionImport");
+ associateNodeWithAstElement(currentNode, $current);
+ }
+
+ try {
+ factory.add($current, "path", lv_path, "ID", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ }
+
+))('::'
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.6/@alternatives/@abstractTokens.1/@abstractTokens.0" /* xtext::Keyword */, null);
+ }
+(
+
+ lv_path=RULE_ID
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.6/@alternatives/@abstractTokens.1/@abstractTokens.1/@terminal" /* xtext::RuleCall */, "path");
+ }
+
+ {
+ if ($current==null) {
+ $current = factory.create("ExtensionImport");
+ associateNodeWithAstElement(currentNode, $current);
+ }
+
+ try {
+ factory.add($current, "path", lv_path, "ID", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ }
+
+))*);
+
+
+
+
+
+
+
+// Entry rule entryRuleNamedResource
+entryRuleNamedResource returns [EObject current=null] :
+ { currentNode = createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.7" /* xtext::ParserRule */, currentNode); }
+ iv_ruleNamedResource=ruleNamedResource
+ { $current=$iv_ruleNamedResource.current; }
+ EOF
+;
+
+// Rule NamedResource
+ruleNamedResource returns [EObject current=null]
+ @init { EObject temp=null; setCurrentLookahead(); resetLookahead();
+ }
+ @after { resetLookahead();
+ }:
+((((((((('resource'
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.7/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0" /* xtext::Keyword */, null);
+ }
+(
+
+ lv_name=RULE_ID
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.7/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1/@terminal" /* xtext::RuleCall */, "name");
+ }
+
+ {
+ if ($current==null) {
+ $current = factory.create("NamedResource");
+ associateNodeWithAstElement(currentNode, $current);
+ }
+
+ try {
+ factory.set($current, "name", lv_name, "ID", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ }
+
+))'{'
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.7/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1" /* xtext::Keyword */, null);
+ }
+)'left'
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.7/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1" /* xtext::Keyword */, null);
+ }
+)(('uri'
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.7/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1/@groups.0/@abstractTokens.0" /* xtext::Keyword */, null);
+ }
+(
+
+ lv_leftUri=RULE_STRING
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.7/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1/@groups.0/@abstractTokens.1/@terminal" /* xtext::RuleCall */, "leftUri");
+ }
+
+ {
+ if ($current==null) {
+ $current = factory.create("NamedResource");
+ associateNodeWithAstElement(currentNode, $current);
+ }
+
+ try {
+ factory.set($current, "leftUri", lv_leftUri, "STRING", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ }
+
+))
+ |(
+
+
+ {
+ currentNode=createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.7/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1/@groups.1/@terminal" /* xtext::RuleCall */, currentNode);
+ }
+ lv_leftRoot=ruleCreatedObject
+ {
+ if ($current==null) {
+ $current = factory.create("NamedResource");
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+
+ try {
+ factory.set($current, "leftRoot", lv_leftRoot, "CreatedObject", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)))';'
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.7/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1" /* xtext::Keyword */, null);
+ }
+)'right'
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.7/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1" /* xtext::Keyword */, null);
+ }
+)(('uri'
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.7/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1/@groups.0/@abstractTokens.0" /* xtext::Keyword */, null);
+ }
+(
+
+ lv_rightUri=RULE_STRING
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.7/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1/@groups.0/@abstractTokens.1/@terminal" /* xtext::RuleCall */, "rightUri");
+ }
+
+ {
+ if ($current==null) {
+ $current = factory.create("NamedResource");
+ associateNodeWithAstElement(currentNode, $current);
+ }
+
+ try {
+ factory.set($current, "rightUri", lv_rightUri, "STRING", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ }
+
+))
+ |(
+
+
+ {
+ currentNode=createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.7/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1/@groups.1/@terminal" /* xtext::RuleCall */, currentNode);
+ }
+ lv_rightRoot=ruleCreatedObject
+ {
+ if ($current==null) {
+ $current = factory.create("NamedResource");
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+
+ try {
+ factory.set($current, "rightRoot", lv_rightRoot, "CreatedObject", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)))';'
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.7/@alternatives/@abstractTokens.0/@abstractTokens.1" /* xtext::Keyword */, null);
+ }
+)'}'
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.7/@alternatives/@abstractTokens.1" /* xtext::Keyword */, null);
+ }
+);
+
+
+
+
+
+
+
+
+
+// Entry rule entryRuleObjectRef
+entryRuleObjectRef returns [EObject current=null] :
+ { currentNode = createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.9" /* xtext::ParserRule */, currentNode); }
+ iv_ruleObjectRef=ruleObjectRef
+ { $current=$iv_ruleObjectRef.current; }
+ EOF
+;
+
+// Rule ObjectRef
+ruleObjectRef returns [EObject current=null]
+ @init { EObject temp=null; setCurrentLookahead(); resetLookahead();
+ }
+ @after { resetLookahead();
+ }:
+((('object'
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.9/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0" /* xtext::Keyword */, null);
+ }
+(
+
+ lv_name=RULE_ID
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.9/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1/@terminal" /* xtext::RuleCall */, "name");
+ }
+
+ {
+ if ($current==null) {
+ $current = factory.create("ObjectRef");
+ associateNodeWithAstElement(currentNode, $current);
+ }
+
+ try {
+ factory.set($current, "name", lv_name, "ID", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ }
+
+)?)(((
+
+
+ {
+ if ($current==null) {
+ $current = factory.create("ObjectRef");
+ associateNodeWithAstElement(currentNode, $current);
+ }
+ }
+(
+ RULE_ID {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.9/@alternatives/@abstractTokens.0/@abstractTokens.1/@groups.0/@abstractTokens.0/@terminal" /* xtext::CrossReference */, "leftRes");
+ }
+)
+
+)(
+
+ lv_leftFrag=RULE_FRAGMENT
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.9/@alternatives/@abstractTokens.0/@abstractTokens.1/@groups.0/@abstractTokens.1/@terminal" /* xtext::RuleCall */, "leftFrag");
+ }
+
+ {
+ if ($current==null) {
+ $current = factory.create("ObjectRef");
+ associateNodeWithAstElement(currentNode, $current);
+ }
+
+ try {
+ factory.set($current, "leftFrag", lv_leftFrag, "FRAGMENT", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ }
+
+))
+ |((((('left'
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.9/@alternatives/@abstractTokens.0/@abstractTokens.1/@groups.1/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0" /* xtext::Keyword */, null);
+ }
+(
+
+
+ {
+ if ($current==null) {
+ $current = factory.create("ObjectRef");
+ associateNodeWithAstElement(currentNode, $current);
+ }
+ }
+(
+ RULE_ID {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.9/@alternatives/@abstractTokens.0/@abstractTokens.1/@groups.1/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1/@terminal" /* xtext::CrossReference */, "leftRes");
+ }
+)
+
+))(
+
+ lv_leftFrag=RULE_FRAGMENT
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.9/@alternatives/@abstractTokens.0/@abstractTokens.1/@groups.1/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1/@terminal" /* xtext::RuleCall */, "leftFrag");
+ }
+
+ {
+ if ($current==null) {
+ $current = factory.create("ObjectRef");
+ associateNodeWithAstElement(currentNode, $current);
+ }
+
+ try {
+ factory.set($current, "leftFrag", lv_leftFrag, "FRAGMENT", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ }
+
+))'right'
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.9/@alternatives/@abstractTokens.0/@abstractTokens.1/@groups.1/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1" /* xtext::Keyword */, null);
+ }
+)(
+
+
+ {
+ if ($current==null) {
+ $current = factory.create("ObjectRef");
+ associateNodeWithAstElement(currentNode, $current);
+ }
+ }
+(
+ RULE_ID {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.9/@alternatives/@abstractTokens.0/@abstractTokens.1/@groups.1/@abstractTokens.0/@abstractTokens.1/@terminal" /* xtext::CrossReference */, "rightRes");
+ }
+)
+
+))(
+
+ lv_rightFrag=RULE_FRAGMENT
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.9/@alternatives/@abstractTokens.0/@abstractTokens.1/@groups.1/@abstractTokens.1/@terminal" /* xtext::RuleCall */, "rightFrag");
+ }
+
+ {
+ if ($current==null) {
+ $current = factory.create("ObjectRef");
+ associateNodeWithAstElement(currentNode, $current);
+ }
+
+ try {
+ factory.set($current, "rightFrag", lv_rightFrag, "FRAGMENT", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ }
+
+))))(((('{'
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.9/@alternatives/@abstractTokens.1/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0" /* xtext::Keyword */, null);
+ }
+((
+
+
+ {
+ currentNode=createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.9/@alternatives/@abstractTokens.1/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1/@groups.0/@terminal" /* xtext::RuleCall */, currentNode);
+ }
+ lv_assignments=ruleBiSingleAssignment
+ {
+ if ($current==null) {
+ $current = factory.create("ObjectRef");
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+
+ try {
+ factory.add($current, "assignments", lv_assignments, "BiSingleAssignment", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)
+ |(
+
+
+ {
+ currentNode=createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.9/@alternatives/@abstractTokens.1/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1/@groups.1/@terminal" /* xtext::RuleCall */, currentNode);
+ }
+ lv_assignments=ruleBiListAssignment
+ {
+ if ($current==null) {
+ $current = factory.create("ObjectRef");
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+
+ try {
+ factory.add($current, "assignments", lv_assignments, "BiListAssignment", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+))+)('left'
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.9/@alternatives/@abstractTokens.1/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1/@abstractTokens.0" /* xtext::Keyword */, null);
+ }
+(
+
+
+ {
+ currentNode=createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.9/@alternatives/@abstractTokens.1/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1/@abstractTokens.1/@terminal" /* xtext::RuleCall */, currentNode);
+ }
+ lv_leftMig=ruleMigration
+ {
+ if ($current==null) {
+ $current = factory.create("ObjectRef");
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+
+ try {
+ factory.set($current, "leftMig", lv_leftMig, "Migration", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+))?)('right'
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.9/@alternatives/@abstractTokens.1/@abstractTokens.0/@abstractTokens.1/@abstractTokens.0" /* xtext::Keyword */, null);
+ }
+(
+
+
+ {
+ currentNode=createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.9/@alternatives/@abstractTokens.1/@abstractTokens.0/@abstractTokens.1/@abstractTokens.1/@terminal" /* xtext::RuleCall */, currentNode);
+ }
+ lv_rightMig=ruleMigration
+ {
+ if ($current==null) {
+ $current = factory.create("ObjectRef");
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+
+ try {
+ factory.set($current, "rightMig", lv_rightMig, "Migration", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+))?)'}'
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.9/@alternatives/@abstractTokens.1/@abstractTokens.1" /* xtext::Keyword */, null);
+ }
+)?);
+
+
+
+
+
+
+
+
+
+// Entry rule entryRuleBiSingleAssignment
+entryRuleBiSingleAssignment returns [EObject current=null] :
+ { currentNode = createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.11" /* xtext::ParserRule */, currentNode); }
+ iv_ruleBiSingleAssignment=ruleBiSingleAssignment
+ { $current=$iv_ruleBiSingleAssignment.current; }
+ EOF
+;
+
+// Rule BiSingleAssignment
+ruleBiSingleAssignment returns [EObject current=null]
+ @init { EObject temp=null; setCurrentLookahead(); resetLookahead();
+ }
+ @after { resetLookahead();
+ }:
+((((((
+
+ lv_feature=RULE_ID
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.11/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@terminal" /* xtext::RuleCall */, "feature");
+ }
+
+ {
+ if ($current==null) {
+ $current = factory.create("SingleAssignment");
+ associateNodeWithAstElement(currentNode, $current);
+ }
+
+ try {
+ factory.set($current, "feature", lv_feature, "ID", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ }
+
+)'='
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.11/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1" /* xtext::Keyword */, null);
+ }
+)(
+
+
+ {
+ currentNode=createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.11/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1/@terminal" /* xtext::RuleCall */, currentNode);
+ }
+ lv_leftValue=ruleSingleAssignmentValue
+ {
+ if ($current==null) {
+ $current = factory.create("SingleAssignment");
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+
+ try {
+ factory.set($current, "leftValue", lv_leftValue, "SingleAssignmentValue", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+))'|'
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.11/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1" /* xtext::Keyword */, null);
+ }
+)(
+
+
+ {
+ currentNode=createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.11/@alternatives/@abstractTokens.0/@abstractTokens.1/@terminal" /* xtext::RuleCall */, currentNode);
+ }
+ lv_rightValue=ruleSingleAssignmentValue
+ {
+ if ($current==null) {
+ $current = factory.create("SingleAssignment");
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+
+ try {
+ factory.set($current, "rightValue", lv_rightValue, "SingleAssignmentValue", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+))';'
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.11/@alternatives/@abstractTokens.1" /* xtext::Keyword */, null);
+ }
+);
+
+
+
+
+
+
+
+// Entry rule entryRuleBiListAssignment
+entryRuleBiListAssignment returns [EObject current=null] :
+ { currentNode = createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.12" /* xtext::ParserRule */, currentNode); }
+ iv_ruleBiListAssignment=ruleBiListAssignment
+ { $current=$iv_ruleBiListAssignment.current; }
+ EOF
+;
+
+// Rule BiListAssignment
+ruleBiListAssignment returns [EObject current=null]
+ @init { EObject temp=null; setCurrentLookahead(); resetLookahead();
+ }
+ @after { resetLookahead();
+ }:
+((((((((
+
+ lv_feature=RULE_ID
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.12/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@terminal" /* xtext::RuleCall */, "feature");
+ }
+
+ {
+ if ($current==null) {
+ $current = factory.create("ListAssignment");
+ associateNodeWithAstElement(currentNode, $current);
+ }
+
+ try {
+ factory.set($current, "feature", lv_feature, "ID", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ }
+
+)'='
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.12/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1" /* xtext::Keyword */, null);
+ }
+)'['
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.12/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1" /* xtext::Keyword */, null);
+ }
+)((
+
+
+ {
+ currentNode=createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.12/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1/@abstractTokens.0/@terminal" /* xtext::RuleCall */, currentNode);
+ }
+ lv_leftValues=ruleListAssignmentValue
+ {
+ if ($current==null) {
+ $current = factory.create("ListAssignment");
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+
+ try {
+ factory.add($current, "leftValues", lv_leftValues, "ListAssignmentValue", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)(','
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.12/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1/@abstractTokens.1/@abstractTokens.0" /* xtext::Keyword */, null);
+ }
+(
+
+
+ {
+ currentNode=createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.12/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1/@abstractTokens.1/@abstractTokens.1/@terminal" /* xtext::RuleCall */, currentNode);
+ }
+ lv_leftValues=ruleListAssignmentValue
+ {
+ if ($current==null) {
+ $current = factory.create("ListAssignment");
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+
+ try {
+ factory.add($current, "leftValues", lv_leftValues, "ListAssignmentValue", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+))*)?)'|'
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.12/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1" /* xtext::Keyword */, null);
+ }
+)((
+
+
+ {
+ currentNode=createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.12/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1/@abstractTokens.0/@terminal" /* xtext::RuleCall */, currentNode);
+ }
+ lv_rightValues=ruleListAssignmentValue
+ {
+ if ($current==null) {
+ $current = factory.create("ListAssignment");
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+
+ try {
+ factory.add($current, "rightValues", lv_rightValues, "ListAssignmentValue", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)(','
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.12/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1/@abstractTokens.1/@abstractTokens.0" /* xtext::Keyword */, null);
+ }
+(
+
+
+ {
+ currentNode=createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.12/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1/@abstractTokens.1/@abstractTokens.1/@terminal" /* xtext::RuleCall */, currentNode);
+ }
+ lv_rightValues=ruleListAssignmentValue
+ {
+ if ($current==null) {
+ $current = factory.create("ListAssignment");
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+
+ try {
+ factory.add($current, "rightValues", lv_rightValues, "ListAssignmentValue", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+))*)?)']'
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.12/@alternatives/@abstractTokens.0/@abstractTokens.1" /* xtext::Keyword */, null);
+ }
+)';'
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.12/@alternatives/@abstractTokens.1" /* xtext::Keyword */, null);
+ }
+);
+
+
+
+
+
+
+
+// Entry rule entryRuleMonoSingleAssignment
+entryRuleMonoSingleAssignment returns [EObject current=null] :
+ { currentNode = createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.13" /* xtext::ParserRule */, currentNode); }
+ iv_ruleMonoSingleAssignment=ruleMonoSingleAssignment
+ { $current=$iv_ruleMonoSingleAssignment.current; }
+ EOF
+;
+
+// Rule MonoSingleAssignment
+ruleMonoSingleAssignment returns [EObject current=null]
+ @init { EObject temp=null; setCurrentLookahead(); resetLookahead();
+ }
+ @after { resetLookahead();
+ }:
+((((
+
+ lv_feature=RULE_ID
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.13/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@terminal" /* xtext::RuleCall */, "feature");
+ }
+
+ {
+ if ($current==null) {
+ $current = factory.create("SingleAssignment");
+ associateNodeWithAstElement(currentNode, $current);
+ }
+
+ try {
+ factory.set($current, "feature", lv_feature, "ID", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ }
+
+)'='
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.13/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1" /* xtext::Keyword */, null);
+ }
+)(
+
+
+ {
+ currentNode=createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.13/@alternatives/@abstractTokens.0/@abstractTokens.1/@terminal" /* xtext::RuleCall */, currentNode);
+ }
+ lv_leftValue=ruleSingleAssignmentValue
+ {
+ if ($current==null) {
+ $current = factory.create("SingleAssignment");
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+
+ try {
+ factory.set($current, "leftValue", lv_leftValue, "SingleAssignmentValue", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+))';'
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.13/@alternatives/@abstractTokens.1" /* xtext::Keyword */, null);
+ }
+);
+
+
+
+
+
+
+
+// Entry rule entryRuleMonoListAssignment
+entryRuleMonoListAssignment returns [EObject current=null] :
+ { currentNode = createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.14" /* xtext::ParserRule */, currentNode); }
+ iv_ruleMonoListAssignment=ruleMonoListAssignment
+ { $current=$iv_ruleMonoListAssignment.current; }
+ EOF
+;
+
+// Rule MonoListAssignment
+ruleMonoListAssignment returns [EObject current=null]
+ @init { EObject temp=null; setCurrentLookahead(); resetLookahead();
+ }
+ @after { resetLookahead();
+ }:
+((((((
+
+ lv_feature=RULE_ID
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.14/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@terminal" /* xtext::RuleCall */, "feature");
+ }
+
+ {
+ if ($current==null) {
+ $current = factory.create("ListAssignment");
+ associateNodeWithAstElement(currentNode, $current);
+ }
+
+ try {
+ factory.set($current, "feature", lv_feature, "ID", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ }
+
+)'='
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.14/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1" /* xtext::Keyword */, null);
+ }
+)'['
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.14/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1" /* xtext::Keyword */, null);
+ }
+)((
+
+
+ {
+ currentNode=createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.14/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1/@abstractTokens.0/@terminal" /* xtext::RuleCall */, currentNode);
+ }
+ lv_leftValues=ruleAssignmentValue
+ {
+ if ($current==null) {
+ $current = factory.create("ListAssignment");
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+
+ try {
+ factory.add($current, "leftValues", lv_leftValues, "AssignmentValue", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)(','
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.14/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1/@abstractTokens.1/@abstractTokens.0" /* xtext::Keyword */, null);
+ }
+(
+
+
+ {
+ currentNode=createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.14/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1/@abstractTokens.1/@abstractTokens.1/@terminal" /* xtext::RuleCall */, currentNode);
+ }
+ lv_leftValues=ruleAssignmentValue
+ {
+ if ($current==null) {
+ $current = factory.create("ListAssignment");
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+
+ try {
+ factory.add($current, "leftValues", lv_leftValues, "AssignmentValue", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+))*)?)']'
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.14/@alternatives/@abstractTokens.0/@abstractTokens.1" /* xtext::Keyword */, null);
+ }
+)';'
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.14/@alternatives/@abstractTokens.1" /* xtext::Keyword */, null);
+ }
+);
+
+
+
+
+
+
+
+// Entry rule entryRuleAssignmentValue
+entryRuleAssignmentValue returns [EObject current=null] :
+ { currentNode = createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.15" /* xtext::ParserRule */, currentNode); }
+ iv_ruleAssignmentValue=ruleAssignmentValue
+ { $current=$iv_ruleAssignmentValue.current; }
+ EOF
+;
+
+// Rule AssignmentValue
+ruleAssignmentValue returns [EObject current=null]
+ @init { EObject temp=null; setCurrentLookahead(); resetLookahead();
+ }
+ @after { resetLookahead();
+ }:
+((((
+
+ lv_value=RULE_STRING
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.15/@alternatives/@groups.0/@groups.0/@groups.0/@terminal" /* xtext::RuleCall */, "value");
+ }
+
+ {
+ if ($current==null) {
+ $current = factory.create("AssignmentValue");
+ associateNodeWithAstElement(currentNode, $current);
+ }
+
+ try {
+ factory.set($current, "value", lv_value, "STRING", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ }
+
+)
+ |((
+
+
+ {
+ if ($current==null) {
+ $current = factory.create("AssignmentValue");
+ associateNodeWithAstElement(currentNode, $current);
+ }
+ }
+(
+ RULE_ID {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.15/@alternatives/@groups.0/@groups.0/@groups.1/@abstractTokens.0/@terminal" /* xtext::CrossReference */, "refObject");
+ }
+)
+
+)(('.'
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.15/@alternatives/@groups.0/@groups.0/@groups.1/@abstractTokens.1/@abstractTokens.0/@abstractTokens.0" /* xtext::Keyword */, null);
+ }
+(
+
+ lv_refFeature=RULE_ID
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.15/@alternatives/@groups.0/@groups.0/@groups.1/@abstractTokens.1/@abstractTokens.0/@abstractTokens.1/@terminal" /* xtext::RuleCall */, "refFeature");
+ }
+
+ {
+ if ($current==null) {
+ $current = factory.create("AssignmentValue");
+ associateNodeWithAstElement(currentNode, $current);
+ }
+
+ try {
+ factory.set($current, "refFeature", lv_refFeature, "ID", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ }
+
+))(('['
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.15/@alternatives/@groups.0/@groups.0/@groups.1/@abstractTokens.1/@abstractTokens.1/@abstractTokens.0/@abstractTokens.0" /* xtext::Keyword */, null);
+ }
+(
+
+ lv_refIndex=RULE_INT
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.15/@alternatives/@groups.0/@groups.0/@groups.1/@abstractTokens.1/@abstractTokens.1/@abstractTokens.0/@abstractTokens.1/@terminal" /* xtext::RuleCall */, "refIndex");
+ }
+
+ {
+ if ($current==null) {
+ $current = factory.create("AssignmentValue");
+ associateNodeWithAstElement(currentNode, $current);
+ }
+
+ try {
+ factory.set($current, "refIndex", lv_refIndex, "INT", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ }
+
+))']'
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.15/@alternatives/@groups.0/@groups.0/@groups.1/@abstractTokens.1/@abstractTokens.1/@abstractTokens.1" /* xtext::Keyword */, null);
+ }
+)?)?))
+ |(
+
+
+ {
+ currentNode=createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.15/@alternatives/@groups.0/@groups.1/@terminal" /* xtext::RuleCall */, currentNode);
+ }
+ lv_newObject=ruleCreatedObject
+ {
+ if ($current==null) {
+ $current = factory.create("AssignmentValue");
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+
+ try {
+ factory.set($current, "newObject", lv_newObject, "CreatedObject", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+))
+ |((
+
+
+ {
+ if ($current==null) {
+ $current = factory.create("AssignmentValue");
+ associateNodeWithAstElement(currentNode, $current);
+ }
+ }
+(
+ RULE_ID {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.15/@alternatives/@groups.1/@abstractTokens.0/@terminal" /* xtext::CrossReference */, "import");
+ }
+)
+
+)(
+
+ lv_impFrag=RULE_FRAGMENT
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.15/@alternatives/@groups.1/@abstractTokens.1/@terminal" /* xtext::RuleCall */, "impFrag");
+ }
+
+ {
+ if ($current==null) {
+ $current = factory.create("AssignmentValue");
+ associateNodeWithAstElement(currentNode, $current);
+ }
+
+ try {
+ factory.set($current, "impFrag", lv_impFrag, "FRAGMENT", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ }
+
+)));
+
+
+
+
+
+
+
+// Entry rule entryRuleListAssignmentValue
+entryRuleListAssignmentValue returns [EObject current=null] :
+ { currentNode = createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.16" /* xtext::ParserRule */, currentNode); }
+ iv_ruleListAssignmentValue=ruleListAssignmentValue
+ { $current=$iv_ruleListAssignmentValue.current; }
+ EOF
+;
+
+// Rule ListAssignmentValue
+ruleListAssignmentValue returns [EObject current=null]
+ @init { EObject temp=null; setCurrentLookahead(); resetLookahead();
+ }
+ @after { resetLookahead();
+ }:
+(((
+
+ lv_index=RULE_INT
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.16/@alternatives/@abstractTokens.0/@abstractTokens.0/@terminal" /* xtext::RuleCall */, "index");
+ }
+
+ {
+ if ($current==null) {
+ $current = factory.create("AssignmentValue");
+ associateNodeWithAstElement(currentNode, $current);
+ }
+
+ try {
+ factory.set($current, "index", lv_index, "INT", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ }
+
+)':'
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.16/@alternatives/@abstractTokens.0/@abstractTokens.1" /* xtext::Keyword */, null);
+ }
+)(((((('['
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.16/@alternatives/@abstractTokens.1/@groups.0/@groups.0/@groups.0/@groups.0/@abstractTokens.0/@abstractTokens.0" /* xtext::Keyword */, null);
+ }
+(
+
+ lv_refIndex=RULE_INT
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.16/@alternatives/@abstractTokens.1/@groups.0/@groups.0/@groups.0/@groups.0/@abstractTokens.0/@abstractTokens.1/@terminal" /* xtext::RuleCall */, "refIndex");
+ }
+
+ {
+ if ($current==null) {
+ $current = factory.create("AssignmentValue");
+ associateNodeWithAstElement(currentNode, $current);
+ }
+
+ try {
+ factory.set($current, "refIndex", lv_refIndex, "INT", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ }
+
+))']'
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.16/@alternatives/@abstractTokens.1/@groups.0/@groups.0/@groups.0/@groups.0/@abstractTokens.1" /* xtext::Keyword */, null);
+ }
+)
+ |(
+
+ lv_value=RULE_STRING
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.16/@alternatives/@abstractTokens.1/@groups.0/@groups.0/@groups.0/@groups.1/@terminal" /* xtext::RuleCall */, "value");
+ }
+
+ {
+ if ($current==null) {
+ $current = factory.create("AssignmentValue");
+ associateNodeWithAstElement(currentNode, $current);
+ }
+
+ try {
+ factory.set($current, "value", lv_value, "STRING", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ }
+
+))
+ |((
+
+
+ {
+ if ($current==null) {
+ $current = factory.create("AssignmentValue");
+ associateNodeWithAstElement(currentNode, $current);
+ }
+ }
+(
+ RULE_ID {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.16/@alternatives/@abstractTokens.1/@groups.0/@groups.0/@groups.1/@abstractTokens.0/@terminal" /* xtext::CrossReference */, "refObject");
+ }
+)
+
+)(('.'
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.16/@alternatives/@abstractTokens.1/@groups.0/@groups.0/@groups.1/@abstractTokens.1/@abstractTokens.0/@abstractTokens.0" /* xtext::Keyword */, null);
+ }
+(
+
+ lv_refFeature=RULE_ID
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.16/@alternatives/@abstractTokens.1/@groups.0/@groups.0/@groups.1/@abstractTokens.1/@abstractTokens.0/@abstractTokens.1/@terminal" /* xtext::RuleCall */, "refFeature");
+ }
+
+ {
+ if ($current==null) {
+ $current = factory.create("AssignmentValue");
+ associateNodeWithAstElement(currentNode, $current);
+ }
+
+ try {
+ factory.set($current, "refFeature", lv_refFeature, "ID", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ }
+
+))(('['
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.16/@alternatives/@abstractTokens.1/@groups.0/@groups.0/@groups.1/@abstractTokens.1/@abstractTokens.1/@abstractTokens.0/@abstractTokens.0" /* xtext::Keyword */, null);
+ }
+(
+
+ lv_refIndex=RULE_INT
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.16/@alternatives/@abstractTokens.1/@groups.0/@groups.0/@groups.1/@abstractTokens.1/@abstractTokens.1/@abstractTokens.0/@abstractTokens.1/@terminal" /* xtext::RuleCall */, "refIndex");
+ }
+
+ {
+ if ($current==null) {
+ $current = factory.create("AssignmentValue");
+ associateNodeWithAstElement(currentNode, $current);
+ }
+
+ try {
+ factory.set($current, "refIndex", lv_refIndex, "INT", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ }
+
+))']'
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.16/@alternatives/@abstractTokens.1/@groups.0/@groups.0/@groups.1/@abstractTokens.1/@abstractTokens.1/@abstractTokens.1" /* xtext::Keyword */, null);
+ }
+)?)?))
+ |(
+
+
+ {
+ currentNode=createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.16/@alternatives/@abstractTokens.1/@groups.0/@groups.1/@terminal" /* xtext::RuleCall */, currentNode);
+ }
+ lv_newObject=ruleCreatedObject
+ {
+ if ($current==null) {
+ $current = factory.create("AssignmentValue");
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+
+ try {
+ factory.set($current, "newObject", lv_newObject, "CreatedObject", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+))
+ |((
+
+
+ {
+ if ($current==null) {
+ $current = factory.create("AssignmentValue");
+ associateNodeWithAstElement(currentNode, $current);
+ }
+ }
+(
+ RULE_ID {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.16/@alternatives/@abstractTokens.1/@groups.1/@abstractTokens.0/@terminal" /* xtext::CrossReference */, "import");
+ }
+)
+
+)(
+
+ lv_impFrag=RULE_FRAGMENT
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.16/@alternatives/@abstractTokens.1/@groups.1/@abstractTokens.1/@terminal" /* xtext::RuleCall */, "impFrag");
+ }
+
+ {
+ if ($current==null) {
+ $current = factory.create("AssignmentValue");
+ associateNodeWithAstElement(currentNode, $current);
+ }
+
+ try {
+ factory.set($current, "impFrag", lv_impFrag, "FRAGMENT", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ }
+
+))));
+
+
+
+
+
+
+
+// Entry rule entryRuleSingleAssignmentValue
+entryRuleSingleAssignmentValue returns [EObject current=null] :
+ { currentNode = createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.17" /* xtext::ParserRule */, currentNode); }
+ iv_ruleSingleAssignmentValue=ruleSingleAssignmentValue
+ { $current=$iv_ruleSingleAssignmentValue.current; }
+ EOF
+;
+
+// Rule SingleAssignmentValue
+ruleSingleAssignmentValue returns [EObject current=null]
+ @init { EObject temp=null; setCurrentLookahead(); resetLookahead();
+ }
+ @after { resetLookahead();
+ }:
+(((((
+
+ lv_keyword='null'
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.17/@alternatives/@groups.0/@groups.0/@groups.0/@groups.0/@terminal" /* xtext::Keyword */, "keyword");
+ }
+
+ {
+ if ($current==null) {
+ $current = factory.create("AssignmentValue");
+ associateNodeWithAstElement(currentNode, $current);
+ }
+
+ try {
+ factory.set($current, "keyword", input.LT(-1), "null", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ }
+
+)
+ |(
+
+ lv_value=RULE_STRING
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.17/@alternatives/@groups.0/@groups.0/@groups.0/@groups.1/@terminal" /* xtext::RuleCall */, "value");
+ }
+
+ {
+ if ($current==null) {
+ $current = factory.create("AssignmentValue");
+ associateNodeWithAstElement(currentNode, $current);
+ }
+
+ try {
+ factory.set($current, "value", lv_value, "STRING", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ }
+
+))
+ |((
+
+
+ {
+ if ($current==null) {
+ $current = factory.create("AssignmentValue");
+ associateNodeWithAstElement(currentNode, $current);
+ }
+ }
+(
+ RULE_ID {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.17/@alternatives/@groups.0/@groups.0/@groups.1/@abstractTokens.0/@terminal" /* xtext::CrossReference */, "refObject");
+ }
+)
+
+)(('.'
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.17/@alternatives/@groups.0/@groups.0/@groups.1/@abstractTokens.1/@abstractTokens.0/@abstractTokens.0" /* xtext::Keyword */, null);
+ }
+(
+
+ lv_refFeature=RULE_ID
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.17/@alternatives/@groups.0/@groups.0/@groups.1/@abstractTokens.1/@abstractTokens.0/@abstractTokens.1/@terminal" /* xtext::RuleCall */, "refFeature");
+ }
+
+ {
+ if ($current==null) {
+ $current = factory.create("AssignmentValue");
+ associateNodeWithAstElement(currentNode, $current);
+ }
+
+ try {
+ factory.set($current, "refFeature", lv_refFeature, "ID", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ }
+
+))(('['
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.17/@alternatives/@groups.0/@groups.0/@groups.1/@abstractTokens.1/@abstractTokens.1/@abstractTokens.0/@abstractTokens.0" /* xtext::Keyword */, null);
+ }
+(
+
+ lv_refIndex=RULE_INT
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.17/@alternatives/@groups.0/@groups.0/@groups.1/@abstractTokens.1/@abstractTokens.1/@abstractTokens.0/@abstractTokens.1/@terminal" /* xtext::RuleCall */, "refIndex");
+ }
+
+ {
+ if ($current==null) {
+ $current = factory.create("AssignmentValue");
+ associateNodeWithAstElement(currentNode, $current);
+ }
+
+ try {
+ factory.set($current, "refIndex", lv_refIndex, "INT", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ }
+
+))']'
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.17/@alternatives/@groups.0/@groups.0/@groups.1/@abstractTokens.1/@abstractTokens.1/@abstractTokens.1" /* xtext::Keyword */, null);
+ }
+)?)?))
+ |(
+
+
+ {
+ currentNode=createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.17/@alternatives/@groups.0/@groups.1/@terminal" /* xtext::RuleCall */, currentNode);
+ }
+ lv_newObject=ruleCreatedObject
+ {
+ if ($current==null) {
+ $current = factory.create("AssignmentValue");
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+
+ try {
+ factory.set($current, "newObject", lv_newObject, "CreatedObject", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+))
+ |((
+
+
+ {
+ if ($current==null) {
+ $current = factory.create("AssignmentValue");
+ associateNodeWithAstElement(currentNode, $current);
+ }
+ }
+(
+ RULE_ID {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.17/@alternatives/@groups.1/@abstractTokens.0/@terminal" /* xtext::CrossReference */, "import");
+ }
+)
+
+)(
+
+ lv_impFrag=RULE_FRAGMENT
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.17/@alternatives/@groups.1/@abstractTokens.1/@terminal" /* xtext::RuleCall */, "impFrag");
+ }
+
+ {
+ if ($current==null) {
+ $current = factory.create("AssignmentValue");
+ associateNodeWithAstElement(currentNode, $current);
+ }
+
+ try {
+ factory.set($current, "impFrag", lv_impFrag, "FRAGMENT", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ }
+
+)));
+
+
+
+
+
+
+
+// Entry rule entryRuleCreatedObject
+entryRuleCreatedObject returns [EObject current=null] :
+ { currentNode = createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.18" /* xtext::ParserRule */, currentNode); }
+ iv_ruleCreatedObject=ruleCreatedObject
+ { $current=$iv_ruleCreatedObject.current; }
+ EOF
+;
+
+// Rule CreatedObject
+ruleCreatedObject returns [EObject current=null]
+ @init { EObject temp=null; setCurrentLookahead(); resetLookahead();
+ }
+ @after { resetLookahead();
+ }:
+(((
+ {
+ currentNode=createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.18/@alternatives/@abstractTokens.0/@abstractTokens.0/@groups.0" /* xtext::RuleCall */, currentNode);
+ }
+ this_ObjectNew=ruleObjectNew
+ {
+ $current = $this_ObjectNew.current;
+ currentNode = currentNode.getParent();
+ }
+
+ |
+ {
+ currentNode=createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.18/@alternatives/@abstractTokens.0/@abstractTokens.0/@groups.1" /* xtext::RuleCall */, currentNode);
+ }
+ this_ObjectCopy=ruleObjectCopy
+ {
+ $current = $this_ObjectCopy.current;
+ currentNode = currentNode.getParent();
+ }
+)(
+
+ lv_name=RULE_ID
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.18/@alternatives/@abstractTokens.0/@abstractTokens.1/@terminal" /* xtext::RuleCall */, "name");
+ }
+
+ {
+ if ($current==null) {
+ $current = factory.create("CreatedObject");
+ associateNodeWithAstElement(currentNode, $current);
+ }
+
+ try {
+ factory.set($current, "name", lv_name, "ID", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ }
+
+)?)((('{'
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.18/@alternatives/@abstractTokens.1/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0" /* xtext::Keyword */, null);
+ }
+((
+
+
+ {
+ currentNode=createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.18/@alternatives/@abstractTokens.1/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1/@groups.0/@terminal" /* xtext::RuleCall */, currentNode);
+ }
+ lv_assignments=ruleMonoSingleAssignment
+ {
+ if ($current==null) {
+ $current = factory.create("CreatedObject");
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+
+ try {
+ factory.add($current, "assignments", lv_assignments, "MonoSingleAssignment", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)
+ |(
+
+
+ {
+ currentNode=createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.18/@alternatives/@abstractTokens.1/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1/@groups.1/@terminal" /* xtext::RuleCall */, currentNode);
+ }
+ lv_assignments=ruleMonoListAssignment
+ {
+ if ($current==null) {
+ $current = factory.create("CreatedObject");
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+
+ try {
+ factory.add($current, "assignments", lv_assignments, "MonoListAssignment", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+))+)(
+
+
+ {
+ currentNode=createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.18/@alternatives/@abstractTokens.1/@abstractTokens.0/@abstractTokens.1/@terminal" /* xtext::RuleCall */, currentNode);
+ }
+ lv_leftMig=ruleMigration
+ {
+ if ($current==null) {
+ $current = factory.create("CreatedObject");
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+
+ try {
+ factory.set($current, "leftMig", lv_leftMig, "Migration", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)?)'}'
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.18/@alternatives/@abstractTokens.1/@abstractTokens.1" /* xtext::Keyword */, null);
+ }
+)?);
+
+
+
+
+
+
+
+// Entry rule entryRuleObjectNew
+entryRuleObjectNew returns [EObject current=null] :
+ { currentNode = createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.19" /* xtext::ParserRule */, currentNode); }
+ iv_ruleObjectNew=ruleObjectNew
+ { $current=$iv_ruleObjectNew.current; }
+ EOF
+;
+
+// Rule ObjectNew
+ruleObjectNew returns [EObject current=null]
+ @init { EObject temp=null; setCurrentLookahead(); resetLookahead();
+ }
+ @after { resetLookahead();
+ }:
+(('new'
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.19/@alternatives/@abstractTokens.0/@abstractTokens.0" /* xtext::Keyword */, null);
+ }
+(
+
+
+ {
+ if ($current==null) {
+ $current = factory.create("ObjectNew");
+ associateNodeWithAstElement(currentNode, $current);
+ }
+ }
+(
+ RULE_ID {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.19/@alternatives/@abstractTokens.0/@abstractTokens.1/@terminal" /* xtext::CrossReference */, "import");
+ }
+)
+
+))(
+
+ lv_impFrag=RULE_FRAGMENT
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.19/@alternatives/@abstractTokens.1/@terminal" /* xtext::RuleCall */, "impFrag");
+ }
+
+ {
+ if ($current==null) {
+ $current = factory.create("ObjectNew");
+ associateNodeWithAstElement(currentNode, $current);
+ }
+
+ try {
+ factory.set($current, "impFrag", lv_impFrag, "FRAGMENT", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ }
+
+));
+
+
+
+
+
+
+
+// Entry rule entryRuleObjectCopy
+entryRuleObjectCopy returns [EObject current=null] :
+ { currentNode = createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.20" /* xtext::ParserRule */, currentNode); }
+ iv_ruleObjectCopy=ruleObjectCopy
+ { $current=$iv_ruleObjectCopy.current; }
+ EOF
+;
+
+// Rule ObjectCopy
+ruleObjectCopy returns [EObject current=null]
+ @init { EObject temp=null; setCurrentLookahead(); resetLookahead();
+ }
+ @after { resetLookahead();
+ }:
+(('copy'
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.20/@alternatives/@abstractTokens.0/@abstractTokens.0" /* xtext::Keyword */, null);
+ }
+(
+
+
+ {
+ if ($current==null) {
+ $current = factory.create("ObjectCopy");
+ associateNodeWithAstElement(currentNode, $current);
+ }
+ }
+(
+ RULE_ID {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.20/@alternatives/@abstractTokens.0/@abstractTokens.1/@terminal" /* xtext::CrossReference */, "resource");
+ }
+)
+
+))(
+
+ lv_fragment=RULE_FRAGMENT
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.20/@alternatives/@abstractTokens.1/@terminal" /* xtext::RuleCall */, "fragment");
+ }
+
+ {
+ if ($current==null) {
+ $current = factory.create("ObjectCopy");
+ associateNodeWithAstElement(currentNode, $current);
+ }
+
+ try {
+ factory.set($current, "fragment", lv_fragment, "FRAGMENT", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ }
+
+));
+
+
+
+
+
+
+
+// Entry rule entryRuleMigration
+entryRuleMigration returns [EObject current=null] :
+ { currentNode = createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.22" /* xtext::ParserRule */, currentNode); }
+ iv_ruleMigration=ruleMigration
+ { $current=$iv_ruleMigration.current; }
+ EOF
+;
+
+// Rule Migration
+ruleMigration returns [EObject current=null]
+ @init { EObject temp=null; setCurrentLookahead(); resetLookahead();
+ }
+ @after { resetLookahead();
+ }:
+((('migrate'
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.22/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0" /* xtext::Keyword */, null);
+ }
+(
+
+
+ {
+ currentNode=createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.22/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1/@terminal" /* xtext::RuleCall */, currentNode);
+ }
+ lv_first=ruleExecutable
+ {
+ if ($current==null) {
+ $current = factory.create("Migration");
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+
+ try {
+ factory.set($current, "first", lv_first, "Executable", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)?)(('as'
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.22/@alternatives/@abstractTokens.0/@abstractTokens.1/@groups.0/@abstractTokens.0" /* xtext::Keyword */, null);
+ }
+(
+
+
+ {
+ currentNode=createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.22/@alternatives/@abstractTokens.0/@abstractTokens.1/@groups.0/@abstractTokens.1/@terminal" /* xtext::RuleCall */, currentNode);
+ }
+ lv_asOp=ruleExecutable
+ {
+ if ($current==null) {
+ $current = factory.create("Migration");
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+
+ try {
+ factory.set($current, "asOp", lv_asOp, "Executable", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+))
+ |('each'
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.22/@alternatives/@abstractTokens.0/@abstractTokens.1/@groups.1/@abstractTokens.0" /* xtext::Keyword */, null);
+ }
+(
+
+
+ {
+ currentNode=createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.22/@alternatives/@abstractTokens.0/@abstractTokens.1/@groups.1/@abstractTokens.1/@terminal" /* xtext::RuleCall */, currentNode);
+ }
+ lv_eachOp=ruleExecutable
+ {
+ if ($current==null) {
+ $current = factory.create("Migration");
+ associateNodeWithAstElement(currentNode.getParent(), $current);
+ }
+
+ try {
+ factory.set($current, "eachOp", lv_eachOp, "Executable", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+ }
+
+)))?)';'
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.22/@alternatives/@abstractTokens.1" /* xtext::Keyword */, null);
+ }
+);
+
+
+
+
+
+
+
+// Entry rule entryRuleExecutable
+entryRuleExecutable returns [EObject current=null] :
+ { currentNode = createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.23" /* xtext::ParserRule */, currentNode); }
+ iv_ruleExecutable=ruleExecutable
+ { $current=$iv_ruleExecutable.current; }
+ EOF
+;
+
+// Rule Executable
+ruleExecutable returns [EObject current=null]
+ @init { EObject temp=null; setCurrentLookahead(); resetLookahead();
+ }
+ @after { resetLookahead();
+ }:
+(
+ {
+ currentNode=createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.23/@alternatives/@groups.0" /* xtext::RuleCall */, currentNode);
+ }
+ this_JavaExecutable=ruleJavaExecutable
+ {
+ $current = $this_JavaExecutable.current;
+ currentNode = currentNode.getParent();
+ }
+
+ |
+ {
+ currentNode=createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.23/@alternatives/@groups.1" /* xtext::RuleCall */, currentNode);
+ }
+ this_ExpressionExecutable=ruleExpressionExecutable
+ {
+ $current = $this_ExpressionExecutable.current;
+ currentNode = currentNode.getParent();
+ }
+);
+
+
+
+
+
+
+
+// Entry rule entryRuleJavaExecutable
+entryRuleJavaExecutable returns [EObject current=null] :
+ { currentNode = createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.24" /* xtext::ParserRule */, currentNode); }
+ iv_ruleJavaExecutable=ruleJavaExecutable
+ { $current=$iv_ruleJavaExecutable.current; }
+ EOF
+;
+
+// Rule JavaExecutable
+ruleJavaExecutable returns [EObject current=null]
+ @init { EObject temp=null; setCurrentLookahead(); resetLookahead();
+ }
+ @after { resetLookahead();
+ }:
+((('java'
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.24/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0" /* xtext::Keyword */, null);
+ }
+(
+
+ lv_method=RULE_ID
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.24/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1/@terminal" /* xtext::RuleCall */, "method");
+ }
+
+ {
+ if ($current==null) {
+ $current = factory.create("JavaExecutable");
+ associateNodeWithAstElement(currentNode, $current);
+ }
+
+ try {
+ factory.set($current, "method", lv_method, "ID", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ }
+
+))'('
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.24/@alternatives/@abstractTokens.0/@abstractTokens.1" /* xtext::Keyword */, null);
+ }
+)')'
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.24/@alternatives/@abstractTokens.1" /* xtext::Keyword */, null);
+ }
+);
+
+
+
+
+
+
+
+// Entry rule entryRuleExpressionExecutable
+entryRuleExpressionExecutable returns [EObject current=null] :
+ { currentNode = createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.25" /* xtext::ParserRule */, currentNode); }
+ iv_ruleExpressionExecutable=ruleExpressionExecutable
+ { $current=$iv_ruleExpressionExecutable.current; }
+ EOF
+;
+
+// Rule ExpressionExecutable
+ruleExpressionExecutable returns [EObject current=null]
+ @init { EObject temp=null; setCurrentLookahead(); resetLookahead();
+ }
+ @after { resetLookahead();
+ }:
+(
+
+ lv_exprstr=RULE_STRING
+ {
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.25/@alternatives/@terminal" /* xtext::RuleCall */, "exprstr");
+ }
+
+ {
+ if ($current==null) {
+ $current = factory.create("ExpressionExecutable");
+ associateNodeWithAstElement(currentNode, $current);
+ }
+
+ try {
+ factory.set($current, "exprstr", lv_exprstr, "STRING", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ }
+
+);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+RULE_FRAGMENT : '#' ('a'..'z'|'A'..'Z'|'0'..'9'|'_'|'/'|'['|']'|'{'|'}'|'.'|'@')+;
+
+RULE_ID : ('^')?('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'_'|'0'..'9')*;
+
+RULE_INT : ('0'..'9')+;
+
+RULE_STRING : '"' ( '\\' ('b'|'t'|'n'|'f'|'r'|'\"'|'\''|'\\') | ~('\\'|'"') )* '"' | '\'' ( '\\' ('b'|'t'|'n'|'f'|'r'|'\"'|'\''|'\\') | ~('\\'|'\'') )* '\'';
+
+RULE_ML_COMMENT : '/*' ( options {greedy=false;} : . )* '*/' {$channel=HIDDEN;};
+
+RULE_SL_COMMENT : '//' ~('\n'|'\r')* ('\r'? '\n')? {$channel=HIDDEN;};
+
+RULE_WS : (' '|'\t'|'\r'|'\n')+ {$channel=HIDDEN;};
+
+RULE_ANY_OTHER : .;
+
+
diff --git a/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.tokens b/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.tokens
new file mode 100644
index 0000000..845c913
--- /dev/null
+++ b/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.tokens
@@ -0,0 +1,37 @@
+RULE_ML_COMMENT=8
+RULE_ID=4
+RULE_WS=10
+RULE_INT=7
+RULE_STRING=5
+RULE_ANY_OTHER=11
+RULE_SL_COMMENT=9
+RULE_FRAGMENT=6
+'migrate'=36
+'extension'=20
+';'=24
+']'=31
+','=30
+'object'=26
+'ns'=17
+'='=27
+'['=29
+'::'=21
+'|'=28
+')'=40
+'right'=25
+'left'=23
+'import'=15
+'{'=13
+'epatch'=12
+'resource'=22
+'('=39
+'java'=18
+'as'=37
+'copy'=35
+':'=32
+'new'=34
+'each'=38
+'.'=19
+'uri'=16
+'}'=14
+'null'=33
diff --git a/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguageLexer.java b/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguageLexer.java
new file mode 100644
index 0000000..0739f5a
--- /dev/null
+++ b/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguageLexer.java
@@ -0,0 +1,2040 @@
+package org.eclipse.xtext.parser.epatch.parser.antlr.internal;
+
+// Hack: Use our own Lexer superclass by means of import.
+// Currently there is no other way to specify the superclass for the lexer.
+import org.eclipse.xtext.parser.antlr.Lexer;
+
+
+import org.antlr.runtime.*;
+import java.util.Stack;
+import java.util.List;
+import java.util.ArrayList;
+
+public class InternalEpatchTestLanguageLexer extends Lexer {
+ public static final int T21=21;
+ public static final int RULE_ML_COMMENT=8;
+ public static final int T14=14;
+ public static final int T29=29;
+ public static final int RULE_ID=4;
+ public static final int T33=33;
+ public static final int T22=22;
+ public static final int T36=36;
+ public static final int RULE_STRING=5;
+ public static final int T12=12;
+ public static final int T28=28;
+ public static final int T23=23;
+ public static final int T40=40;
+ public static final int T35=35;
+ public static final int T13=13;
+ public static final int T34=34;
+ public static final int T20=20;
+ public static final int T25=25;
+ public static final int T37=37;
+ public static final int T18=18;
+ public static final int RULE_WS=10;
+ public static final int T26=26;
+ public static final int T15=15;
+ public static final int RULE_INT=7;
+ public static final int EOF=-1;
+ public static final int T32=32;
+ public static final int T17=17;
+ public static final int Tokens=41;
+ public static final int T31=31;
+ public static final int RULE_ANY_OTHER=11;
+ public static final int T16=16;
+ public static final int T38=38;
+ public static final int T27=27;
+ public static final int RULE_SL_COMMENT=9;
+ public static final int RULE_FRAGMENT=6;
+ public static final int T30=30;
+ public static final int T24=24;
+ public static final int T19=19;
+ public static final int T39=39;
+ public InternalEpatchTestLanguageLexer() {;}
+ public InternalEpatchTestLanguageLexer(CharStream input) {
+ super(input);
+ }
+ public String getGrammarFileName() { return "../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g"; }
+
+ // $ANTLR start T12
+ public final void mT12() throws RecognitionException {
+ try {
+ int _type = T12;
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:10:5: ( 'epatch' )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:10:7: 'epatch'
+ {
+ match("epatch");
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T12
+
+ // $ANTLR start T13
+ public final void mT13() throws RecognitionException {
+ try {
+ int _type = T13;
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:11:5: ( '{' )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:11:7: '{'
+ {
+ match('{');
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T13
+
+ // $ANTLR start T14
+ public final void mT14() throws RecognitionException {
+ try {
+ int _type = T14;
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:12:5: ( '}' )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:12:7: '}'
+ {
+ match('}');
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T14
+
+ // $ANTLR start T15
+ public final void mT15() throws RecognitionException {
+ try {
+ int _type = T15;
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:13:5: ( 'import' )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:13:7: 'import'
+ {
+ match("import");
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T15
+
+ // $ANTLR start T16
+ public final void mT16() throws RecognitionException {
+ try {
+ int _type = T16;
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:14:5: ( 'uri' )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:14:7: 'uri'
+ {
+ match("uri");
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T16
+
+ // $ANTLR start T17
+ public final void mT17() throws RecognitionException {
+ try {
+ int _type = T17;
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:15:5: ( 'ns' )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:15:7: 'ns'
+ {
+ match("ns");
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T17
+
+ // $ANTLR start T18
+ public final void mT18() throws RecognitionException {
+ try {
+ int _type = T18;
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:16:5: ( 'java' )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:16:7: 'java'
+ {
+ match("java");
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T18
+
+ // $ANTLR start T19
+ public final void mT19() throws RecognitionException {
+ try {
+ int _type = T19;
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:17:5: ( '.' )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:17:7: '.'
+ {
+ match('.');
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T19
+
+ // $ANTLR start T20
+ public final void mT20() throws RecognitionException {
+ try {
+ int _type = T20;
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:18:5: ( 'extension' )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:18:7: 'extension'
+ {
+ match("extension");
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T20
+
+ // $ANTLR start T21
+ public final void mT21() throws RecognitionException {
+ try {
+ int _type = T21;
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:19:5: ( '::' )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:19:7: '::'
+ {
+ match("::");
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T21
+
+ // $ANTLR start T22
+ public final void mT22() throws RecognitionException {
+ try {
+ int _type = T22;
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:20:5: ( 'resource' )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:20:7: 'resource'
+ {
+ match("resource");
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T22
+
+ // $ANTLR start T23
+ public final void mT23() throws RecognitionException {
+ try {
+ int _type = T23;
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:21:5: ( 'left' )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:21:7: 'left'
+ {
+ match("left");
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T23
+
+ // $ANTLR start T24
+ public final void mT24() throws RecognitionException {
+ try {
+ int _type = T24;
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:22:5: ( ';' )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:22:7: ';'
+ {
+ match(';');
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T24
+
+ // $ANTLR start T25
+ public final void mT25() throws RecognitionException {
+ try {
+ int _type = T25;
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:23:5: ( 'right' )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:23:7: 'right'
+ {
+ match("right");
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T25
+
+ // $ANTLR start T26
+ public final void mT26() throws RecognitionException {
+ try {
+ int _type = T26;
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:24:5: ( 'object' )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:24:7: 'object'
+ {
+ match("object");
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T26
+
+ // $ANTLR start T27
+ public final void mT27() throws RecognitionException {
+ try {
+ int _type = T27;
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:25:5: ( '=' )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:25:7: '='
+ {
+ match('=');
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T27
+
+ // $ANTLR start T28
+ public final void mT28() throws RecognitionException {
+ try {
+ int _type = T28;
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:26:5: ( '|' )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:26:7: '|'
+ {
+ match('|');
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T28
+
+ // $ANTLR start T29
+ public final void mT29() throws RecognitionException {
+ try {
+ int _type = T29;
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:27:5: ( '[' )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:27:7: '['
+ {
+ match('[');
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T29
+
+ // $ANTLR start T30
+ public final void mT30() throws RecognitionException {
+ try {
+ int _type = T30;
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:28:5: ( ',' )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:28:7: ','
+ {
+ match(',');
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T30
+
+ // $ANTLR start T31
+ public final void mT31() throws RecognitionException {
+ try {
+ int _type = T31;
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:29:5: ( ']' )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:29:7: ']'
+ {
+ match(']');
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T31
+
+ // $ANTLR start T32
+ public final void mT32() throws RecognitionException {
+ try {
+ int _type = T32;
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:30:5: ( ':' )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:30:7: ':'
+ {
+ match(':');
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T32
+
+ // $ANTLR start T33
+ public final void mT33() throws RecognitionException {
+ try {
+ int _type = T33;
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:31:5: ( 'null' )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:31:7: 'null'
+ {
+ match("null");
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T33
+
+ // $ANTLR start T34
+ public final void mT34() throws RecognitionException {
+ try {
+ int _type = T34;
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:32:5: ( 'new' )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:32:7: 'new'
+ {
+ match("new");
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T34
+
+ // $ANTLR start T35
+ public final void mT35() throws RecognitionException {
+ try {
+ int _type = T35;
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:33:5: ( 'copy' )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:33:7: 'copy'
+ {
+ match("copy");
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T35
+
+ // $ANTLR start T36
+ public final void mT36() throws RecognitionException {
+ try {
+ int _type = T36;
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:34:5: ( 'migrate' )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:34:7: 'migrate'
+ {
+ match("migrate");
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T36
+
+ // $ANTLR start T37
+ public final void mT37() throws RecognitionException {
+ try {
+ int _type = T37;
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:35:5: ( 'as' )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:35:7: 'as'
+ {
+ match("as");
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T37
+
+ // $ANTLR start T38
+ public final void mT38() throws RecognitionException {
+ try {
+ int _type = T38;
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:36:5: ( 'each' )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:36:7: 'each'
+ {
+ match("each");
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T38
+
+ // $ANTLR start T39
+ public final void mT39() throws RecognitionException {
+ try {
+ int _type = T39;
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:37:5: ( '(' )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:37:7: '('
+ {
+ match('(');
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T39
+
+ // $ANTLR start T40
+ public final void mT40() throws RecognitionException {
+ try {
+ int _type = T40;
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:38:5: ( ')' )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:38:7: ')'
+ {
+ match(')');
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end T40
+
+ // $ANTLR start RULE_FRAGMENT
+ public final void mRULE_FRAGMENT() throws RecognitionException {
+ try {
+ int _type = RULE_FRAGMENT;
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2540:15: ( '#' ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '_' | '/' | '[' | ']' | '{' | '}' | '.' | '@' )+ )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2540:17: '#' ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '_' | '/' | '[' | ']' | '{' | '}' | '.' | '@' )+
+ {
+ match('#');
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2540:21: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '_' | '/' | '[' | ']' | '{' | '}' | '.' | '@' )+
+ int cnt1=0;
+ loop1:
+ do {
+ int alt1=2;
+ int LA1_0 = input.LA(1);
+
+ if ( ((LA1_0>='.' && LA1_0<='9')||(LA1_0>='@' && LA1_0<='[')||LA1_0==']'||LA1_0=='_'||(LA1_0>='a' && LA1_0<='{')||LA1_0=='}') ) {
+ alt1=1;
+ }
+
+
+ switch (alt1) {
+ case 1 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:
+ {
+ if ( (input.LA(1)>='.' && input.LA(1)<='9')||(input.LA(1)>='@' && input.LA(1)<='[')||input.LA(1)==']'||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='{')||input.LA(1)=='}' ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse =
+ new MismatchedSetException(null,input);
+ recover(mse); throw mse;
+ }
+
+
+ }
+ break;
+
+ default :
+ if ( cnt1 >= 1 ) break loop1;
+ EarlyExitException eee =
+ new EarlyExitException(1, input);
+ throw eee;
+ }
+ cnt1++;
+ } while (true);
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end RULE_FRAGMENT
+
+ // $ANTLR start RULE_ID
+ public final void mRULE_ID() throws RecognitionException {
+ try {
+ int _type = RULE_ID;
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2542:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2542:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2542:11: ( '^' )?
+ int alt2=2;
+ int LA2_0 = input.LA(1);
+
+ if ( (LA2_0=='^') ) {
+ alt2=1;
+ }
+ switch (alt2) {
+ case 1 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2542:12: '^'
+ {
+ match('^');
+
+ }
+ break;
+
+ }
+
+ if ( (input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse =
+ new MismatchedSetException(null,input);
+ recover(mse); throw mse;
+ }
+
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2542:41: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
+ loop3:
+ do {
+ int alt3=2;
+ int LA3_0 = input.LA(1);
+
+ if ( ((LA3_0>='0' && LA3_0<='9')||(LA3_0>='A' && LA3_0<='Z')||LA3_0=='_'||(LA3_0>='a' && LA3_0<='z')) ) {
+ alt3=1;
+ }
+
+
+ switch (alt3) {
+ case 1 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:
+ {
+ if ( (input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse =
+ new MismatchedSetException(null,input);
+ recover(mse); throw mse;
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop3;
+ }
+ } while (true);
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end RULE_ID
+
+ // $ANTLR start RULE_INT
+ public final void mRULE_INT() throws RecognitionException {
+ try {
+ int _type = RULE_INT;
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2544:10: ( ( '0' .. '9' )+ )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2544:12: ( '0' .. '9' )+
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2544:12: ( '0' .. '9' )+
+ int cnt4=0;
+ loop4:
+ do {
+ int alt4=2;
+ int LA4_0 = input.LA(1);
+
+ if ( ((LA4_0>='0' && LA4_0<='9')) ) {
+ alt4=1;
+ }
+
+
+ switch (alt4) {
+ case 1 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2544:13: '0' .. '9'
+ {
+ matchRange('0','9');
+
+ }
+ break;
+
+ default :
+ if ( cnt4 >= 1 ) break loop4;
+ EarlyExitException eee =
+ new EarlyExitException(4, input);
+ throw eee;
+ }
+ cnt4++;
+ } while (true);
+
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end RULE_INT
+
+ // $ANTLR start RULE_STRING
+ public final void mRULE_STRING() throws RecognitionException {
+ try {
+ int _type = RULE_STRING;
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2546:13: ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' ) | ~ ( '\\\\' | '\"' ) )* '\"' | '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' ) | ~ ( '\\\\' | '\\'' ) )* '\\'' )
+ int alt7=2;
+ int LA7_0 = input.LA(1);
+
+ if ( (LA7_0=='\"') ) {
+ alt7=1;
+ }
+ else if ( (LA7_0=='\'') ) {
+ alt7=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("2546:1: RULE_STRING : ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' ) | ~ ( '\\\\' | '\"' ) )* '\"' | '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' ) | ~ ( '\\\\' | '\\'' ) )* '\\'' );", 7, 0, input);
+
+ throw nvae;
+ }
+ switch (alt7) {
+ case 1 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2546:15: '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' ) | ~ ( '\\\\' | '\"' ) )* '\"'
+ {
+ match('\"');
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2546:19: ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' ) | ~ ( '\\\\' | '\"' ) )*
+ loop5:
+ do {
+ int alt5=3;
+ int LA5_0 = input.LA(1);
+
+ if ( (LA5_0=='\\') ) {
+ alt5=1;
+ }
+ else if ( ((LA5_0>='\u0000' && LA5_0<='!')||(LA5_0>='#' && LA5_0<='[')||(LA5_0>=']' && LA5_0<='\uFFFE')) ) {
+ alt5=2;
+ }
+
+
+ switch (alt5) {
+ case 1 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2546:21: '\\\\' ( '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 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2546:65: ~ ( '\\\\' | '\"' )
+ {
+ if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFE') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse =
+ new MismatchedSetException(null,input);
+ recover(mse); throw mse;
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop5;
+ }
+ } while (true);
+
+ match('\"');
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2546:101: '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' ) | ~ ( '\\\\' | '\\'' ) )* '\\''
+ {
+ match('\'');
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2546:106: ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' ) | ~ ( '\\\\' | '\\'' ) )*
+ loop6:
+ do {
+ int alt6=3;
+ int LA6_0 = input.LA(1);
+
+ if ( (LA6_0=='\\') ) {
+ alt6=1;
+ }
+ else if ( ((LA6_0>='\u0000' && LA6_0<='&')||(LA6_0>='(' && LA6_0<='[')||(LA6_0>=']' && LA6_0<='\uFFFE')) ) {
+ alt6=2;
+ }
+
+
+ switch (alt6) {
+ case 1 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2546:108: '\\\\' ( '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 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2546:152: ~ ( '\\\\' | '\\'' )
+ {
+ if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFE') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse =
+ new MismatchedSetException(null,input);
+ recover(mse); throw mse;
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop6;
+ }
+ } while (true);
+
+ match('\'');
+
+ }
+ break;
+
+ }
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end RULE_STRING
+
+ // $ANTLR start RULE_ML_COMMENT
+ public final void mRULE_ML_COMMENT() throws RecognitionException {
+ try {
+ int _type = RULE_ML_COMMENT;
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2548:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2548:19: '/*' ( options {greedy=false; } : . )* '*/'
+ {
+ match("/*");
+
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2548:24: ( options {greedy=false; } : . )*
+ loop8:
+ do {
+ int alt8=2;
+ int LA8_0 = input.LA(1);
+
+ if ( (LA8_0=='*') ) {
+ int LA8_1 = input.LA(2);
+
+ if ( (LA8_1=='/') ) {
+ alt8=2;
+ }
+ else if ( ((LA8_1>='\u0000' && LA8_1<='.')||(LA8_1>='0' && LA8_1<='\uFFFE')) ) {
+ alt8=1;
+ }
+
+
+ }
+ else if ( ((LA8_0>='\u0000' && LA8_0<=')')||(LA8_0>='+' && LA8_0<='\uFFFE')) ) {
+ alt8=1;
+ }
+
+
+ switch (alt8) {
+ case 1 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2548:52: .
+ {
+ matchAny();
+
+ }
+ break;
+
+ default :
+ break loop8;
+ }
+ } while (true);
+
+ match("*/");
+
+ channel=HIDDEN;
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end RULE_ML_COMMENT
+
+ // $ANTLR start RULE_SL_COMMENT
+ public final void mRULE_SL_COMMENT() throws RecognitionException {
+ try {
+ int _type = RULE_SL_COMMENT;
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2550:17: ( '//' (~ ( '\\n' | '\\r' ) )* ( ( '\\r' )? '\\n' )? )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2550:19: '//' (~ ( '\\n' | '\\r' ) )* ( ( '\\r' )? '\\n' )?
+ {
+ match("//");
+
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2550:24: (~ ( '\\n' | '\\r' ) )*
+ loop9:
+ do {
+ int alt9=2;
+ int LA9_0 = input.LA(1);
+
+ if ( ((LA9_0>='\u0000' && LA9_0<='\t')||(LA9_0>='\u000B' && LA9_0<='\f')||(LA9_0>='\u000E' && LA9_0<='\uFFFE')) ) {
+ alt9=1;
+ }
+
+
+ switch (alt9) {
+ case 1 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2550:24: ~ ( '\\n' | '\\r' )
+ {
+ if ( (input.LA(1)>='\u0000' && input.LA(1)<='\t')||(input.LA(1)>='\u000B' && input.LA(1)<='\f')||(input.LA(1)>='\u000E' && input.LA(1)<='\uFFFE') ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse =
+ new MismatchedSetException(null,input);
+ recover(mse); throw mse;
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop9;
+ }
+ } while (true);
+
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2550:38: ( ( '\\r' )? '\\n' )?
+ int alt11=2;
+ int LA11_0 = input.LA(1);
+
+ if ( (LA11_0=='\n'||LA11_0=='\r') ) {
+ alt11=1;
+ }
+ switch (alt11) {
+ case 1 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2550:39: ( '\\r' )? '\\n'
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2550:39: ( '\\r' )?
+ int alt10=2;
+ int LA10_0 = input.LA(1);
+
+ if ( (LA10_0=='\r') ) {
+ alt10=1;
+ }
+ switch (alt10) {
+ case 1 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2550:39: '\\r'
+ {
+ match('\r');
+
+ }
+ break;
+
+ }
+
+ match('\n');
+
+ }
+ break;
+
+ }
+
+ channel=HIDDEN;
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end RULE_SL_COMMENT
+
+ // $ANTLR start RULE_WS
+ public final void mRULE_WS() throws RecognitionException {
+ try {
+ int _type = RULE_WS;
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2552:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2552:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2552:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+ int cnt12=0;
+ loop12:
+ do {
+ int alt12=2;
+ int LA12_0 = input.LA(1);
+
+ if ( ((LA12_0>='\t' && LA12_0<='\n')||LA12_0=='\r'||LA12_0==' ') ) {
+ alt12=1;
+ }
+
+
+ switch (alt12) {
+ case 1 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:
+ {
+ if ( (input.LA(1)>='\t' && input.LA(1)<='\n')||input.LA(1)=='\r'||input.LA(1)==' ' ) {
+ input.consume();
+
+ }
+ else {
+ MismatchedSetException mse =
+ new MismatchedSetException(null,input);
+ recover(mse); throw mse;
+ }
+
+
+ }
+ break;
+
+ default :
+ if ( cnt12 >= 1 ) break loop12;
+ EarlyExitException eee =
+ new EarlyExitException(12, input);
+ throw eee;
+ }
+ cnt12++;
+ } while (true);
+
+ channel=HIDDEN;
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end RULE_WS
+
+ // $ANTLR start RULE_ANY_OTHER
+ public final void mRULE_ANY_OTHER() throws RecognitionException {
+ try {
+ int _type = RULE_ANY_OTHER;
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2554:16: ( . )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2554:18: .
+ {
+ matchAny();
+
+ }
+
+ this.type = _type;
+ }
+ finally {
+ }
+ }
+ // $ANTLR end RULE_ANY_OTHER
+
+ public void mTokens() throws RecognitionException {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1:8: ( T12 | T13 | T14 | T15 | T16 | T17 | T18 | T19 | T20 | T21 | T22 | T23 | T24 | T25 | T26 | T27 | T28 | T29 | T30 | T31 | T32 | T33 | T34 | T35 | T36 | T37 | T38 | T39 | T40 | RULE_FRAGMENT | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
+ int alt13=37;
+ int LA13_0 = input.LA(1);
+
+ if ( (LA13_0=='e') ) {
+ switch ( input.LA(2) ) {
+ case 'p':
+ {
+ int LA13_33 = input.LA(3);
+
+ if ( (LA13_33=='a') ) {
+ int LA13_69 = input.LA(4);
+
+ if ( (LA13_69=='t') ) {
+ int LA13_85 = input.LA(5);
+
+ if ( (LA13_85=='c') ) {
+ int LA13_99 = input.LA(6);
+
+ if ( (LA13_99=='h') ) {
+ int LA13_111 = input.LA(7);
+
+ if ( ((LA13_111>='0' && LA13_111<='9')||(LA13_111>='A' && LA13_111<='Z')||LA13_111=='_'||(LA13_111>='a' && LA13_111<='z')) ) {
+ alt13=31;
+ }
+ else {
+ alt13=1;}
+ }
+ else {
+ alt13=31;}
+ }
+ else {
+ alt13=31;}
+ }
+ else {
+ alt13=31;}
+ }
+ else {
+ alt13=31;}
+ }
+ break;
+ case 'a':
+ {
+ int LA13_34 = input.LA(3);
+
+ if ( (LA13_34=='c') ) {
+ int LA13_70 = input.LA(4);
+
+ if ( (LA13_70=='h') ) {
+ int LA13_86 = input.LA(5);
+
+ if ( ((LA13_86>='0' && LA13_86<='9')||(LA13_86>='A' && LA13_86<='Z')||LA13_86=='_'||(LA13_86>='a' && LA13_86<='z')) ) {
+ alt13=31;
+ }
+ else {
+ alt13=27;}
+ }
+ else {
+ alt13=31;}
+ }
+ else {
+ alt13=31;}
+ }
+ break;
+ case 'x':
+ {
+ int LA13_35 = input.LA(3);
+
+ if ( (LA13_35=='t') ) {
+ int LA13_71 = input.LA(4);
+
+ if ( (LA13_71=='e') ) {
+ int LA13_87 = input.LA(5);
+
+ if ( (LA13_87=='n') ) {
+ int LA13_101 = input.LA(6);
+
+ if ( (LA13_101=='s') ) {
+ int LA13_112 = input.LA(7);
+
+ if ( (LA13_112=='i') ) {
+ int LA13_119 = input.LA(8);
+
+ if ( (LA13_119=='o') ) {
+ int LA13_124 = input.LA(9);
+
+ if ( (LA13_124=='n') ) {
+ int LA13_127 = input.LA(10);
+
+ if ( ((LA13_127>='0' && LA13_127<='9')||(LA13_127>='A' && LA13_127<='Z')||LA13_127=='_'||(LA13_127>='a' && LA13_127<='z')) ) {
+ alt13=31;
+ }
+ else {
+ alt13=9;}
+ }
+ else {
+ alt13=31;}
+ }
+ else {
+ alt13=31;}
+ }
+ else {
+ alt13=31;}
+ }
+ else {
+ alt13=31;}
+ }
+ else {
+ alt13=31;}
+ }
+ else {
+ alt13=31;}
+ }
+ else {
+ alt13=31;}
+ }
+ break;
+ default:
+ alt13=31;}
+
+ }
+ else if ( (LA13_0=='{') ) {
+ alt13=2;
+ }
+ else if ( (LA13_0=='}') ) {
+ alt13=3;
+ }
+ else if ( (LA13_0=='i') ) {
+ int LA13_4 = input.LA(2);
+
+ if ( (LA13_4=='m') ) {
+ int LA13_39 = input.LA(3);
+
+ if ( (LA13_39=='p') ) {
+ int LA13_72 = input.LA(4);
+
+ if ( (LA13_72=='o') ) {
+ int LA13_88 = input.LA(5);
+
+ if ( (LA13_88=='r') ) {
+ int LA13_102 = input.LA(6);
+
+ if ( (LA13_102=='t') ) {
+ int LA13_113 = input.LA(7);
+
+ if ( ((LA13_113>='0' && LA13_113<='9')||(LA13_113>='A' && LA13_113<='Z')||LA13_113=='_'||(LA13_113>='a' && LA13_113<='z')) ) {
+ alt13=31;
+ }
+ else {
+ alt13=4;}
+ }
+ else {
+ alt13=31;}
+ }
+ else {
+ alt13=31;}
+ }
+ else {
+ alt13=31;}
+ }
+ else {
+ alt13=31;}
+ }
+ else {
+ alt13=31;}
+ }
+ else if ( (LA13_0=='u') ) {
+ int LA13_5 = input.LA(2);
+
+ if ( (LA13_5=='r') ) {
+ int LA13_40 = input.LA(3);
+
+ if ( (LA13_40=='i') ) {
+ int LA13_73 = input.LA(4);
+
+ if ( ((LA13_73>='0' && LA13_73<='9')||(LA13_73>='A' && LA13_73<='Z')||LA13_73=='_'||(LA13_73>='a' && LA13_73<='z')) ) {
+ alt13=31;
+ }
+ else {
+ alt13=5;}
+ }
+ else {
+ alt13=31;}
+ }
+ else {
+ alt13=31;}
+ }
+ else if ( (LA13_0=='n') ) {
+ switch ( input.LA(2) ) {
+ case 's':
+ {
+ int LA13_41 = input.LA(3);
+
+ if ( ((LA13_41>='0' && LA13_41<='9')||(LA13_41>='A' && LA13_41<='Z')||LA13_41=='_'||(LA13_41>='a' && LA13_41<='z')) ) {
+ alt13=31;
+ }
+ else {
+ alt13=6;}
+ }
+ break;
+ case 'e':
+ {
+ int LA13_42 = input.LA(3);
+
+ if ( (LA13_42=='w') ) {
+ int LA13_75 = input.LA(4);
+
+ if ( ((LA13_75>='0' && LA13_75<='9')||(LA13_75>='A' && LA13_75<='Z')||LA13_75=='_'||(LA13_75>='a' && LA13_75<='z')) ) {
+ alt13=31;
+ }
+ else {
+ alt13=23;}
+ }
+ else {
+ alt13=31;}
+ }
+ break;
+ case 'u':
+ {
+ int LA13_43 = input.LA(3);
+
+ if ( (LA13_43=='l') ) {
+ int LA13_76 = input.LA(4);
+
+ if ( (LA13_76=='l') ) {
+ int LA13_91 = input.LA(5);
+
+ if ( ((LA13_91>='0' && LA13_91<='9')||(LA13_91>='A' && LA13_91<='Z')||LA13_91=='_'||(LA13_91>='a' && LA13_91<='z')) ) {
+ alt13=31;
+ }
+ else {
+ alt13=22;}
+ }
+ else {
+ alt13=31;}
+ }
+ else {
+ alt13=31;}
+ }
+ break;
+ default:
+ alt13=31;}
+
+ }
+ else if ( (LA13_0=='j') ) {
+ int LA13_7 = input.LA(2);
+
+ if ( (LA13_7=='a') ) {
+ int LA13_44 = input.LA(3);
+
+ if ( (LA13_44=='v') ) {
+ int LA13_77 = input.LA(4);
+
+ if ( (LA13_77=='a') ) {
+ int LA13_92 = input.LA(5);
+
+ if ( ((LA13_92>='0' && LA13_92<='9')||(LA13_92>='A' && LA13_92<='Z')||LA13_92=='_'||(LA13_92>='a' && LA13_92<='z')) ) {
+ alt13=31;
+ }
+ else {
+ alt13=7;}
+ }
+ else {
+ alt13=31;}
+ }
+ else {
+ alt13=31;}
+ }
+ else {
+ alt13=31;}
+ }
+ else if ( (LA13_0=='.') ) {
+ alt13=8;
+ }
+ else if ( (LA13_0==':') ) {
+ int LA13_9 = input.LA(2);
+
+ if ( (LA13_9==':') ) {
+ alt13=10;
+ }
+ else {
+ alt13=21;}
+ }
+ else if ( (LA13_0=='r') ) {
+ switch ( input.LA(2) ) {
+ case 'e':
+ {
+ int LA13_48 = input.LA(3);
+
+ if ( (LA13_48=='s') ) {
+ int LA13_78 = input.LA(4);
+
+ if ( (LA13_78=='o') ) {
+ int LA13_93 = input.LA(5);
+
+ if ( (LA13_93=='u') ) {
+ int LA13_105 = input.LA(6);
+
+ if ( (LA13_105=='r') ) {
+ int LA13_114 = input.LA(7);
+
+ if ( (LA13_114=='c') ) {
+ int LA13_121 = input.LA(8);
+
+ if ( (LA13_121=='e') ) {
+ int LA13_125 = input.LA(9);
+
+ if ( ((LA13_125>='0' && LA13_125<='9')||(LA13_125>='A' && LA13_125<='Z')||LA13_125=='_'||(LA13_125>='a' && LA13_125<='z')) ) {
+ alt13=31;
+ }
+ else {
+ alt13=11;}
+ }
+ else {
+ alt13=31;}
+ }
+ else {
+ alt13=31;}
+ }
+ else {
+ alt13=31;}
+ }
+ else {
+ alt13=31;}
+ }
+ else {
+ alt13=31;}
+ }
+ else {
+ alt13=31;}
+ }
+ break;
+ case 'i':
+ {
+ int LA13_49 = input.LA(3);
+
+ if ( (LA13_49=='g') ) {
+ int LA13_79 = input.LA(4);
+
+ if ( (LA13_79=='h') ) {
+ int LA13_94 = input.LA(5);
+
+ if ( (LA13_94=='t') ) {
+ int LA13_106 = input.LA(6);
+
+ if ( ((LA13_106>='0' && LA13_106<='9')||(LA13_106>='A' && LA13_106<='Z')||LA13_106=='_'||(LA13_106>='a' && LA13_106<='z')) ) {
+ alt13=31;
+ }
+ else {
+ alt13=14;}
+ }
+ else {
+ alt13=31;}
+ }
+ else {
+ alt13=31;}
+ }
+ else {
+ alt13=31;}
+ }
+ break;
+ default:
+ alt13=31;}
+
+ }
+ else if ( (LA13_0=='l') ) {
+ int LA13_11 = input.LA(2);
+
+ if ( (LA13_11=='e') ) {
+ int LA13_50 = input.LA(3);
+
+ if ( (LA13_50=='f') ) {
+ int LA13_80 = input.LA(4);
+
+ if ( (LA13_80=='t') ) {
+ int LA13_95 = input.LA(5);
+
+ if ( ((LA13_95>='0' && LA13_95<='9')||(LA13_95>='A' && LA13_95<='Z')||LA13_95=='_'||(LA13_95>='a' && LA13_95<='z')) ) {
+ alt13=31;
+ }
+ else {
+ alt13=12;}
+ }
+ else {
+ alt13=31;}
+ }
+ else {
+ alt13=31;}
+ }
+ else {
+ alt13=31;}
+ }
+ else if ( (LA13_0==';') ) {
+ alt13=13;
+ }
+ else if ( (LA13_0=='o') ) {
+ int LA13_13 = input.LA(2);
+
+ if ( (LA13_13=='b') ) {
+ int LA13_52 = input.LA(3);
+
+ if ( (LA13_52=='j') ) {
+ int LA13_81 = input.LA(4);
+
+ if ( (LA13_81=='e') ) {
+ int LA13_96 = input.LA(5);
+
+ if ( (LA13_96=='c') ) {
+ int LA13_108 = input.LA(6);
+
+ if ( (LA13_108=='t') ) {
+ int LA13_116 = input.LA(7);
+
+ if ( ((LA13_116>='0' && LA13_116<='9')||(LA13_116>='A' && LA13_116<='Z')||LA13_116=='_'||(LA13_116>='a' && LA13_116<='z')) ) {
+ alt13=31;
+ }
+ else {
+ alt13=15;}
+ }
+ else {
+ alt13=31;}
+ }
+ else {
+ alt13=31;}
+ }
+ else {
+ alt13=31;}
+ }
+ else {
+ alt13=31;}
+ }
+ else {
+ alt13=31;}
+ }
+ else if ( (LA13_0=='=') ) {
+ alt13=16;
+ }
+ else if ( (LA13_0=='|') ) {
+ alt13=17;
+ }
+ else if ( (LA13_0=='[') ) {
+ alt13=18;
+ }
+ else if ( (LA13_0==',') ) {
+ alt13=19;
+ }
+ else if ( (LA13_0==']') ) {
+ alt13=20;
+ }
+ else if ( (LA13_0=='c') ) {
+ int LA13_19 = input.LA(2);
+
+ if ( (LA13_19=='o') ) {
+ int LA13_58 = input.LA(3);
+
+ if ( (LA13_58=='p') ) {
+ int LA13_82 = input.LA(4);
+
+ if ( (LA13_82=='y') ) {
+ int LA13_97 = input.LA(5);
+
+ if ( ((LA13_97>='0' && LA13_97<='9')||(LA13_97>='A' && LA13_97<='Z')||LA13_97=='_'||(LA13_97>='a' && LA13_97<='z')) ) {
+ alt13=31;
+ }
+ else {
+ alt13=24;}
+ }
+ else {
+ alt13=31;}
+ }
+ else {
+ alt13=31;}
+ }
+ else {
+ alt13=31;}
+ }
+ else if ( (LA13_0=='m') ) {
+ int LA13_20 = input.LA(2);
+
+ if ( (LA13_20=='i') ) {
+ int LA13_59 = input.LA(3);
+
+ if ( (LA13_59=='g') ) {
+ int LA13_83 = input.LA(4);
+
+ if ( (LA13_83=='r') ) {
+ int LA13_98 = input.LA(5);
+
+ if ( (LA13_98=='a') ) {
+ int LA13_110 = input.LA(6);
+
+ if ( (LA13_110=='t') ) {
+ int LA13_117 = input.LA(7);
+
+ if ( (LA13_117=='e') ) {
+ int LA13_123 = input.LA(8);
+
+ if ( ((LA13_123>='0' && LA13_123<='9')||(LA13_123>='A' && LA13_123<='Z')||LA13_123=='_'||(LA13_123>='a' && LA13_123<='z')) ) {
+ alt13=31;
+ }
+ else {
+ alt13=25;}
+ }
+ else {
+ alt13=31;}
+ }
+ else {
+ alt13=31;}
+ }
+ else {
+ alt13=31;}
+ }
+ else {
+ alt13=31;}
+ }
+ else {
+ alt13=31;}
+ }
+ else {
+ alt13=31;}
+ }
+ else if ( (LA13_0=='a') ) {
+ int LA13_21 = input.LA(2);
+
+ if ( (LA13_21=='s') ) {
+ int LA13_60 = input.LA(3);
+
+ if ( ((LA13_60>='0' && LA13_60<='9')||(LA13_60>='A' && LA13_60<='Z')||LA13_60=='_'||(LA13_60>='a' && LA13_60<='z')) ) {
+ alt13=31;
+ }
+ else {
+ alt13=26;}
+ }
+ else {
+ alt13=31;}
+ }
+ else if ( (LA13_0=='(') ) {
+ alt13=28;
+ }
+ else if ( (LA13_0==')') ) {
+ alt13=29;
+ }
+ else if ( (LA13_0=='#') ) {
+ int LA13_24 = input.LA(2);
+
+ if ( ((LA13_24>='.' && LA13_24<='9')||(LA13_24>='@' && LA13_24<='[')||LA13_24==']'||LA13_24=='_'||(LA13_24>='a' && LA13_24<='{')||LA13_24=='}') ) {
+ alt13=30;
+ }
+ else {
+ alt13=37;}
+ }
+ else if ( (LA13_0=='^') ) {
+ int LA13_25 = input.LA(2);
+
+ if ( ((LA13_25>='A' && LA13_25<='Z')||LA13_25=='_'||(LA13_25>='a' && LA13_25<='z')) ) {
+ alt13=31;
+ }
+ else {
+ alt13=37;}
+ }
+ else if ( ((LA13_0>='A' && LA13_0<='Z')||LA13_0=='_'||LA13_0=='b'||LA13_0=='d'||(LA13_0>='f' && LA13_0<='h')||LA13_0=='k'||(LA13_0>='p' && LA13_0<='q')||(LA13_0>='s' && LA13_0<='t')||(LA13_0>='v' && LA13_0<='z')) ) {
+ alt13=31;
+ }
+ else if ( ((LA13_0>='0' && LA13_0<='9')) ) {
+ alt13=32;
+ }
+ else if ( (LA13_0=='\"') ) {
+ int LA13_28 = input.LA(2);
+
+ if ( ((LA13_28>='\u0000' && LA13_28<='\uFFFE')) ) {
+ alt13=33;
+ }
+ else {
+ alt13=37;}
+ }
+ else if ( (LA13_0=='\'') ) {
+ int LA13_29 = input.LA(2);
+
+ if ( ((LA13_29>='\u0000' && LA13_29<='\uFFFE')) ) {
+ alt13=33;
+ }
+ else {
+ alt13=37;}
+ }
+ else if ( (LA13_0=='/') ) {
+ switch ( input.LA(2) ) {
+ case '/':
+ {
+ alt13=35;
+ }
+ break;
+ case '*':
+ {
+ alt13=34;
+ }
+ break;
+ default:
+ alt13=37;}
+
+ }
+ else if ( ((LA13_0>='\t' && LA13_0<='\n')||LA13_0=='\r'||LA13_0==' ') ) {
+ alt13=36;
+ }
+ else if ( ((LA13_0>='\u0000' && LA13_0<='\b')||(LA13_0>='\u000B' && LA13_0<='\f')||(LA13_0>='\u000E' && LA13_0<='\u001F')||LA13_0=='!'||(LA13_0>='$' && LA13_0<='&')||(LA13_0>='*' && LA13_0<='+')||LA13_0=='-'||LA13_0=='<'||(LA13_0>='>' && LA13_0<='@')||LA13_0=='\\'||LA13_0=='`'||(LA13_0>='~' && LA13_0<='\uFFFE')) ) {
+ alt13=37;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("1:1: Tokens : ( T12 | T13 | T14 | T15 | T16 | T17 | T18 | T19 | T20 | T21 | T22 | T23 | T24 | T25 | T26 | T27 | T28 | T29 | T30 | T31 | T32 | T33 | T34 | T35 | T36 | T37 | T38 | T39 | T40 | RULE_FRAGMENT | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );", 13, 0, input);
+
+ throw nvae;
+ }
+ switch (alt13) {
+ case 1 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1:10: T12
+ {
+ mT12();
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1:14: T13
+ {
+ mT13();
+
+ }
+ break;
+ case 3 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1:18: T14
+ {
+ mT14();
+
+ }
+ break;
+ case 4 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1:22: T15
+ {
+ mT15();
+
+ }
+ break;
+ case 5 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1:26: T16
+ {
+ mT16();
+
+ }
+ break;
+ case 6 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1:30: T17
+ {
+ mT17();
+
+ }
+ break;
+ case 7 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1:34: T18
+ {
+ mT18();
+
+ }
+ break;
+ case 8 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1:38: T19
+ {
+ mT19();
+
+ }
+ break;
+ case 9 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1:42: T20
+ {
+ mT20();
+
+ }
+ break;
+ case 10 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1:46: T21
+ {
+ mT21();
+
+ }
+ break;
+ case 11 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1:50: T22
+ {
+ mT22();
+
+ }
+ break;
+ case 12 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1:54: T23
+ {
+ mT23();
+
+ }
+ break;
+ case 13 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1:58: T24
+ {
+ mT24();
+
+ }
+ break;
+ case 14 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1:62: T25
+ {
+ mT25();
+
+ }
+ break;
+ case 15 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1:66: T26
+ {
+ mT26();
+
+ }
+ break;
+ case 16 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1:70: T27
+ {
+ mT27();
+
+ }
+ break;
+ case 17 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1:74: T28
+ {
+ mT28();
+
+ }
+ break;
+ case 18 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1:78: T29
+ {
+ mT29();
+
+ }
+ break;
+ case 19 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1:82: T30
+ {
+ mT30();
+
+ }
+ break;
+ case 20 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1:86: T31
+ {
+ mT31();
+
+ }
+ break;
+ case 21 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1:90: T32
+ {
+ mT32();
+
+ }
+ break;
+ case 22 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1:94: T33
+ {
+ mT33();
+
+ }
+ break;
+ case 23 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1:98: T34
+ {
+ mT34();
+
+ }
+ break;
+ case 24 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1:102: T35
+ {
+ mT35();
+
+ }
+ break;
+ case 25 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1:106: T36
+ {
+ mT36();
+
+ }
+ break;
+ case 26 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1:110: T37
+ {
+ mT37();
+
+ }
+ break;
+ case 27 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1:114: T38
+ {
+ mT38();
+
+ }
+ break;
+ case 28 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1:118: T39
+ {
+ mT39();
+
+ }
+ break;
+ case 29 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1:122: T40
+ {
+ mT40();
+
+ }
+ break;
+ case 30 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1:126: RULE_FRAGMENT
+ {
+ mRULE_FRAGMENT();
+
+ }
+ break;
+ case 31 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1:140: RULE_ID
+ {
+ mRULE_ID();
+
+ }
+ break;
+ case 32 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1:148: RULE_INT
+ {
+ mRULE_INT();
+
+ }
+ break;
+ case 33 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1:157: RULE_STRING
+ {
+ mRULE_STRING();
+
+ }
+ break;
+ case 34 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1:169: RULE_ML_COMMENT
+ {
+ mRULE_ML_COMMENT();
+
+ }
+ break;
+ case 35 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1:185: RULE_SL_COMMENT
+ {
+ mRULE_SL_COMMENT();
+
+ }
+ break;
+ case 36 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1:201: RULE_WS
+ {
+ mRULE_WS();
+
+ }
+ break;
+ case 37 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1:209: RULE_ANY_OTHER
+ {
+ mRULE_ANY_OTHER();
+
+ }
+ break;
+
+ }
+
+ }
+
+
+
+
+} \ No newline at end of file
diff --git a/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguageParser.java b/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguageParser.java
new file mode 100644
index 0000000..76b1919
--- /dev/null
+++ b/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguageParser.java
@@ -0,0 +1,5919 @@
+package org.eclipse.xtext.parser.epatch.parser.antlr.internal;
+
+import java.io.InputStream;
+import org.eclipse.xtext.*;
+import org.eclipse.xtext.parser.*;
+import org.eclipse.xtext.parser.impl.*;
+import org.eclipse.xtext.parsetree.*;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.xtext.parser.antlr.AbstractInternalAntlrParser;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
+import org.eclipse.xtext.parser.antlr.AntlrDatatypeRuleToken;
+import org.eclipse.xtext.conversion.ValueConverterException;
+
+
+
+import org.antlr.runtime.*;
+import java.util.Stack;
+import java.util.List;
+import java.util.ArrayList;
+
+public class InternalEpatchTestLanguageParser extends AbstractInternalAntlrParser {
+ public static final String[] tokenNames = new String[] {
+ "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_ID", "RULE_STRING", "RULE_FRAGMENT", "RULE_INT", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'epatch'", "'{'", "'}'", "'import'", "'uri'", "'ns'", "'java'", "'.'", "'extension'", "'::'", "'resource'", "'left'", "';'", "'right'", "'object'", "'='", "'|'", "'['", "','", "']'", "':'", "'null'", "'new'", "'copy'", "'migrate'", "'as'", "'each'", "'('", "')'"
+ };
+ public static final int RULE_ML_COMMENT=8;
+ public static final int RULE_ID=4;
+ public static final int RULE_WS=10;
+ public static final int EOF=-1;
+ public static final int RULE_INT=7;
+ public static final int RULE_STRING=5;
+ public static final int RULE_ANY_OTHER=11;
+ public static final int RULE_SL_COMMENT=9;
+ public static final int RULE_FRAGMENT=6;
+
+ public InternalEpatchTestLanguageParser(TokenStream input) {
+ super(input);
+ }
+
+
+ public String[] getTokenNames() { return tokenNames; }
+ public String getGrammarFileName() { return "../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g"; }
+
+
+
+ public InternalEpatchTestLanguageParser(TokenStream input, IAstFactory factory, Grammar g) {
+ this(input);
+ this.factory = factory;
+ grammar = g;
+ }
+
+ @Override
+ protected InputStream getTokenFile() {
+ ClassLoader classLoader = InternalEpatchTestLanguageParser.class.getClassLoader();
+ return classLoader.getResourceAsStream("org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.tokens");
+ }
+
+ @Override
+ protected String getFirstRuleName() {
+ return "EPatch";
+ }
+
+
+
+ // $ANTLR start entryRuleEPatch
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:68:1: entryRuleEPatch returns [EObject current=null] : iv_ruleEPatch= ruleEPatch EOF ;
+ public final EObject entryRuleEPatch() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleEPatch = null;
+
+
+ try {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:68:48: (iv_ruleEPatch= ruleEPatch EOF )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:69:2: iv_ruleEPatch= ruleEPatch EOF
+ {
+ currentNode = createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.0" /* xtext::ParserRule */, currentNode);
+ pushFollow(FOLLOW_ruleEPatch_in_entryRuleEPatch72);
+ iv_ruleEPatch=ruleEPatch();
+ _fsp--;
+
+ current =iv_ruleEPatch;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleEPatch82);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end entryRuleEPatch
+
+
+ // $ANTLR start ruleEPatch
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:76:1: ruleEPatch returns [EObject current=null] : ( ( ( ( ( ( 'epatch' (lv_name= RULE_ID ) ) '{' ) (lv_imports= ruleImport )* ) (lv_resources= ruleNamedResource )* ) (lv_objects= ruleObjectRef )* ) '}' ) ;
+ public final EObject ruleEPatch() throws RecognitionException {
+ EObject current = null;
+
+ Token lv_name=null;
+ EObject lv_imports = null;
+
+ EObject lv_resources = null;
+
+ EObject lv_objects = null;
+
+
+ EObject temp=null; setCurrentLookahead(); resetLookahead();
+ HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens("RULE_WS", "RULE_ML_COMMENT", "RULE_SL_COMMENT");
+
+ try {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:82:6: ( ( ( ( ( ( ( 'epatch' (lv_name= RULE_ID ) ) '{' ) (lv_imports= ruleImport )* ) (lv_resources= ruleNamedResource )* ) (lv_objects= ruleObjectRef )* ) '}' ) )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:83:1: ( ( ( ( ( ( 'epatch' (lv_name= RULE_ID ) ) '{' ) (lv_imports= ruleImport )* ) (lv_resources= ruleNamedResource )* ) (lv_objects= ruleObjectRef )* ) '}' )
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:83:1: ( ( ( ( ( ( 'epatch' (lv_name= RULE_ID ) ) '{' ) (lv_imports= ruleImport )* ) (lv_resources= ruleNamedResource )* ) (lv_objects= ruleObjectRef )* ) '}' )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:83:2: ( ( ( ( ( 'epatch' (lv_name= RULE_ID ) ) '{' ) (lv_imports= ruleImport )* ) (lv_resources= ruleNamedResource )* ) (lv_objects= ruleObjectRef )* ) '}'
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:83:2: ( ( ( ( ( 'epatch' (lv_name= RULE_ID ) ) '{' ) (lv_imports= ruleImport )* ) (lv_resources= ruleNamedResource )* ) (lv_objects= ruleObjectRef )* )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:83:3: ( ( ( ( 'epatch' (lv_name= RULE_ID ) ) '{' ) (lv_imports= ruleImport )* ) (lv_resources= ruleNamedResource )* ) (lv_objects= ruleObjectRef )*
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:83:3: ( ( ( ( 'epatch' (lv_name= RULE_ID ) ) '{' ) (lv_imports= ruleImport )* ) (lv_resources= ruleNamedResource )* )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:83:4: ( ( ( 'epatch' (lv_name= RULE_ID ) ) '{' ) (lv_imports= ruleImport )* ) (lv_resources= ruleNamedResource )*
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:83:4: ( ( ( 'epatch' (lv_name= RULE_ID ) ) '{' ) (lv_imports= ruleImport )* )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:83:5: ( ( 'epatch' (lv_name= RULE_ID ) ) '{' ) (lv_imports= ruleImport )*
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:83:5: ( ( 'epatch' (lv_name= RULE_ID ) ) '{' )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:83:6: ( 'epatch' (lv_name= RULE_ID ) ) '{'
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:83:6: ( 'epatch' (lv_name= RULE_ID ) )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:83:7: 'epatch' (lv_name= RULE_ID )
+ {
+ match(input,12,FOLLOW_12_in_ruleEPatch121);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.0/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0" /* xtext::Keyword */, null);
+
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:87:1: (lv_name= RULE_ID )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:89:6: lv_name= RULE_ID
+ {
+ lv_name=(Token)input.LT(1);
+ match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleEPatch142);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.0/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1/@terminal" /* xtext::RuleCall */, "name");
+
+
+ if (current==null) {
+ current = factory.create("EPatch");
+ associateNodeWithAstElement(currentNode, current);
+ }
+
+ try {
+ factory.set(current, "name", lv_name, "ID", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+
+
+ }
+
+
+ }
+
+ match(input,13,FOLLOW_13_in_ruleEPatch163);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.0/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1" /* xtext::Keyword */, null);
+
+
+ }
+
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:111:2: (lv_imports= ruleImport )*
+ loop1:
+ do {
+ int alt1=2;
+ int LA1_0 = input.LA(1);
+
+ if ( (LA1_0==15) ) {
+ alt1=1;
+ }
+
+
+ switch (alt1) {
+ case 1 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:114:6: lv_imports= ruleImport
+ {
+
+ currentNode=createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.0/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1/@terminal" /* xtext::RuleCall */, currentNode);
+
+ pushFollow(FOLLOW_ruleImport_in_ruleEPatch198);
+ lv_imports=ruleImport();
+ _fsp--;
+
+
+ if (current==null) {
+ current = factory.create("EPatch");
+ associateNodeWithAstElement(currentNode.getParent(), current);
+ }
+
+ try {
+ factory.add(current, "imports", lv_imports, "Import", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+
+
+ }
+ break;
+
+ default :
+ break loop1;
+ }
+ } while (true);
+
+
+ }
+
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:132:4: (lv_resources= ruleNamedResource )*
+ loop2:
+ do {
+ int alt2=2;
+ int LA2_0 = input.LA(1);
+
+ if ( (LA2_0==22) ) {
+ alt2=1;
+ }
+
+
+ switch (alt2) {
+ case 1 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:135:6: lv_resources= ruleNamedResource
+ {
+
+ currentNode=createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.0/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1/@terminal" /* xtext::RuleCall */, currentNode);
+
+ pushFollow(FOLLOW_ruleNamedResource_in_ruleEPatch238);
+ lv_resources=ruleNamedResource();
+ _fsp--;
+
+
+ if (current==null) {
+ current = factory.create("EPatch");
+ associateNodeWithAstElement(currentNode.getParent(), current);
+ }
+
+ try {
+ factory.add(current, "resources", lv_resources, "NamedResource", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+
+
+ }
+ break;
+
+ default :
+ break loop2;
+ }
+ } while (true);
+
+
+ }
+
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:153:4: (lv_objects= ruleObjectRef )*
+ loop3:
+ do {
+ int alt3=2;
+ int LA3_0 = input.LA(1);
+
+ if ( (LA3_0==26) ) {
+ alt3=1;
+ }
+
+
+ switch (alt3) {
+ case 1 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:156:6: lv_objects= ruleObjectRef
+ {
+
+ currentNode=createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.0/@alternatives/@abstractTokens.0/@abstractTokens.1/@terminal" /* xtext::RuleCall */, currentNode);
+
+ pushFollow(FOLLOW_ruleObjectRef_in_ruleEPatch278);
+ lv_objects=ruleObjectRef();
+ _fsp--;
+
+
+ if (current==null) {
+ current = factory.create("EPatch");
+ associateNodeWithAstElement(currentNode.getParent(), current);
+ }
+
+ try {
+ factory.add(current, "objects", lv_objects, "ObjectRef", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+
+
+ }
+ break;
+
+ default :
+ break loop3;
+ }
+ } while (true);
+
+
+ }
+
+ match(input,14,FOLLOW_14_in_ruleEPatch293);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.0/@alternatives/@abstractTokens.1" /* xtext::Keyword */, null);
+
+
+ }
+
+
+ }
+
+ resetLookahead();
+ myHiddenTokenState.restore();
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end ruleEPatch
+
+
+ // $ANTLR start entryRuleImport
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:187:1: entryRuleImport returns [EObject current=null] : iv_ruleImport= ruleImport EOF ;
+ public final EObject entryRuleImport() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleImport = null;
+
+
+ try {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:187:48: (iv_ruleImport= ruleImport EOF )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:188:2: iv_ruleImport= ruleImport EOF
+ {
+ currentNode = createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.1" /* xtext::ParserRule */, currentNode);
+ pushFollow(FOLLOW_ruleImport_in_entryRuleImport328);
+ iv_ruleImport=ruleImport();
+ _fsp--;
+
+ current =iv_ruleImport;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleImport338);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end entryRuleImport
+
+
+ // $ANTLR start ruleImport
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:195:1: ruleImport returns [EObject current=null] : ( (this_ModelImport= ruleModelImport | this_JavaImport= ruleJavaImport ) | this_ExtensionImport= ruleExtensionImport ) ;
+ public final EObject ruleImport() throws RecognitionException {
+ EObject current = null;
+
+ EObject this_ModelImport = null;
+
+ EObject this_JavaImport = null;
+
+ EObject this_ExtensionImport = null;
+
+
+ EObject temp=null; setCurrentLookahead(); resetLookahead();
+
+ try {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:199:6: ( ( (this_ModelImport= ruleModelImport | this_JavaImport= ruleJavaImport ) | this_ExtensionImport= ruleExtensionImport ) )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:200:1: ( (this_ModelImport= ruleModelImport | this_JavaImport= ruleJavaImport ) | this_ExtensionImport= ruleExtensionImport )
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:200:1: ( (this_ModelImport= ruleModelImport | this_JavaImport= ruleJavaImport ) | this_ExtensionImport= ruleExtensionImport )
+ int alt5=2;
+ int LA5_0 = input.LA(1);
+
+ if ( (LA5_0==15) ) {
+ int LA5_1 = input.LA(2);
+
+ if ( (LA5_1==20) ) {
+ alt5=2;
+ }
+ else if ( (LA5_1==RULE_ID||LA5_1==18) ) {
+ alt5=1;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("200:1: ( (this_ModelImport= ruleModelImport | this_JavaImport= ruleJavaImport ) | this_ExtensionImport= ruleExtensionImport )", 5, 1, input);
+
+ throw nvae;
+ }
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("200:1: ( (this_ModelImport= ruleModelImport | this_JavaImport= ruleJavaImport ) | this_ExtensionImport= ruleExtensionImport )", 5, 0, input);
+
+ throw nvae;
+ }
+ switch (alt5) {
+ case 1 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:200:2: (this_ModelImport= ruleModelImport | this_JavaImport= ruleJavaImport )
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:200:2: (this_ModelImport= ruleModelImport | this_JavaImport= ruleJavaImport )
+ int alt4=2;
+ int LA4_0 = input.LA(1);
+
+ if ( (LA4_0==15) ) {
+ int LA4_1 = input.LA(2);
+
+ if ( (LA4_1==18) ) {
+ alt4=2;
+ }
+ else if ( (LA4_1==RULE_ID) ) {
+ alt4=1;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("200:2: (this_ModelImport= ruleModelImport | this_JavaImport= ruleJavaImport )", 4, 1, input);
+
+ throw nvae;
+ }
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("200:2: (this_ModelImport= ruleModelImport | this_JavaImport= ruleJavaImport )", 4, 0, input);
+
+ throw nvae;
+ }
+ switch (alt4) {
+ case 1 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:201:5: this_ModelImport= ruleModelImport
+ {
+
+ currentNode=createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.1/@alternatives/@groups.0/@groups.0" /* xtext::RuleCall */, currentNode);
+
+ pushFollow(FOLLOW_ruleModelImport_in_ruleImport386);
+ this_ModelImport=ruleModelImport();
+ _fsp--;
+
+
+ current = this_ModelImport;
+ currentNode = currentNode.getParent();
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:211:5: this_JavaImport= ruleJavaImport
+ {
+
+ currentNode=createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.1/@alternatives/@groups.0/@groups.1" /* xtext::RuleCall */, currentNode);
+
+ pushFollow(FOLLOW_ruleJavaImport_in_ruleImport413);
+ this_JavaImport=ruleJavaImport();
+ _fsp--;
+
+
+ current = this_JavaImport;
+ currentNode = currentNode.getParent();
+
+
+ }
+ break;
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:221:5: this_ExtensionImport= ruleExtensionImport
+ {
+
+ currentNode=createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.1/@alternatives/@groups.1" /* xtext::RuleCall */, currentNode);
+
+ pushFollow(FOLLOW_ruleExtensionImport_in_ruleImport441);
+ this_ExtensionImport=ruleExtensionImport();
+ _fsp--;
+
+
+ current = this_ExtensionImport;
+ currentNode = currentNode.getParent();
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ resetLookahead();
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end ruleImport
+
+
+ // $ANTLR start entryRuleModelImport
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:238:1: entryRuleModelImport returns [EObject current=null] : iv_ruleModelImport= ruleModelImport EOF ;
+ public final EObject entryRuleModelImport() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleModelImport = null;
+
+
+ try {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:238:53: (iv_ruleModelImport= ruleModelImport EOF )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:239:2: iv_ruleModelImport= ruleModelImport EOF
+ {
+ currentNode = createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.2" /* xtext::ParserRule */, currentNode);
+ pushFollow(FOLLOW_ruleModelImport_in_entryRuleModelImport475);
+ iv_ruleModelImport=ruleModelImport();
+ _fsp--;
+
+ current =iv_ruleModelImport;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleModelImport485);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end entryRuleModelImport
+
+
+ // $ANTLR start ruleModelImport
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:246:1: ruleModelImport returns [EObject current=null] : (this_ResourceImport= ruleResourceImport | this_EPackageImport= ruleEPackageImport ) ;
+ public final EObject ruleModelImport() throws RecognitionException {
+ EObject current = null;
+
+ EObject this_ResourceImport = null;
+
+ EObject this_EPackageImport = null;
+
+
+ EObject temp=null; setCurrentLookahead(); resetLookahead();
+
+ try {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:250:6: ( (this_ResourceImport= ruleResourceImport | this_EPackageImport= ruleEPackageImport ) )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:251:1: (this_ResourceImport= ruleResourceImport | this_EPackageImport= ruleEPackageImport )
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:251:1: (this_ResourceImport= ruleResourceImport | this_EPackageImport= ruleEPackageImport )
+ int alt6=2;
+ int LA6_0 = input.LA(1);
+
+ if ( (LA6_0==15) ) {
+ int LA6_1 = input.LA(2);
+
+ if ( (LA6_1==RULE_ID) ) {
+ int LA6_2 = input.LA(3);
+
+ if ( (LA6_2==16) ) {
+ alt6=1;
+ }
+ else if ( (LA6_2==17) ) {
+ alt6=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("251:1: (this_ResourceImport= ruleResourceImport | this_EPackageImport= ruleEPackageImport )", 6, 2, input);
+
+ throw nvae;
+ }
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("251:1: (this_ResourceImport= ruleResourceImport | this_EPackageImport= ruleEPackageImport )", 6, 1, input);
+
+ throw nvae;
+ }
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("251:1: (this_ResourceImport= ruleResourceImport | this_EPackageImport= ruleEPackageImport )", 6, 0, input);
+
+ throw nvae;
+ }
+ switch (alt6) {
+ case 1 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:252:5: this_ResourceImport= ruleResourceImport
+ {
+
+ currentNode=createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.2/@alternatives/@groups.0" /* xtext::RuleCall */, currentNode);
+
+ pushFollow(FOLLOW_ruleResourceImport_in_ruleModelImport532);
+ this_ResourceImport=ruleResourceImport();
+ _fsp--;
+
+
+ current = this_ResourceImport;
+ currentNode = currentNode.getParent();
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:262:5: this_EPackageImport= ruleEPackageImport
+ {
+
+ currentNode=createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.2/@alternatives/@groups.1" /* xtext::RuleCall */, currentNode);
+
+ pushFollow(FOLLOW_ruleEPackageImport_in_ruleModelImport559);
+ this_EPackageImport=ruleEPackageImport();
+ _fsp--;
+
+
+ current = this_EPackageImport;
+ currentNode = currentNode.getParent();
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ resetLookahead();
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end ruleModelImport
+
+
+ // $ANTLR start entryRuleResourceImport
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:279:1: entryRuleResourceImport returns [EObject current=null] : iv_ruleResourceImport= ruleResourceImport EOF ;
+ public final EObject entryRuleResourceImport() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleResourceImport = null;
+
+
+ try {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:279:56: (iv_ruleResourceImport= ruleResourceImport EOF )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:280:2: iv_ruleResourceImport= ruleResourceImport EOF
+ {
+ currentNode = createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.3" /* xtext::ParserRule */, currentNode);
+ pushFollow(FOLLOW_ruleResourceImport_in_entryRuleResourceImport593);
+ iv_ruleResourceImport=ruleResourceImport();
+ _fsp--;
+
+ current =iv_ruleResourceImport;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleResourceImport603);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end entryRuleResourceImport
+
+
+ // $ANTLR start ruleResourceImport
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:287:1: ruleResourceImport returns [EObject current=null] : ( ( ( 'import' (lv_name= RULE_ID ) ) 'uri' ) (lv_uri= RULE_STRING ) ) ;
+ public final EObject ruleResourceImport() throws RecognitionException {
+ EObject current = null;
+
+ Token lv_name=null;
+ Token lv_uri=null;
+
+ EObject temp=null; setCurrentLookahead(); resetLookahead();
+
+ try {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:291:6: ( ( ( ( 'import' (lv_name= RULE_ID ) ) 'uri' ) (lv_uri= RULE_STRING ) ) )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:292:1: ( ( ( 'import' (lv_name= RULE_ID ) ) 'uri' ) (lv_uri= RULE_STRING ) )
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:292:1: ( ( ( 'import' (lv_name= RULE_ID ) ) 'uri' ) (lv_uri= RULE_STRING ) )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:292:2: ( ( 'import' (lv_name= RULE_ID ) ) 'uri' ) (lv_uri= RULE_STRING )
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:292:2: ( ( 'import' (lv_name= RULE_ID ) ) 'uri' )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:292:3: ( 'import' (lv_name= RULE_ID ) ) 'uri'
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:292:3: ( 'import' (lv_name= RULE_ID ) )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:292:4: 'import' (lv_name= RULE_ID )
+ {
+ match(input,15,FOLLOW_15_in_ruleResourceImport639);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.3/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0" /* xtext::Keyword */, null);
+
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:296:1: (lv_name= RULE_ID )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:298:6: lv_name= RULE_ID
+ {
+ lv_name=(Token)input.LT(1);
+ match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleResourceImport660);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.3/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1/@terminal" /* xtext::RuleCall */, "name");
+
+
+ if (current==null) {
+ current = factory.create("ResourceImport");
+ associateNodeWithAstElement(currentNode, current);
+ }
+
+ try {
+ factory.set(current, "name", lv_name, "ID", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+
+
+ }
+
+
+ }
+
+ match(input,16,FOLLOW_16_in_ruleResourceImport681);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.3/@alternatives/@abstractTokens.0/@abstractTokens.1" /* xtext::Keyword */, null);
+
+
+ }
+
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:320:2: (lv_uri= RULE_STRING )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:322:6: lv_uri= RULE_STRING
+ {
+ lv_uri=(Token)input.LT(1);
+ match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleResourceImport703);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.3/@alternatives/@abstractTokens.1/@terminal" /* xtext::RuleCall */, "uri");
+
+
+ if (current==null) {
+ current = factory.create("ResourceImport");
+ associateNodeWithAstElement(currentNode, current);
+ }
+
+ try {
+ factory.set(current, "uri", lv_uri, "STRING", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ resetLookahead();
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end ruleResourceImport
+
+
+ // $ANTLR start entryRuleEPackageImport
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:349:1: entryRuleEPackageImport returns [EObject current=null] : iv_ruleEPackageImport= ruleEPackageImport EOF ;
+ public final EObject entryRuleEPackageImport() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleEPackageImport = null;
+
+
+ try {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:349:56: (iv_ruleEPackageImport= ruleEPackageImport EOF )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:350:2: iv_ruleEPackageImport= ruleEPackageImport EOF
+ {
+ currentNode = createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.4" /* xtext::ParserRule */, currentNode);
+ pushFollow(FOLLOW_ruleEPackageImport_in_entryRuleEPackageImport749);
+ iv_ruleEPackageImport=ruleEPackageImport();
+ _fsp--;
+
+ current =iv_ruleEPackageImport;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleEPackageImport759);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end entryRuleEPackageImport
+
+
+ // $ANTLR start ruleEPackageImport
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:357:1: ruleEPackageImport returns [EObject current=null] : ( ( ( 'import' (lv_name= RULE_ID ) ) 'ns' ) (lv_nsURI= RULE_STRING ) ) ;
+ public final EObject ruleEPackageImport() throws RecognitionException {
+ EObject current = null;
+
+ Token lv_name=null;
+ Token lv_nsURI=null;
+
+ EObject temp=null; setCurrentLookahead(); resetLookahead();
+
+ try {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:361:6: ( ( ( ( 'import' (lv_name= RULE_ID ) ) 'ns' ) (lv_nsURI= RULE_STRING ) ) )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:362:1: ( ( ( 'import' (lv_name= RULE_ID ) ) 'ns' ) (lv_nsURI= RULE_STRING ) )
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:362:1: ( ( ( 'import' (lv_name= RULE_ID ) ) 'ns' ) (lv_nsURI= RULE_STRING ) )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:362:2: ( ( 'import' (lv_name= RULE_ID ) ) 'ns' ) (lv_nsURI= RULE_STRING )
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:362:2: ( ( 'import' (lv_name= RULE_ID ) ) 'ns' )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:362:3: ( 'import' (lv_name= RULE_ID ) ) 'ns'
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:362:3: ( 'import' (lv_name= RULE_ID ) )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:362:4: 'import' (lv_name= RULE_ID )
+ {
+ match(input,15,FOLLOW_15_in_ruleEPackageImport795);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.4/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0" /* xtext::Keyword */, null);
+
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:366:1: (lv_name= RULE_ID )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:368:6: lv_name= RULE_ID
+ {
+ lv_name=(Token)input.LT(1);
+ match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleEPackageImport816);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.4/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1/@terminal" /* xtext::RuleCall */, "name");
+
+
+ if (current==null) {
+ current = factory.create("EPackageImport");
+ associateNodeWithAstElement(currentNode, current);
+ }
+
+ try {
+ factory.set(current, "name", lv_name, "ID", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+
+
+ }
+
+
+ }
+
+ match(input,17,FOLLOW_17_in_ruleEPackageImport837);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.4/@alternatives/@abstractTokens.0/@abstractTokens.1" /* xtext::Keyword */, null);
+
+
+ }
+
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:390:2: (lv_nsURI= RULE_STRING )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:392:6: lv_nsURI= RULE_STRING
+ {
+ lv_nsURI=(Token)input.LT(1);
+ match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleEPackageImport859);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.4/@alternatives/@abstractTokens.1/@terminal" /* xtext::RuleCall */, "nsURI");
+
+
+ if (current==null) {
+ current = factory.create("EPackageImport");
+ associateNodeWithAstElement(currentNode, current);
+ }
+
+ try {
+ factory.set(current, "nsURI", lv_nsURI, "STRING", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ resetLookahead();
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end ruleEPackageImport
+
+
+ // $ANTLR start entryRuleJavaImport
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:419:1: entryRuleJavaImport returns [EObject current=null] : iv_ruleJavaImport= ruleJavaImport EOF ;
+ public final EObject entryRuleJavaImport() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleJavaImport = null;
+
+
+ try {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:419:52: (iv_ruleJavaImport= ruleJavaImport EOF )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:420:2: iv_ruleJavaImport= ruleJavaImport EOF
+ {
+ currentNode = createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.5" /* xtext::ParserRule */, currentNode);
+ pushFollow(FOLLOW_ruleJavaImport_in_entryRuleJavaImport905);
+ iv_ruleJavaImport=ruleJavaImport();
+ _fsp--;
+
+ current =iv_ruleJavaImport;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleJavaImport915);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end entryRuleJavaImport
+
+
+ // $ANTLR start ruleJavaImport
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:427:1: ruleJavaImport returns [EObject current=null] : ( ( ( 'import' 'java' ) (lv_path= RULE_ID ) ) ( '.' (lv_path= RULE_ID ) )* ) ;
+ public final EObject ruleJavaImport() throws RecognitionException {
+ EObject current = null;
+
+ Token lv_path=null;
+
+ EObject temp=null; setCurrentLookahead(); resetLookahead();
+
+ try {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:431:6: ( ( ( ( 'import' 'java' ) (lv_path= RULE_ID ) ) ( '.' (lv_path= RULE_ID ) )* ) )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:432:1: ( ( ( 'import' 'java' ) (lv_path= RULE_ID ) ) ( '.' (lv_path= RULE_ID ) )* )
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:432:1: ( ( ( 'import' 'java' ) (lv_path= RULE_ID ) ) ( '.' (lv_path= RULE_ID ) )* )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:432:2: ( ( 'import' 'java' ) (lv_path= RULE_ID ) ) ( '.' (lv_path= RULE_ID ) )*
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:432:2: ( ( 'import' 'java' ) (lv_path= RULE_ID ) )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:432:3: ( 'import' 'java' ) (lv_path= RULE_ID )
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:432:3: ( 'import' 'java' )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:432:4: 'import' 'java'
+ {
+ match(input,15,FOLLOW_15_in_ruleJavaImport951);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.5/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0" /* xtext::Keyword */, null);
+
+ match(input,18,FOLLOW_18_in_ruleJavaImport960);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.5/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1" /* xtext::Keyword */, null);
+
+
+ }
+
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:440:2: (lv_path= RULE_ID )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:442:6: lv_path= RULE_ID
+ {
+ lv_path=(Token)input.LT(1);
+ match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleJavaImport982);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.5/@alternatives/@abstractTokens.0/@abstractTokens.1/@terminal" /* xtext::RuleCall */, "path");
+
+
+ if (current==null) {
+ current = factory.create("JavaImport");
+ associateNodeWithAstElement(currentNode, current);
+ }
+
+ try {
+ factory.add(current, "path", lv_path, "ID", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:460:3: ( '.' (lv_path= RULE_ID ) )*
+ loop7:
+ do {
+ int alt7=2;
+ int LA7_0 = input.LA(1);
+
+ if ( (LA7_0==19) ) {
+ alt7=1;
+ }
+
+
+ switch (alt7) {
+ case 1 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:460:4: '.' (lv_path= RULE_ID )
+ {
+ match(input,19,FOLLOW_19_in_ruleJavaImport1004);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.5/@alternatives/@abstractTokens.1/@abstractTokens.0" /* xtext::Keyword */, null);
+
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:464:1: (lv_path= RULE_ID )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:466:6: lv_path= RULE_ID
+ {
+ lv_path=(Token)input.LT(1);
+ match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleJavaImport1025);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.5/@alternatives/@abstractTokens.1/@abstractTokens.1/@terminal" /* xtext::RuleCall */, "path");
+
+
+ if (current==null) {
+ current = factory.create("JavaImport");
+ associateNodeWithAstElement(currentNode, current);
+ }
+
+ try {
+ factory.add(current, "path", lv_path, "ID", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop7;
+ }
+ } while (true);
+
+
+ }
+
+
+ }
+
+ resetLookahead();
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end ruleJavaImport
+
+
+ // $ANTLR start entryRuleExtensionImport
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:493:1: entryRuleExtensionImport returns [EObject current=null] : iv_ruleExtensionImport= ruleExtensionImport EOF ;
+ public final EObject entryRuleExtensionImport() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleExtensionImport = null;
+
+
+ try {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:493:57: (iv_ruleExtensionImport= ruleExtensionImport EOF )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:494:2: iv_ruleExtensionImport= ruleExtensionImport EOF
+ {
+ currentNode = createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.6" /* xtext::ParserRule */, currentNode);
+ pushFollow(FOLLOW_ruleExtensionImport_in_entryRuleExtensionImport1073);
+ iv_ruleExtensionImport=ruleExtensionImport();
+ _fsp--;
+
+ current =iv_ruleExtensionImport;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleExtensionImport1083);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end entryRuleExtensionImport
+
+
+ // $ANTLR start ruleExtensionImport
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:501:1: ruleExtensionImport returns [EObject current=null] : ( ( ( 'import' 'extension' ) (lv_path= RULE_ID ) ) ( '::' (lv_path= RULE_ID ) )* ) ;
+ public final EObject ruleExtensionImport() throws RecognitionException {
+ EObject current = null;
+
+ Token lv_path=null;
+
+ EObject temp=null; setCurrentLookahead(); resetLookahead();
+
+ try {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:505:6: ( ( ( ( 'import' 'extension' ) (lv_path= RULE_ID ) ) ( '::' (lv_path= RULE_ID ) )* ) )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:506:1: ( ( ( 'import' 'extension' ) (lv_path= RULE_ID ) ) ( '::' (lv_path= RULE_ID ) )* )
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:506:1: ( ( ( 'import' 'extension' ) (lv_path= RULE_ID ) ) ( '::' (lv_path= RULE_ID ) )* )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:506:2: ( ( 'import' 'extension' ) (lv_path= RULE_ID ) ) ( '::' (lv_path= RULE_ID ) )*
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:506:2: ( ( 'import' 'extension' ) (lv_path= RULE_ID ) )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:506:3: ( 'import' 'extension' ) (lv_path= RULE_ID )
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:506:3: ( 'import' 'extension' )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:506:4: 'import' 'extension'
+ {
+ match(input,15,FOLLOW_15_in_ruleExtensionImport1119);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.6/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0" /* xtext::Keyword */, null);
+
+ match(input,20,FOLLOW_20_in_ruleExtensionImport1128);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.6/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1" /* xtext::Keyword */, null);
+
+
+ }
+
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:514:2: (lv_path= RULE_ID )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:516:6: lv_path= RULE_ID
+ {
+ lv_path=(Token)input.LT(1);
+ match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleExtensionImport1150);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.6/@alternatives/@abstractTokens.0/@abstractTokens.1/@terminal" /* xtext::RuleCall */, "path");
+
+
+ if (current==null) {
+ current = factory.create("ExtensionImport");
+ associateNodeWithAstElement(currentNode, current);
+ }
+
+ try {
+ factory.add(current, "path", lv_path, "ID", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:534:3: ( '::' (lv_path= RULE_ID ) )*
+ loop8:
+ do {
+ int alt8=2;
+ int LA8_0 = input.LA(1);
+
+ if ( (LA8_0==21) ) {
+ alt8=1;
+ }
+
+
+ switch (alt8) {
+ case 1 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:534:4: '::' (lv_path= RULE_ID )
+ {
+ match(input,21,FOLLOW_21_in_ruleExtensionImport1172);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.6/@alternatives/@abstractTokens.1/@abstractTokens.0" /* xtext::Keyword */, null);
+
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:538:1: (lv_path= RULE_ID )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:540:6: lv_path= RULE_ID
+ {
+ lv_path=(Token)input.LT(1);
+ match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleExtensionImport1193);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.6/@alternatives/@abstractTokens.1/@abstractTokens.1/@terminal" /* xtext::RuleCall */, "path");
+
+
+ if (current==null) {
+ current = factory.create("ExtensionImport");
+ associateNodeWithAstElement(currentNode, current);
+ }
+
+ try {
+ factory.add(current, "path", lv_path, "ID", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop8;
+ }
+ } while (true);
+
+
+ }
+
+
+ }
+
+ resetLookahead();
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end ruleExtensionImport
+
+
+ // $ANTLR start entryRuleNamedResource
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:567:1: entryRuleNamedResource returns [EObject current=null] : iv_ruleNamedResource= ruleNamedResource EOF ;
+ public final EObject entryRuleNamedResource() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleNamedResource = null;
+
+
+ try {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:567:55: (iv_ruleNamedResource= ruleNamedResource EOF )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:568:2: iv_ruleNamedResource= ruleNamedResource EOF
+ {
+ currentNode = createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.7" /* xtext::ParserRule */, currentNode);
+ pushFollow(FOLLOW_ruleNamedResource_in_entryRuleNamedResource1241);
+ iv_ruleNamedResource=ruleNamedResource();
+ _fsp--;
+
+ current =iv_ruleNamedResource;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleNamedResource1251);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end entryRuleNamedResource
+
+
+ // $ANTLR start ruleNamedResource
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:575:1: ruleNamedResource returns [EObject current=null] : ( ( ( ( ( ( ( ( ( 'resource' (lv_name= RULE_ID ) ) '{' ) 'left' ) ( ( 'uri' (lv_leftUri= RULE_STRING ) ) | (lv_leftRoot= ruleCreatedObject ) ) ) ';' ) 'right' ) ( ( 'uri' (lv_rightUri= RULE_STRING ) ) | (lv_rightRoot= ruleCreatedObject ) ) ) ';' ) '}' ) ;
+ public final EObject ruleNamedResource() throws RecognitionException {
+ EObject current = null;
+
+ Token lv_name=null;
+ Token lv_leftUri=null;
+ Token lv_rightUri=null;
+ EObject lv_leftRoot = null;
+
+ EObject lv_rightRoot = null;
+
+
+ EObject temp=null; setCurrentLookahead(); resetLookahead();
+
+ try {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:579:6: ( ( ( ( ( ( ( ( ( ( 'resource' (lv_name= RULE_ID ) ) '{' ) 'left' ) ( ( 'uri' (lv_leftUri= RULE_STRING ) ) | (lv_leftRoot= ruleCreatedObject ) ) ) ';' ) 'right' ) ( ( 'uri' (lv_rightUri= RULE_STRING ) ) | (lv_rightRoot= ruleCreatedObject ) ) ) ';' ) '}' ) )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:580:1: ( ( ( ( ( ( ( ( ( 'resource' (lv_name= RULE_ID ) ) '{' ) 'left' ) ( ( 'uri' (lv_leftUri= RULE_STRING ) ) | (lv_leftRoot= ruleCreatedObject ) ) ) ';' ) 'right' ) ( ( 'uri' (lv_rightUri= RULE_STRING ) ) | (lv_rightRoot= ruleCreatedObject ) ) ) ';' ) '}' )
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:580:1: ( ( ( ( ( ( ( ( ( 'resource' (lv_name= RULE_ID ) ) '{' ) 'left' ) ( ( 'uri' (lv_leftUri= RULE_STRING ) ) | (lv_leftRoot= ruleCreatedObject ) ) ) ';' ) 'right' ) ( ( 'uri' (lv_rightUri= RULE_STRING ) ) | (lv_rightRoot= ruleCreatedObject ) ) ) ';' ) '}' )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:580:2: ( ( ( ( ( ( ( ( 'resource' (lv_name= RULE_ID ) ) '{' ) 'left' ) ( ( 'uri' (lv_leftUri= RULE_STRING ) ) | (lv_leftRoot= ruleCreatedObject ) ) ) ';' ) 'right' ) ( ( 'uri' (lv_rightUri= RULE_STRING ) ) | (lv_rightRoot= ruleCreatedObject ) ) ) ';' ) '}'
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:580:2: ( ( ( ( ( ( ( ( 'resource' (lv_name= RULE_ID ) ) '{' ) 'left' ) ( ( 'uri' (lv_leftUri= RULE_STRING ) ) | (lv_leftRoot= ruleCreatedObject ) ) ) ';' ) 'right' ) ( ( 'uri' (lv_rightUri= RULE_STRING ) ) | (lv_rightRoot= ruleCreatedObject ) ) ) ';' )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:580:3: ( ( ( ( ( ( ( 'resource' (lv_name= RULE_ID ) ) '{' ) 'left' ) ( ( 'uri' (lv_leftUri= RULE_STRING ) ) | (lv_leftRoot= ruleCreatedObject ) ) ) ';' ) 'right' ) ( ( 'uri' (lv_rightUri= RULE_STRING ) ) | (lv_rightRoot= ruleCreatedObject ) ) ) ';'
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:580:3: ( ( ( ( ( ( ( 'resource' (lv_name= RULE_ID ) ) '{' ) 'left' ) ( ( 'uri' (lv_leftUri= RULE_STRING ) ) | (lv_leftRoot= ruleCreatedObject ) ) ) ';' ) 'right' ) ( ( 'uri' (lv_rightUri= RULE_STRING ) ) | (lv_rightRoot= ruleCreatedObject ) ) )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:580:4: ( ( ( ( ( ( 'resource' (lv_name= RULE_ID ) ) '{' ) 'left' ) ( ( 'uri' (lv_leftUri= RULE_STRING ) ) | (lv_leftRoot= ruleCreatedObject ) ) ) ';' ) 'right' ) ( ( 'uri' (lv_rightUri= RULE_STRING ) ) | (lv_rightRoot= ruleCreatedObject ) )
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:580:4: ( ( ( ( ( ( 'resource' (lv_name= RULE_ID ) ) '{' ) 'left' ) ( ( 'uri' (lv_leftUri= RULE_STRING ) ) | (lv_leftRoot= ruleCreatedObject ) ) ) ';' ) 'right' )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:580:5: ( ( ( ( ( 'resource' (lv_name= RULE_ID ) ) '{' ) 'left' ) ( ( 'uri' (lv_leftUri= RULE_STRING ) ) | (lv_leftRoot= ruleCreatedObject ) ) ) ';' ) 'right'
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:580:5: ( ( ( ( ( 'resource' (lv_name= RULE_ID ) ) '{' ) 'left' ) ( ( 'uri' (lv_leftUri= RULE_STRING ) ) | (lv_leftRoot= ruleCreatedObject ) ) ) ';' )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:580:6: ( ( ( ( 'resource' (lv_name= RULE_ID ) ) '{' ) 'left' ) ( ( 'uri' (lv_leftUri= RULE_STRING ) ) | (lv_leftRoot= ruleCreatedObject ) ) ) ';'
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:580:6: ( ( ( ( 'resource' (lv_name= RULE_ID ) ) '{' ) 'left' ) ( ( 'uri' (lv_leftUri= RULE_STRING ) ) | (lv_leftRoot= ruleCreatedObject ) ) )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:580:7: ( ( ( 'resource' (lv_name= RULE_ID ) ) '{' ) 'left' ) ( ( 'uri' (lv_leftUri= RULE_STRING ) ) | (lv_leftRoot= ruleCreatedObject ) )
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:580:7: ( ( ( 'resource' (lv_name= RULE_ID ) ) '{' ) 'left' )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:580:8: ( ( 'resource' (lv_name= RULE_ID ) ) '{' ) 'left'
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:580:8: ( ( 'resource' (lv_name= RULE_ID ) ) '{' )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:580:9: ( 'resource' (lv_name= RULE_ID ) ) '{'
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:580:9: ( 'resource' (lv_name= RULE_ID ) )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:580:10: 'resource' (lv_name= RULE_ID )
+ {
+ match(input,22,FOLLOW_22_in_ruleNamedResource1293);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.7/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0" /* xtext::Keyword */, null);
+
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:584:1: (lv_name= RULE_ID )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:586:6: lv_name= RULE_ID
+ {
+ lv_name=(Token)input.LT(1);
+ match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleNamedResource1314);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.7/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1/@terminal" /* xtext::RuleCall */, "name");
+
+
+ if (current==null) {
+ current = factory.create("NamedResource");
+ associateNodeWithAstElement(currentNode, current);
+ }
+
+ try {
+ factory.set(current, "name", lv_name, "ID", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+
+
+ }
+
+
+ }
+
+ match(input,13,FOLLOW_13_in_ruleNamedResource1335);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.7/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1" /* xtext::Keyword */, null);
+
+
+ }
+
+ match(input,23,FOLLOW_23_in_ruleNamedResource1345);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.7/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1" /* xtext::Keyword */, null);
+
+
+ }
+
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:612:2: ( ( 'uri' (lv_leftUri= RULE_STRING ) ) | (lv_leftRoot= ruleCreatedObject ) )
+ int alt9=2;
+ int LA9_0 = input.LA(1);
+
+ if ( (LA9_0==16) ) {
+ alt9=1;
+ }
+ else if ( ((LA9_0>=34 && LA9_0<=35)) ) {
+ alt9=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("612:2: ( ( 'uri' (lv_leftUri= RULE_STRING ) ) | (lv_leftRoot= ruleCreatedObject ) )", 9, 0, input);
+
+ throw nvae;
+ }
+ switch (alt9) {
+ case 1 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:612:3: ( 'uri' (lv_leftUri= RULE_STRING ) )
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:612:3: ( 'uri' (lv_leftUri= RULE_STRING ) )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:612:4: 'uri' (lv_leftUri= RULE_STRING )
+ {
+ match(input,16,FOLLOW_16_in_ruleNamedResource1357);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.7/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1/@groups.0/@abstractTokens.0" /* xtext::Keyword */, null);
+
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:616:1: (lv_leftUri= RULE_STRING )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:618:6: lv_leftUri= RULE_STRING
+ {
+ lv_leftUri=(Token)input.LT(1);
+ match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleNamedResource1378);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.7/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1/@groups.0/@abstractTokens.1/@terminal" /* xtext::RuleCall */, "leftUri");
+
+
+ if (current==null) {
+ current = factory.create("NamedResource");
+ associateNodeWithAstElement(currentNode, current);
+ }
+
+ try {
+ factory.set(current, "leftUri", lv_leftUri, "STRING", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:637:6: (lv_leftRoot= ruleCreatedObject )
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:637:6: (lv_leftRoot= ruleCreatedObject )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:640:6: lv_leftRoot= ruleCreatedObject
+ {
+
+ currentNode=createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.7/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1/@groups.1/@terminal" /* xtext::RuleCall */, currentNode);
+
+ pushFollow(FOLLOW_ruleCreatedObject_in_ruleNamedResource1430);
+ lv_leftRoot=ruleCreatedObject();
+ _fsp--;
+
+
+ if (current==null) {
+ current = factory.create("NamedResource");
+ associateNodeWithAstElement(currentNode.getParent(), current);
+ }
+
+ try {
+ factory.set(current, "leftRoot", lv_leftRoot, "CreatedObject", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ match(input,24,FOLLOW_24_in_ruleNamedResource1445);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.7/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1" /* xtext::Keyword */, null);
+
+
+ }
+
+ match(input,25,FOLLOW_25_in_ruleNamedResource1455);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.7/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1" /* xtext::Keyword */, null);
+
+
+ }
+
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:666:2: ( ( 'uri' (lv_rightUri= RULE_STRING ) ) | (lv_rightRoot= ruleCreatedObject ) )
+ int alt10=2;
+ int LA10_0 = input.LA(1);
+
+ if ( (LA10_0==16) ) {
+ alt10=1;
+ }
+ else if ( ((LA10_0>=34 && LA10_0<=35)) ) {
+ alt10=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("666:2: ( ( 'uri' (lv_rightUri= RULE_STRING ) ) | (lv_rightRoot= ruleCreatedObject ) )", 10, 0, input);
+
+ throw nvae;
+ }
+ switch (alt10) {
+ case 1 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:666:3: ( 'uri' (lv_rightUri= RULE_STRING ) )
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:666:3: ( 'uri' (lv_rightUri= RULE_STRING ) )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:666:4: 'uri' (lv_rightUri= RULE_STRING )
+ {
+ match(input,16,FOLLOW_16_in_ruleNamedResource1467);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.7/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1/@groups.0/@abstractTokens.0" /* xtext::Keyword */, null);
+
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:670:1: (lv_rightUri= RULE_STRING )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:672:6: lv_rightUri= RULE_STRING
+ {
+ lv_rightUri=(Token)input.LT(1);
+ match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleNamedResource1488);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.7/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1/@groups.0/@abstractTokens.1/@terminal" /* xtext::RuleCall */, "rightUri");
+
+
+ if (current==null) {
+ current = factory.create("NamedResource");
+ associateNodeWithAstElement(currentNode, current);
+ }
+
+ try {
+ factory.set(current, "rightUri", lv_rightUri, "STRING", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:691:6: (lv_rightRoot= ruleCreatedObject )
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:691:6: (lv_rightRoot= ruleCreatedObject )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:694:6: lv_rightRoot= ruleCreatedObject
+ {
+
+ currentNode=createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.7/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1/@groups.1/@terminal" /* xtext::RuleCall */, currentNode);
+
+ pushFollow(FOLLOW_ruleCreatedObject_in_ruleNamedResource1540);
+ lv_rightRoot=ruleCreatedObject();
+ _fsp--;
+
+
+ if (current==null) {
+ current = factory.create("NamedResource");
+ associateNodeWithAstElement(currentNode.getParent(), current);
+ }
+
+ try {
+ factory.set(current, "rightRoot", lv_rightRoot, "CreatedObject", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ match(input,24,FOLLOW_24_in_ruleNamedResource1555);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.7/@alternatives/@abstractTokens.0/@abstractTokens.1" /* xtext::Keyword */, null);
+
+
+ }
+
+ match(input,14,FOLLOW_14_in_ruleNamedResource1565);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.7/@alternatives/@abstractTokens.1" /* xtext::Keyword */, null);
+
+
+ }
+
+
+ }
+
+ resetLookahead();
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end ruleNamedResource
+
+
+ // $ANTLR start entryRuleObjectRef
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:731:1: entryRuleObjectRef returns [EObject current=null] : iv_ruleObjectRef= ruleObjectRef EOF ;
+ public final EObject entryRuleObjectRef() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleObjectRef = null;
+
+
+ try {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:731:51: (iv_ruleObjectRef= ruleObjectRef EOF )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:732:2: iv_ruleObjectRef= ruleObjectRef EOF
+ {
+ currentNode = createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.9" /* xtext::ParserRule */, currentNode);
+ pushFollow(FOLLOW_ruleObjectRef_in_entryRuleObjectRef1602);
+ iv_ruleObjectRef=ruleObjectRef();
+ _fsp--;
+
+ current =iv_ruleObjectRef;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleObjectRef1612);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end entryRuleObjectRef
+
+
+ // $ANTLR start ruleObjectRef
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:739:1: ruleObjectRef returns [EObject current=null] : ( ( ( 'object' (lv_name= RULE_ID )? ) ( ( ( ( RULE_ID ) ) (lv_leftFrag= RULE_FRAGMENT ) ) | ( ( ( ( ( 'left' ( ( RULE_ID ) ) ) (lv_leftFrag= RULE_FRAGMENT ) ) 'right' ) ( ( RULE_ID ) ) ) (lv_rightFrag= RULE_FRAGMENT ) ) ) ) ( ( ( ( '{' ( (lv_assignments= ruleBiSingleAssignment ) | (lv_assignments= ruleBiListAssignment ) )+ ) ( 'left' (lv_leftMig= ruleMigration ) )? ) ( 'right' (lv_rightMig= ruleMigration ) )? ) '}' )? ) ;
+ public final EObject ruleObjectRef() throws RecognitionException {
+ EObject current = null;
+
+ Token lv_name=null;
+ Token lv_leftFrag=null;
+ Token lv_rightFrag=null;
+ EObject lv_assignments = null;
+
+ EObject lv_leftMig = null;
+
+ EObject lv_rightMig = null;
+
+
+ EObject temp=null; setCurrentLookahead(); resetLookahead();
+
+ try {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:743:6: ( ( ( ( 'object' (lv_name= RULE_ID )? ) ( ( ( ( RULE_ID ) ) (lv_leftFrag= RULE_FRAGMENT ) ) | ( ( ( ( ( 'left' ( ( RULE_ID ) ) ) (lv_leftFrag= RULE_FRAGMENT ) ) 'right' ) ( ( RULE_ID ) ) ) (lv_rightFrag= RULE_FRAGMENT ) ) ) ) ( ( ( ( '{' ( (lv_assignments= ruleBiSingleAssignment ) | (lv_assignments= ruleBiListAssignment ) )+ ) ( 'left' (lv_leftMig= ruleMigration ) )? ) ( 'right' (lv_rightMig= ruleMigration ) )? ) '}' )? ) )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:744:1: ( ( ( 'object' (lv_name= RULE_ID )? ) ( ( ( ( RULE_ID ) ) (lv_leftFrag= RULE_FRAGMENT ) ) | ( ( ( ( ( 'left' ( ( RULE_ID ) ) ) (lv_leftFrag= RULE_FRAGMENT ) ) 'right' ) ( ( RULE_ID ) ) ) (lv_rightFrag= RULE_FRAGMENT ) ) ) ) ( ( ( ( '{' ( (lv_assignments= ruleBiSingleAssignment ) | (lv_assignments= ruleBiListAssignment ) )+ ) ( 'left' (lv_leftMig= ruleMigration ) )? ) ( 'right' (lv_rightMig= ruleMigration ) )? ) '}' )? )
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:744:1: ( ( ( 'object' (lv_name= RULE_ID )? ) ( ( ( ( RULE_ID ) ) (lv_leftFrag= RULE_FRAGMENT ) ) | ( ( ( ( ( 'left' ( ( RULE_ID ) ) ) (lv_leftFrag= RULE_FRAGMENT ) ) 'right' ) ( ( RULE_ID ) ) ) (lv_rightFrag= RULE_FRAGMENT ) ) ) ) ( ( ( ( '{' ( (lv_assignments= ruleBiSingleAssignment ) | (lv_assignments= ruleBiListAssignment ) )+ ) ( 'left' (lv_leftMig= ruleMigration ) )? ) ( 'right' (lv_rightMig= ruleMigration ) )? ) '}' )? )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:744:2: ( ( 'object' (lv_name= RULE_ID )? ) ( ( ( ( RULE_ID ) ) (lv_leftFrag= RULE_FRAGMENT ) ) | ( ( ( ( ( 'left' ( ( RULE_ID ) ) ) (lv_leftFrag= RULE_FRAGMENT ) ) 'right' ) ( ( RULE_ID ) ) ) (lv_rightFrag= RULE_FRAGMENT ) ) ) ) ( ( ( ( '{' ( (lv_assignments= ruleBiSingleAssignment ) | (lv_assignments= ruleBiListAssignment ) )+ ) ( 'left' (lv_leftMig= ruleMigration ) )? ) ( 'right' (lv_rightMig= ruleMigration ) )? ) '}' )?
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:744:2: ( ( 'object' (lv_name= RULE_ID )? ) ( ( ( ( RULE_ID ) ) (lv_leftFrag= RULE_FRAGMENT ) ) | ( ( ( ( ( 'left' ( ( RULE_ID ) ) ) (lv_leftFrag= RULE_FRAGMENT ) ) 'right' ) ( ( RULE_ID ) ) ) (lv_rightFrag= RULE_FRAGMENT ) ) ) )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:744:3: ( 'object' (lv_name= RULE_ID )? ) ( ( ( ( RULE_ID ) ) (lv_leftFrag= RULE_FRAGMENT ) ) | ( ( ( ( ( 'left' ( ( RULE_ID ) ) ) (lv_leftFrag= RULE_FRAGMENT ) ) 'right' ) ( ( RULE_ID ) ) ) (lv_rightFrag= RULE_FRAGMENT ) ) )
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:744:3: ( 'object' (lv_name= RULE_ID )? )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:744:4: 'object' (lv_name= RULE_ID )?
+ {
+ match(input,26,FOLLOW_26_in_ruleObjectRef1648);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.9/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0" /* xtext::Keyword */, null);
+
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:748:1: (lv_name= RULE_ID )?
+ int alt11=2;
+ int LA11_0 = input.LA(1);
+
+ if ( (LA11_0==RULE_ID) ) {
+ int LA11_1 = input.LA(2);
+
+ if ( (LA11_1==RULE_ID||LA11_1==23) ) {
+ alt11=1;
+ }
+ }
+ switch (alt11) {
+ case 1 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:750:6: lv_name= RULE_ID
+ {
+ lv_name=(Token)input.LT(1);
+ match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleObjectRef1669);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.9/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1/@terminal" /* xtext::RuleCall */, "name");
+
+
+ if (current==null) {
+ current = factory.create("ObjectRef");
+ associateNodeWithAstElement(currentNode, current);
+ }
+
+ try {
+ factory.set(current, "name", lv_name, "ID", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:768:4: ( ( ( ( RULE_ID ) ) (lv_leftFrag= RULE_FRAGMENT ) ) | ( ( ( ( ( 'left' ( ( RULE_ID ) ) ) (lv_leftFrag= RULE_FRAGMENT ) ) 'right' ) ( ( RULE_ID ) ) ) (lv_rightFrag= RULE_FRAGMENT ) ) )
+ int alt12=2;
+ int LA12_0 = input.LA(1);
+
+ if ( (LA12_0==RULE_ID) ) {
+ alt12=1;
+ }
+ else if ( (LA12_0==23) ) {
+ alt12=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("768:4: ( ( ( ( RULE_ID ) ) (lv_leftFrag= RULE_FRAGMENT ) ) | ( ( ( ( ( 'left' ( ( RULE_ID ) ) ) (lv_leftFrag= RULE_FRAGMENT ) ) 'right' ) ( ( RULE_ID ) ) ) (lv_rightFrag= RULE_FRAGMENT ) ) )", 12, 0, input);
+
+ throw nvae;
+ }
+ switch (alt12) {
+ case 1 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:768:5: ( ( ( RULE_ID ) ) (lv_leftFrag= RULE_FRAGMENT ) )
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:768:5: ( ( ( RULE_ID ) ) (lv_leftFrag= RULE_FRAGMENT ) )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:768:6: ( ( RULE_ID ) ) (lv_leftFrag= RULE_FRAGMENT )
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:768:6: ( ( RULE_ID ) )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:771:3: ( RULE_ID )
+ {
+
+ if (current==null) {
+ current = factory.create("ObjectRef");
+ associateNodeWithAstElement(currentNode, current);
+ }
+
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:777:1: ( RULE_ID )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:778:2: RULE_ID
+ {
+ match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleObjectRef1708);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.9/@alternatives/@abstractTokens.0/@abstractTokens.1/@groups.0/@abstractTokens.0/@terminal" /* xtext::CrossReference */, "leftRes");
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:783:2: (lv_leftFrag= RULE_FRAGMENT )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:785:6: lv_leftFrag= RULE_FRAGMENT
+ {
+ lv_leftFrag=(Token)input.LT(1);
+ match(input,RULE_FRAGMENT,FOLLOW_RULE_FRAGMENT_in_ruleObjectRef1733);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.9/@alternatives/@abstractTokens.0/@abstractTokens.1/@groups.0/@abstractTokens.1/@terminal" /* xtext::RuleCall */, "leftFrag");
+
+
+ if (current==null) {
+ current = factory.create("ObjectRef");
+ associateNodeWithAstElement(currentNode, current);
+ }
+
+ try {
+ factory.set(current, "leftFrag", lv_leftFrag, "FRAGMENT", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:804:6: ( ( ( ( ( 'left' ( ( RULE_ID ) ) ) (lv_leftFrag= RULE_FRAGMENT ) ) 'right' ) ( ( RULE_ID ) ) ) (lv_rightFrag= RULE_FRAGMENT ) )
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:804:6: ( ( ( ( ( 'left' ( ( RULE_ID ) ) ) (lv_leftFrag= RULE_FRAGMENT ) ) 'right' ) ( ( RULE_ID ) ) ) (lv_rightFrag= RULE_FRAGMENT ) )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:804:7: ( ( ( ( 'left' ( ( RULE_ID ) ) ) (lv_leftFrag= RULE_FRAGMENT ) ) 'right' ) ( ( RULE_ID ) ) ) (lv_rightFrag= RULE_FRAGMENT )
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:804:7: ( ( ( ( 'left' ( ( RULE_ID ) ) ) (lv_leftFrag= RULE_FRAGMENT ) ) 'right' ) ( ( RULE_ID ) ) )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:804:8: ( ( ( 'left' ( ( RULE_ID ) ) ) (lv_leftFrag= RULE_FRAGMENT ) ) 'right' ) ( ( RULE_ID ) )
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:804:8: ( ( ( 'left' ( ( RULE_ID ) ) ) (lv_leftFrag= RULE_FRAGMENT ) ) 'right' )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:804:9: ( ( 'left' ( ( RULE_ID ) ) ) (lv_leftFrag= RULE_FRAGMENT ) ) 'right'
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:804:9: ( ( 'left' ( ( RULE_ID ) ) ) (lv_leftFrag= RULE_FRAGMENT ) )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:804:10: ( 'left' ( ( RULE_ID ) ) ) (lv_leftFrag= RULE_FRAGMENT )
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:804:10: ( 'left' ( ( RULE_ID ) ) )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:804:11: 'left' ( ( RULE_ID ) )
+ {
+ match(input,23,FOLLOW_23_in_ruleObjectRef1765);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.9/@alternatives/@abstractTokens.0/@abstractTokens.1/@groups.1/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0" /* xtext::Keyword */, null);
+
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:808:1: ( ( RULE_ID ) )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:811:3: ( RULE_ID )
+ {
+
+ if (current==null) {
+ current = factory.create("ObjectRef");
+ associateNodeWithAstElement(currentNode, current);
+ }
+
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:817:1: ( RULE_ID )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:818:2: RULE_ID
+ {
+ match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleObjectRef1789);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.9/@alternatives/@abstractTokens.0/@abstractTokens.1/@groups.1/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1/@terminal" /* xtext::CrossReference */, "leftRes");
+
+
+ }
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:823:3: (lv_leftFrag= RULE_FRAGMENT )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:825:6: lv_leftFrag= RULE_FRAGMENT
+ {
+ lv_leftFrag=(Token)input.LT(1);
+ match(input,RULE_FRAGMENT,FOLLOW_RULE_FRAGMENT_in_ruleObjectRef1815);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.9/@alternatives/@abstractTokens.0/@abstractTokens.1/@groups.1/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1/@terminal" /* xtext::RuleCall */, "leftFrag");
+
+
+ if (current==null) {
+ current = factory.create("ObjectRef");
+ associateNodeWithAstElement(currentNode, current);
+ }
+
+ try {
+ factory.set(current, "leftFrag", lv_leftFrag, "FRAGMENT", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+
+
+ }
+
+
+ }
+
+ match(input,25,FOLLOW_25_in_ruleObjectRef1836);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.9/@alternatives/@abstractTokens.0/@abstractTokens.1/@groups.1/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1" /* xtext::Keyword */, null);
+
+
+ }
+
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:847:2: ( ( RULE_ID ) )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:850:3: ( RULE_ID )
+ {
+
+ if (current==null) {
+ current = factory.create("ObjectRef");
+ associateNodeWithAstElement(currentNode, current);
+ }
+
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:856:1: ( RULE_ID )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:857:2: RULE_ID
+ {
+ match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleObjectRef1861);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.9/@alternatives/@abstractTokens.0/@abstractTokens.1/@groups.1/@abstractTokens.0/@abstractTokens.1/@terminal" /* xtext::CrossReference */, "rightRes");
+
+
+ }
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:862:3: (lv_rightFrag= RULE_FRAGMENT )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:864:6: lv_rightFrag= RULE_FRAGMENT
+ {
+ lv_rightFrag=(Token)input.LT(1);
+ match(input,RULE_FRAGMENT,FOLLOW_RULE_FRAGMENT_in_ruleObjectRef1887);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.9/@alternatives/@abstractTokens.0/@abstractTokens.1/@groups.1/@abstractTokens.1/@terminal" /* xtext::RuleCall */, "rightFrag");
+
+
+ if (current==null) {
+ current = factory.create("ObjectRef");
+ associateNodeWithAstElement(currentNode, current);
+ }
+
+ try {
+ factory.set(current, "rightFrag", lv_rightFrag, "FRAGMENT", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:882:5: ( ( ( ( '{' ( (lv_assignments= ruleBiSingleAssignment ) | (lv_assignments= ruleBiListAssignment ) )+ ) ( 'left' (lv_leftMig= ruleMigration ) )? ) ( 'right' (lv_rightMig= ruleMigration ) )? ) '}' )?
+ int alt16=2;
+ int LA16_0 = input.LA(1);
+
+ if ( (LA16_0==13) ) {
+ alt16=1;
+ }
+ switch (alt16) {
+ case 1 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:882:6: ( ( ( '{' ( (lv_assignments= ruleBiSingleAssignment ) | (lv_assignments= ruleBiListAssignment ) )+ ) ( 'left' (lv_leftMig= ruleMigration ) )? ) ( 'right' (lv_rightMig= ruleMigration ) )? ) '}'
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:882:6: ( ( ( '{' ( (lv_assignments= ruleBiSingleAssignment ) | (lv_assignments= ruleBiListAssignment ) )+ ) ( 'left' (lv_leftMig= ruleMigration ) )? ) ( 'right' (lv_rightMig= ruleMigration ) )? )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:882:7: ( ( '{' ( (lv_assignments= ruleBiSingleAssignment ) | (lv_assignments= ruleBiListAssignment ) )+ ) ( 'left' (lv_leftMig= ruleMigration ) )? ) ( 'right' (lv_rightMig= ruleMigration ) )?
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:882:7: ( ( '{' ( (lv_assignments= ruleBiSingleAssignment ) | (lv_assignments= ruleBiListAssignment ) )+ ) ( 'left' (lv_leftMig= ruleMigration ) )? )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:882:8: ( '{' ( (lv_assignments= ruleBiSingleAssignment ) | (lv_assignments= ruleBiListAssignment ) )+ ) ( 'left' (lv_leftMig= ruleMigration ) )?
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:882:8: ( '{' ( (lv_assignments= ruleBiSingleAssignment ) | (lv_assignments= ruleBiListAssignment ) )+ )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:882:9: '{' ( (lv_assignments= ruleBiSingleAssignment ) | (lv_assignments= ruleBiListAssignment ) )+
+ {
+ match(input,13,FOLLOW_13_in_ruleObjectRef1914);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.9/@alternatives/@abstractTokens.1/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0" /* xtext::Keyword */, null);
+
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:886:1: ( (lv_assignments= ruleBiSingleAssignment ) | (lv_assignments= ruleBiListAssignment ) )+
+ int cnt13=0;
+ loop13:
+ do {
+ int alt13=3;
+ int LA13_0 = input.LA(1);
+
+ if ( (LA13_0==RULE_ID) ) {
+ int LA13_2 = input.LA(2);
+
+ if ( (LA13_2==27) ) {
+ int LA13_3 = input.LA(3);
+
+ if ( (LA13_3==29) ) {
+ alt13=2;
+ }
+ else if ( ((LA13_3>=RULE_ID && LA13_3<=RULE_STRING)||(LA13_3>=33 && LA13_3<=35)) ) {
+ alt13=1;
+ }
+
+
+ }
+
+
+ }
+
+
+ switch (alt13) {
+ case 1 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:886:2: (lv_assignments= ruleBiSingleAssignment )
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:886:2: (lv_assignments= ruleBiSingleAssignment )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:889:6: lv_assignments= ruleBiSingleAssignment
+ {
+
+ currentNode=createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.9/@alternatives/@abstractTokens.1/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1/@groups.0/@terminal" /* xtext::RuleCall */, currentNode);
+
+ pushFollow(FOLLOW_ruleBiSingleAssignment_in_ruleObjectRef1949);
+ lv_assignments=ruleBiSingleAssignment();
+ _fsp--;
+
+
+ if (current==null) {
+ current = factory.create("ObjectRef");
+ associateNodeWithAstElement(currentNode.getParent(), current);
+ }
+
+ try {
+ factory.add(current, "assignments", lv_assignments, "BiSingleAssignment", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:908:6: (lv_assignments= ruleBiListAssignment )
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:908:6: (lv_assignments= ruleBiListAssignment )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:911:6: lv_assignments= ruleBiListAssignment
+ {
+
+ currentNode=createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.9/@alternatives/@abstractTokens.1/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1/@groups.1/@terminal" /* xtext::RuleCall */, currentNode);
+
+ pushFollow(FOLLOW_ruleBiListAssignment_in_ruleObjectRef1993);
+ lv_assignments=ruleBiListAssignment();
+ _fsp--;
+
+
+ if (current==null) {
+ current = factory.create("ObjectRef");
+ associateNodeWithAstElement(currentNode.getParent(), current);
+ }
+
+ try {
+ factory.add(current, "assignments", lv_assignments, "BiListAssignment", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ if ( cnt13 >= 1 ) break loop13;
+ EarlyExitException eee =
+ new EarlyExitException(13, input);
+ throw eee;
+ }
+ cnt13++;
+ } while (true);
+
+
+ }
+
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:929:5: ( 'left' (lv_leftMig= ruleMigration ) )?
+ int alt14=2;
+ int LA14_0 = input.LA(1);
+
+ if ( (LA14_0==23) ) {
+ alt14=1;
+ }
+ switch (alt14) {
+ case 1 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:929:6: 'left' (lv_leftMig= ruleMigration )
+ {
+ match(input,23,FOLLOW_23_in_ruleObjectRef2010);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.9/@alternatives/@abstractTokens.1/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1/@abstractTokens.0" /* xtext::Keyword */, null);
+
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:933:1: (lv_leftMig= ruleMigration )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:936:6: lv_leftMig= ruleMigration
+ {
+
+ currentNode=createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.9/@alternatives/@abstractTokens.1/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1/@abstractTokens.1/@terminal" /* xtext::RuleCall */, currentNode);
+
+ pushFollow(FOLLOW_ruleMigration_in_ruleObjectRef2044);
+ lv_leftMig=ruleMigration();
+ _fsp--;
+
+
+ if (current==null) {
+ current = factory.create("ObjectRef");
+ associateNodeWithAstElement(currentNode.getParent(), current);
+ }
+
+ try {
+ factory.set(current, "leftMig", lv_leftMig, "Migration", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:954:5: ( 'right' (lv_rightMig= ruleMigration ) )?
+ int alt15=2;
+ int LA15_0 = input.LA(1);
+
+ if ( (LA15_0==25) ) {
+ alt15=1;
+ }
+ switch (alt15) {
+ case 1 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:954:6: 'right' (lv_rightMig= ruleMigration )
+ {
+ match(input,25,FOLLOW_25_in_ruleObjectRef2061);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.9/@alternatives/@abstractTokens.1/@abstractTokens.0/@abstractTokens.1/@abstractTokens.0" /* xtext::Keyword */, null);
+
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:958:1: (lv_rightMig= ruleMigration )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:961:6: lv_rightMig= ruleMigration
+ {
+
+ currentNode=createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.9/@alternatives/@abstractTokens.1/@abstractTokens.0/@abstractTokens.1/@abstractTokens.1/@terminal" /* xtext::RuleCall */, currentNode);
+
+ pushFollow(FOLLOW_ruleMigration_in_ruleObjectRef2095);
+ lv_rightMig=ruleMigration();
+ _fsp--;
+
+
+ if (current==null) {
+ current = factory.create("ObjectRef");
+ associateNodeWithAstElement(currentNode.getParent(), current);
+ }
+
+ try {
+ factory.set(current, "rightMig", lv_rightMig, "Migration", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ match(input,14,FOLLOW_14_in_ruleObjectRef2111);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.9/@alternatives/@abstractTokens.1/@abstractTokens.1" /* xtext::Keyword */, null);
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+
+ }
+
+ resetLookahead();
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end ruleObjectRef
+
+
+ // $ANTLR start entryRuleBiSingleAssignment
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:994:1: entryRuleBiSingleAssignment returns [EObject current=null] : iv_ruleBiSingleAssignment= ruleBiSingleAssignment EOF ;
+ public final EObject entryRuleBiSingleAssignment() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleBiSingleAssignment = null;
+
+
+ try {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:994:60: (iv_ruleBiSingleAssignment= ruleBiSingleAssignment EOF )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:995:2: iv_ruleBiSingleAssignment= ruleBiSingleAssignment EOF
+ {
+ currentNode = createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.11" /* xtext::ParserRule */, currentNode);
+ pushFollow(FOLLOW_ruleBiSingleAssignment_in_entryRuleBiSingleAssignment2150);
+ iv_ruleBiSingleAssignment=ruleBiSingleAssignment();
+ _fsp--;
+
+ current =iv_ruleBiSingleAssignment;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleBiSingleAssignment2160);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end entryRuleBiSingleAssignment
+
+
+ // $ANTLR start ruleBiSingleAssignment
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1002:1: ruleBiSingleAssignment returns [EObject current=null] : ( ( ( ( ( (lv_feature= RULE_ID ) '=' ) (lv_leftValue= ruleSingleAssignmentValue ) ) '|' ) (lv_rightValue= ruleSingleAssignmentValue ) ) ';' ) ;
+ public final EObject ruleBiSingleAssignment() throws RecognitionException {
+ EObject current = null;
+
+ Token lv_feature=null;
+ EObject lv_leftValue = null;
+
+ EObject lv_rightValue = null;
+
+
+ EObject temp=null; setCurrentLookahead(); resetLookahead();
+
+ try {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1006:6: ( ( ( ( ( ( (lv_feature= RULE_ID ) '=' ) (lv_leftValue= ruleSingleAssignmentValue ) ) '|' ) (lv_rightValue= ruleSingleAssignmentValue ) ) ';' ) )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1007:1: ( ( ( ( ( (lv_feature= RULE_ID ) '=' ) (lv_leftValue= ruleSingleAssignmentValue ) ) '|' ) (lv_rightValue= ruleSingleAssignmentValue ) ) ';' )
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1007:1: ( ( ( ( ( (lv_feature= RULE_ID ) '=' ) (lv_leftValue= ruleSingleAssignmentValue ) ) '|' ) (lv_rightValue= ruleSingleAssignmentValue ) ) ';' )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1007:2: ( ( ( ( (lv_feature= RULE_ID ) '=' ) (lv_leftValue= ruleSingleAssignmentValue ) ) '|' ) (lv_rightValue= ruleSingleAssignmentValue ) ) ';'
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1007:2: ( ( ( ( (lv_feature= RULE_ID ) '=' ) (lv_leftValue= ruleSingleAssignmentValue ) ) '|' ) (lv_rightValue= ruleSingleAssignmentValue ) )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1007:3: ( ( ( (lv_feature= RULE_ID ) '=' ) (lv_leftValue= ruleSingleAssignmentValue ) ) '|' ) (lv_rightValue= ruleSingleAssignmentValue )
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1007:3: ( ( ( (lv_feature= RULE_ID ) '=' ) (lv_leftValue= ruleSingleAssignmentValue ) ) '|' )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1007:4: ( ( (lv_feature= RULE_ID ) '=' ) (lv_leftValue= ruleSingleAssignmentValue ) ) '|'
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1007:4: ( ( (lv_feature= RULE_ID ) '=' ) (lv_leftValue= ruleSingleAssignmentValue ) )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1007:5: ( (lv_feature= RULE_ID ) '=' ) (lv_leftValue= ruleSingleAssignmentValue )
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1007:5: ( (lv_feature= RULE_ID ) '=' )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1007:6: (lv_feature= RULE_ID ) '='
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1007:6: (lv_feature= RULE_ID )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1009:6: lv_feature= RULE_ID
+ {
+ lv_feature=(Token)input.LT(1);
+ match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleBiSingleAssignment2210);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.11/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@terminal" /* xtext::RuleCall */, "feature");
+
+
+ if (current==null) {
+ current = factory.create("SingleAssignment");
+ associateNodeWithAstElement(currentNode, current);
+ }
+
+ try {
+ factory.set(current, "feature", lv_feature, "ID", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+
+
+ }
+
+ match(input,27,FOLLOW_27_in_ruleBiSingleAssignment2230);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.11/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1" /* xtext::Keyword */, null);
+
+
+ }
+
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1031:2: (lv_leftValue= ruleSingleAssignmentValue )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1034:6: lv_leftValue= ruleSingleAssignmentValue
+ {
+
+ currentNode=createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.11/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1/@terminal" /* xtext::RuleCall */, currentNode);
+
+ pushFollow(FOLLOW_ruleSingleAssignmentValue_in_ruleBiSingleAssignment2265);
+ lv_leftValue=ruleSingleAssignmentValue();
+ _fsp--;
+
+
+ if (current==null) {
+ current = factory.create("SingleAssignment");
+ associateNodeWithAstElement(currentNode.getParent(), current);
+ }
+
+ try {
+ factory.set(current, "leftValue", lv_leftValue, "SingleAssignmentValue", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+
+
+ }
+
+
+ }
+
+ match(input,28,FOLLOW_28_in_ruleBiSingleAssignment2279);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.11/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1" /* xtext::Keyword */, null);
+
+
+ }
+
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1056:2: (lv_rightValue= ruleSingleAssignmentValue )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1059:6: lv_rightValue= ruleSingleAssignmentValue
+ {
+
+ currentNode=createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.11/@alternatives/@abstractTokens.0/@abstractTokens.1/@terminal" /* xtext::RuleCall */, currentNode);
+
+ pushFollow(FOLLOW_ruleSingleAssignmentValue_in_ruleBiSingleAssignment2314);
+ lv_rightValue=ruleSingleAssignmentValue();
+ _fsp--;
+
+
+ if (current==null) {
+ current = factory.create("SingleAssignment");
+ associateNodeWithAstElement(currentNode.getParent(), current);
+ }
+
+ try {
+ factory.set(current, "rightValue", lv_rightValue, "SingleAssignmentValue", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+
+
+ }
+
+
+ }
+
+ match(input,24,FOLLOW_24_in_ruleBiSingleAssignment2328);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.11/@alternatives/@abstractTokens.1" /* xtext::Keyword */, null);
+
+
+ }
+
+
+ }
+
+ resetLookahead();
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end ruleBiSingleAssignment
+
+
+ // $ANTLR start entryRuleBiListAssignment
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1090:1: entryRuleBiListAssignment returns [EObject current=null] : iv_ruleBiListAssignment= ruleBiListAssignment EOF ;
+ public final EObject entryRuleBiListAssignment() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleBiListAssignment = null;
+
+
+ try {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1090:58: (iv_ruleBiListAssignment= ruleBiListAssignment EOF )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1091:2: iv_ruleBiListAssignment= ruleBiListAssignment EOF
+ {
+ currentNode = createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.12" /* xtext::ParserRule */, currentNode);
+ pushFollow(FOLLOW_ruleBiListAssignment_in_entryRuleBiListAssignment2363);
+ iv_ruleBiListAssignment=ruleBiListAssignment();
+ _fsp--;
+
+ current =iv_ruleBiListAssignment;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleBiListAssignment2373);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end entryRuleBiListAssignment
+
+
+ // $ANTLR start ruleBiListAssignment
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1098:1: ruleBiListAssignment returns [EObject current=null] : ( ( ( ( ( ( ( (lv_feature= RULE_ID ) '=' ) '[' ) ( (lv_leftValues= ruleListAssignmentValue ) ( ',' (lv_leftValues= ruleListAssignmentValue ) )* )? ) '|' ) ( (lv_rightValues= ruleListAssignmentValue ) ( ',' (lv_rightValues= ruleListAssignmentValue ) )* )? ) ']' ) ';' ) ;
+ public final EObject ruleBiListAssignment() throws RecognitionException {
+ EObject current = null;
+
+ Token lv_feature=null;
+ EObject lv_leftValues = null;
+
+ EObject lv_rightValues = null;
+
+
+ EObject temp=null; setCurrentLookahead(); resetLookahead();
+
+ try {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1102:6: ( ( ( ( ( ( ( ( (lv_feature= RULE_ID ) '=' ) '[' ) ( (lv_leftValues= ruleListAssignmentValue ) ( ',' (lv_leftValues= ruleListAssignmentValue ) )* )? ) '|' ) ( (lv_rightValues= ruleListAssignmentValue ) ( ',' (lv_rightValues= ruleListAssignmentValue ) )* )? ) ']' ) ';' ) )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1103:1: ( ( ( ( ( ( ( (lv_feature= RULE_ID ) '=' ) '[' ) ( (lv_leftValues= ruleListAssignmentValue ) ( ',' (lv_leftValues= ruleListAssignmentValue ) )* )? ) '|' ) ( (lv_rightValues= ruleListAssignmentValue ) ( ',' (lv_rightValues= ruleListAssignmentValue ) )* )? ) ']' ) ';' )
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1103:1: ( ( ( ( ( ( ( (lv_feature= RULE_ID ) '=' ) '[' ) ( (lv_leftValues= ruleListAssignmentValue ) ( ',' (lv_leftValues= ruleListAssignmentValue ) )* )? ) '|' ) ( (lv_rightValues= ruleListAssignmentValue ) ( ',' (lv_rightValues= ruleListAssignmentValue ) )* )? ) ']' ) ';' )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1103:2: ( ( ( ( ( ( (lv_feature= RULE_ID ) '=' ) '[' ) ( (lv_leftValues= ruleListAssignmentValue ) ( ',' (lv_leftValues= ruleListAssignmentValue ) )* )? ) '|' ) ( (lv_rightValues= ruleListAssignmentValue ) ( ',' (lv_rightValues= ruleListAssignmentValue ) )* )? ) ']' ) ';'
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1103:2: ( ( ( ( ( ( (lv_feature= RULE_ID ) '=' ) '[' ) ( (lv_leftValues= ruleListAssignmentValue ) ( ',' (lv_leftValues= ruleListAssignmentValue ) )* )? ) '|' ) ( (lv_rightValues= ruleListAssignmentValue ) ( ',' (lv_rightValues= ruleListAssignmentValue ) )* )? ) ']' )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1103:3: ( ( ( ( ( (lv_feature= RULE_ID ) '=' ) '[' ) ( (lv_leftValues= ruleListAssignmentValue ) ( ',' (lv_leftValues= ruleListAssignmentValue ) )* )? ) '|' ) ( (lv_rightValues= ruleListAssignmentValue ) ( ',' (lv_rightValues= ruleListAssignmentValue ) )* )? ) ']'
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1103:3: ( ( ( ( ( (lv_feature= RULE_ID ) '=' ) '[' ) ( (lv_leftValues= ruleListAssignmentValue ) ( ',' (lv_leftValues= ruleListAssignmentValue ) )* )? ) '|' ) ( (lv_rightValues= ruleListAssignmentValue ) ( ',' (lv_rightValues= ruleListAssignmentValue ) )* )? )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1103:4: ( ( ( ( (lv_feature= RULE_ID ) '=' ) '[' ) ( (lv_leftValues= ruleListAssignmentValue ) ( ',' (lv_leftValues= ruleListAssignmentValue ) )* )? ) '|' ) ( (lv_rightValues= ruleListAssignmentValue ) ( ',' (lv_rightValues= ruleListAssignmentValue ) )* )?
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1103:4: ( ( ( ( (lv_feature= RULE_ID ) '=' ) '[' ) ( (lv_leftValues= ruleListAssignmentValue ) ( ',' (lv_leftValues= ruleListAssignmentValue ) )* )? ) '|' )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1103:5: ( ( ( (lv_feature= RULE_ID ) '=' ) '[' ) ( (lv_leftValues= ruleListAssignmentValue ) ( ',' (lv_leftValues= ruleListAssignmentValue ) )* )? ) '|'
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1103:5: ( ( ( (lv_feature= RULE_ID ) '=' ) '[' ) ( (lv_leftValues= ruleListAssignmentValue ) ( ',' (lv_leftValues= ruleListAssignmentValue ) )* )? )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1103:6: ( ( (lv_feature= RULE_ID ) '=' ) '[' ) ( (lv_leftValues= ruleListAssignmentValue ) ( ',' (lv_leftValues= ruleListAssignmentValue ) )* )?
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1103:6: ( ( (lv_feature= RULE_ID ) '=' ) '[' )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1103:7: ( (lv_feature= RULE_ID ) '=' ) '['
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1103:7: ( (lv_feature= RULE_ID ) '=' )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1103:8: (lv_feature= RULE_ID ) '='
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1103:8: (lv_feature= RULE_ID )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1105:6: lv_feature= RULE_ID
+ {
+ lv_feature=(Token)input.LT(1);
+ match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleBiListAssignment2425);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.12/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@terminal" /* xtext::RuleCall */, "feature");
+
+
+ if (current==null) {
+ current = factory.create("ListAssignment");
+ associateNodeWithAstElement(currentNode, current);
+ }
+
+ try {
+ factory.set(current, "feature", lv_feature, "ID", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+
+
+ }
+
+ match(input,27,FOLLOW_27_in_ruleBiListAssignment2445);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.12/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1" /* xtext::Keyword */, null);
+
+
+ }
+
+ match(input,29,FOLLOW_29_in_ruleBiListAssignment2455);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.12/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1" /* xtext::Keyword */, null);
+
+
+ }
+
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1131:2: ( (lv_leftValues= ruleListAssignmentValue ) ( ',' (lv_leftValues= ruleListAssignmentValue ) )* )?
+ int alt18=2;
+ int LA18_0 = input.LA(1);
+
+ if ( (LA18_0==RULE_INT) ) {
+ alt18=1;
+ }
+ switch (alt18) {
+ case 1 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1131:3: (lv_leftValues= ruleListAssignmentValue ) ( ',' (lv_leftValues= ruleListAssignmentValue ) )*
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1131:3: (lv_leftValues= ruleListAssignmentValue )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1134:6: lv_leftValues= ruleListAssignmentValue
+ {
+
+ currentNode=createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.12/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1/@abstractTokens.0/@terminal" /* xtext::RuleCall */, currentNode);
+
+ pushFollow(FOLLOW_ruleListAssignmentValue_in_ruleBiListAssignment2491);
+ lv_leftValues=ruleListAssignmentValue();
+ _fsp--;
+
+
+ if (current==null) {
+ current = factory.create("ListAssignment");
+ associateNodeWithAstElement(currentNode.getParent(), current);
+ }
+
+ try {
+ factory.add(current, "leftValues", lv_leftValues, "ListAssignmentValue", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+
+
+ }
+
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1152:2: ( ',' (lv_leftValues= ruleListAssignmentValue ) )*
+ loop17:
+ do {
+ int alt17=2;
+ int LA17_0 = input.LA(1);
+
+ if ( (LA17_0==30) ) {
+ alt17=1;
+ }
+
+
+ switch (alt17) {
+ case 1 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1152:3: ',' (lv_leftValues= ruleListAssignmentValue )
+ {
+ match(input,30,FOLLOW_30_in_ruleBiListAssignment2505);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.12/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1/@abstractTokens.1/@abstractTokens.0" /* xtext::Keyword */, null);
+
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1156:1: (lv_leftValues= ruleListAssignmentValue )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1159:6: lv_leftValues= ruleListAssignmentValue
+ {
+
+ currentNode=createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.12/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1/@abstractTokens.1/@abstractTokens.1/@terminal" /* xtext::RuleCall */, currentNode);
+
+ pushFollow(FOLLOW_ruleListAssignmentValue_in_ruleBiListAssignment2539);
+ lv_leftValues=ruleListAssignmentValue();
+ _fsp--;
+
+
+ if (current==null) {
+ current = factory.create("ListAssignment");
+ associateNodeWithAstElement(currentNode.getParent(), current);
+ }
+
+ try {
+ factory.add(current, "leftValues", lv_leftValues, "ListAssignmentValue", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop17;
+ }
+ } while (true);
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ match(input,28,FOLLOW_28_in_ruleBiListAssignment2557);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.12/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1" /* xtext::Keyword */, null);
+
+
+ }
+
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1181:2: ( (lv_rightValues= ruleListAssignmentValue ) ( ',' (lv_rightValues= ruleListAssignmentValue ) )* )?
+ int alt20=2;
+ int LA20_0 = input.LA(1);
+
+ if ( (LA20_0==RULE_INT) ) {
+ alt20=1;
+ }
+ switch (alt20) {
+ case 1 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1181:3: (lv_rightValues= ruleListAssignmentValue ) ( ',' (lv_rightValues= ruleListAssignmentValue ) )*
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1181:3: (lv_rightValues= ruleListAssignmentValue )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1184:6: lv_rightValues= ruleListAssignmentValue
+ {
+
+ currentNode=createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.12/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1/@abstractTokens.0/@terminal" /* xtext::RuleCall */, currentNode);
+
+ pushFollow(FOLLOW_ruleListAssignmentValue_in_ruleBiListAssignment2593);
+ lv_rightValues=ruleListAssignmentValue();
+ _fsp--;
+
+
+ if (current==null) {
+ current = factory.create("ListAssignment");
+ associateNodeWithAstElement(currentNode.getParent(), current);
+ }
+
+ try {
+ factory.add(current, "rightValues", lv_rightValues, "ListAssignmentValue", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+
+
+ }
+
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1202:2: ( ',' (lv_rightValues= ruleListAssignmentValue ) )*
+ loop19:
+ do {
+ int alt19=2;
+ int LA19_0 = input.LA(1);
+
+ if ( (LA19_0==30) ) {
+ alt19=1;
+ }
+
+
+ switch (alt19) {
+ case 1 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1202:3: ',' (lv_rightValues= ruleListAssignmentValue )
+ {
+ match(input,30,FOLLOW_30_in_ruleBiListAssignment2607);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.12/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1/@abstractTokens.1/@abstractTokens.0" /* xtext::Keyword */, null);
+
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1206:1: (lv_rightValues= ruleListAssignmentValue )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1209:6: lv_rightValues= ruleListAssignmentValue
+ {
+
+ currentNode=createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.12/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1/@abstractTokens.1/@abstractTokens.1/@terminal" /* xtext::RuleCall */, currentNode);
+
+ pushFollow(FOLLOW_ruleListAssignmentValue_in_ruleBiListAssignment2641);
+ lv_rightValues=ruleListAssignmentValue();
+ _fsp--;
+
+
+ if (current==null) {
+ current = factory.create("ListAssignment");
+ associateNodeWithAstElement(currentNode.getParent(), current);
+ }
+
+ try {
+ factory.add(current, "rightValues", lv_rightValues, "ListAssignmentValue", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop19;
+ }
+ } while (true);
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ match(input,31,FOLLOW_31_in_ruleBiListAssignment2659);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.12/@alternatives/@abstractTokens.0/@abstractTokens.1" /* xtext::Keyword */, null);
+
+
+ }
+
+ match(input,24,FOLLOW_24_in_ruleBiListAssignment2669);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.12/@alternatives/@abstractTokens.1" /* xtext::Keyword */, null);
+
+
+ }
+
+
+ }
+
+ resetLookahead();
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end ruleBiListAssignment
+
+
+ // $ANTLR start entryRuleMonoSingleAssignment
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1244:1: entryRuleMonoSingleAssignment returns [EObject current=null] : iv_ruleMonoSingleAssignment= ruleMonoSingleAssignment EOF ;
+ public final EObject entryRuleMonoSingleAssignment() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleMonoSingleAssignment = null;
+
+
+ try {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1244:62: (iv_ruleMonoSingleAssignment= ruleMonoSingleAssignment EOF )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1245:2: iv_ruleMonoSingleAssignment= ruleMonoSingleAssignment EOF
+ {
+ currentNode = createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.13" /* xtext::ParserRule */, currentNode);
+ pushFollow(FOLLOW_ruleMonoSingleAssignment_in_entryRuleMonoSingleAssignment2704);
+ iv_ruleMonoSingleAssignment=ruleMonoSingleAssignment();
+ _fsp--;
+
+ current =iv_ruleMonoSingleAssignment;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleMonoSingleAssignment2714);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end entryRuleMonoSingleAssignment
+
+
+ // $ANTLR start ruleMonoSingleAssignment
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1252:1: ruleMonoSingleAssignment returns [EObject current=null] : ( ( ( (lv_feature= RULE_ID ) '=' ) (lv_leftValue= ruleSingleAssignmentValue ) ) ';' ) ;
+ public final EObject ruleMonoSingleAssignment() throws RecognitionException {
+ EObject current = null;
+
+ Token lv_feature=null;
+ EObject lv_leftValue = null;
+
+
+ EObject temp=null; setCurrentLookahead(); resetLookahead();
+
+ try {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1256:6: ( ( ( ( (lv_feature= RULE_ID ) '=' ) (lv_leftValue= ruleSingleAssignmentValue ) ) ';' ) )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1257:1: ( ( ( (lv_feature= RULE_ID ) '=' ) (lv_leftValue= ruleSingleAssignmentValue ) ) ';' )
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1257:1: ( ( ( (lv_feature= RULE_ID ) '=' ) (lv_leftValue= ruleSingleAssignmentValue ) ) ';' )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1257:2: ( ( (lv_feature= RULE_ID ) '=' ) (lv_leftValue= ruleSingleAssignmentValue ) ) ';'
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1257:2: ( ( (lv_feature= RULE_ID ) '=' ) (lv_leftValue= ruleSingleAssignmentValue ) )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1257:3: ( (lv_feature= RULE_ID ) '=' ) (lv_leftValue= ruleSingleAssignmentValue )
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1257:3: ( (lv_feature= RULE_ID ) '=' )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1257:4: (lv_feature= RULE_ID ) '='
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1257:4: (lv_feature= RULE_ID )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1259:6: lv_feature= RULE_ID
+ {
+ lv_feature=(Token)input.LT(1);
+ match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleMonoSingleAssignment2762);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.13/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@terminal" /* xtext::RuleCall */, "feature");
+
+
+ if (current==null) {
+ current = factory.create("SingleAssignment");
+ associateNodeWithAstElement(currentNode, current);
+ }
+
+ try {
+ factory.set(current, "feature", lv_feature, "ID", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+
+
+ }
+
+ match(input,27,FOLLOW_27_in_ruleMonoSingleAssignment2782);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.13/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1" /* xtext::Keyword */, null);
+
+
+ }
+
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1281:2: (lv_leftValue= ruleSingleAssignmentValue )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1284:6: lv_leftValue= ruleSingleAssignmentValue
+ {
+
+ currentNode=createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.13/@alternatives/@abstractTokens.0/@abstractTokens.1/@terminal" /* xtext::RuleCall */, currentNode);
+
+ pushFollow(FOLLOW_ruleSingleAssignmentValue_in_ruleMonoSingleAssignment2817);
+ lv_leftValue=ruleSingleAssignmentValue();
+ _fsp--;
+
+
+ if (current==null) {
+ current = factory.create("SingleAssignment");
+ associateNodeWithAstElement(currentNode.getParent(), current);
+ }
+
+ try {
+ factory.set(current, "leftValue", lv_leftValue, "SingleAssignmentValue", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+
+
+ }
+
+
+ }
+
+ match(input,24,FOLLOW_24_in_ruleMonoSingleAssignment2831);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.13/@alternatives/@abstractTokens.1" /* xtext::Keyword */, null);
+
+
+ }
+
+
+ }
+
+ resetLookahead();
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end ruleMonoSingleAssignment
+
+
+ // $ANTLR start entryRuleMonoListAssignment
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1315:1: entryRuleMonoListAssignment returns [EObject current=null] : iv_ruleMonoListAssignment= ruleMonoListAssignment EOF ;
+ public final EObject entryRuleMonoListAssignment() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleMonoListAssignment = null;
+
+
+ try {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1315:60: (iv_ruleMonoListAssignment= ruleMonoListAssignment EOF )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1316:2: iv_ruleMonoListAssignment= ruleMonoListAssignment EOF
+ {
+ currentNode = createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.14" /* xtext::ParserRule */, currentNode);
+ pushFollow(FOLLOW_ruleMonoListAssignment_in_entryRuleMonoListAssignment2866);
+ iv_ruleMonoListAssignment=ruleMonoListAssignment();
+ _fsp--;
+
+ current =iv_ruleMonoListAssignment;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleMonoListAssignment2876);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end entryRuleMonoListAssignment
+
+
+ // $ANTLR start ruleMonoListAssignment
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1323:1: ruleMonoListAssignment returns [EObject current=null] : ( ( ( ( ( (lv_feature= RULE_ID ) '=' ) '[' ) ( (lv_leftValues= ruleAssignmentValue ) ( ',' (lv_leftValues= ruleAssignmentValue ) )* )? ) ']' ) ';' ) ;
+ public final EObject ruleMonoListAssignment() throws RecognitionException {
+ EObject current = null;
+
+ Token lv_feature=null;
+ EObject lv_leftValues = null;
+
+
+ EObject temp=null; setCurrentLookahead(); resetLookahead();
+
+ try {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1327:6: ( ( ( ( ( ( (lv_feature= RULE_ID ) '=' ) '[' ) ( (lv_leftValues= ruleAssignmentValue ) ( ',' (lv_leftValues= ruleAssignmentValue ) )* )? ) ']' ) ';' ) )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1328:1: ( ( ( ( ( (lv_feature= RULE_ID ) '=' ) '[' ) ( (lv_leftValues= ruleAssignmentValue ) ( ',' (lv_leftValues= ruleAssignmentValue ) )* )? ) ']' ) ';' )
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1328:1: ( ( ( ( ( (lv_feature= RULE_ID ) '=' ) '[' ) ( (lv_leftValues= ruleAssignmentValue ) ( ',' (lv_leftValues= ruleAssignmentValue ) )* )? ) ']' ) ';' )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1328:2: ( ( ( ( (lv_feature= RULE_ID ) '=' ) '[' ) ( (lv_leftValues= ruleAssignmentValue ) ( ',' (lv_leftValues= ruleAssignmentValue ) )* )? ) ']' ) ';'
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1328:2: ( ( ( ( (lv_feature= RULE_ID ) '=' ) '[' ) ( (lv_leftValues= ruleAssignmentValue ) ( ',' (lv_leftValues= ruleAssignmentValue ) )* )? ) ']' )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1328:3: ( ( ( (lv_feature= RULE_ID ) '=' ) '[' ) ( (lv_leftValues= ruleAssignmentValue ) ( ',' (lv_leftValues= ruleAssignmentValue ) )* )? ) ']'
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1328:3: ( ( ( (lv_feature= RULE_ID ) '=' ) '[' ) ( (lv_leftValues= ruleAssignmentValue ) ( ',' (lv_leftValues= ruleAssignmentValue ) )* )? )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1328:4: ( ( (lv_feature= RULE_ID ) '=' ) '[' ) ( (lv_leftValues= ruleAssignmentValue ) ( ',' (lv_leftValues= ruleAssignmentValue ) )* )?
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1328:4: ( ( (lv_feature= RULE_ID ) '=' ) '[' )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1328:5: ( (lv_feature= RULE_ID ) '=' ) '['
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1328:5: ( (lv_feature= RULE_ID ) '=' )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1328:6: (lv_feature= RULE_ID ) '='
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1328:6: (lv_feature= RULE_ID )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1330:6: lv_feature= RULE_ID
+ {
+ lv_feature=(Token)input.LT(1);
+ match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleMonoListAssignment2926);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.14/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@terminal" /* xtext::RuleCall */, "feature");
+
+
+ if (current==null) {
+ current = factory.create("ListAssignment");
+ associateNodeWithAstElement(currentNode, current);
+ }
+
+ try {
+ factory.set(current, "feature", lv_feature, "ID", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+
+
+ }
+
+ match(input,27,FOLLOW_27_in_ruleMonoListAssignment2946);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.14/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1" /* xtext::Keyword */, null);
+
+
+ }
+
+ match(input,29,FOLLOW_29_in_ruleMonoListAssignment2956);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.14/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1" /* xtext::Keyword */, null);
+
+
+ }
+
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1356:2: ( (lv_leftValues= ruleAssignmentValue ) ( ',' (lv_leftValues= ruleAssignmentValue ) )* )?
+ int alt22=2;
+ int LA22_0 = input.LA(1);
+
+ if ( ((LA22_0>=RULE_ID && LA22_0<=RULE_STRING)||(LA22_0>=34 && LA22_0<=35)) ) {
+ alt22=1;
+ }
+ switch (alt22) {
+ case 1 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1356:3: (lv_leftValues= ruleAssignmentValue ) ( ',' (lv_leftValues= ruleAssignmentValue ) )*
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1356:3: (lv_leftValues= ruleAssignmentValue )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1359:6: lv_leftValues= ruleAssignmentValue
+ {
+
+ currentNode=createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.14/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1/@abstractTokens.0/@terminal" /* xtext::RuleCall */, currentNode);
+
+ pushFollow(FOLLOW_ruleAssignmentValue_in_ruleMonoListAssignment2992);
+ lv_leftValues=ruleAssignmentValue();
+ _fsp--;
+
+
+ if (current==null) {
+ current = factory.create("ListAssignment");
+ associateNodeWithAstElement(currentNode.getParent(), current);
+ }
+
+ try {
+ factory.add(current, "leftValues", lv_leftValues, "AssignmentValue", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+
+
+ }
+
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1377:2: ( ',' (lv_leftValues= ruleAssignmentValue ) )*
+ loop21:
+ do {
+ int alt21=2;
+ int LA21_0 = input.LA(1);
+
+ if ( (LA21_0==30) ) {
+ alt21=1;
+ }
+
+
+ switch (alt21) {
+ case 1 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1377:3: ',' (lv_leftValues= ruleAssignmentValue )
+ {
+ match(input,30,FOLLOW_30_in_ruleMonoListAssignment3006);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.14/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1/@abstractTokens.1/@abstractTokens.0" /* xtext::Keyword */, null);
+
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1381:1: (lv_leftValues= ruleAssignmentValue )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1384:6: lv_leftValues= ruleAssignmentValue
+ {
+
+ currentNode=createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.14/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1/@abstractTokens.1/@abstractTokens.1/@terminal" /* xtext::RuleCall */, currentNode);
+
+ pushFollow(FOLLOW_ruleAssignmentValue_in_ruleMonoListAssignment3040);
+ lv_leftValues=ruleAssignmentValue();
+ _fsp--;
+
+
+ if (current==null) {
+ current = factory.create("ListAssignment");
+ associateNodeWithAstElement(currentNode.getParent(), current);
+ }
+
+ try {
+ factory.add(current, "leftValues", lv_leftValues, "AssignmentValue", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ break loop21;
+ }
+ } while (true);
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ match(input,31,FOLLOW_31_in_ruleMonoListAssignment3058);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.14/@alternatives/@abstractTokens.0/@abstractTokens.1" /* xtext::Keyword */, null);
+
+
+ }
+
+ match(input,24,FOLLOW_24_in_ruleMonoListAssignment3068);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.14/@alternatives/@abstractTokens.1" /* xtext::Keyword */, null);
+
+
+ }
+
+
+ }
+
+ resetLookahead();
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end ruleMonoListAssignment
+
+
+ // $ANTLR start entryRuleAssignmentValue
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1419:1: entryRuleAssignmentValue returns [EObject current=null] : iv_ruleAssignmentValue= ruleAssignmentValue EOF ;
+ public final EObject entryRuleAssignmentValue() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleAssignmentValue = null;
+
+
+ try {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1419:57: (iv_ruleAssignmentValue= ruleAssignmentValue EOF )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1420:2: iv_ruleAssignmentValue= ruleAssignmentValue EOF
+ {
+ currentNode = createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.15" /* xtext::ParserRule */, currentNode);
+ pushFollow(FOLLOW_ruleAssignmentValue_in_entryRuleAssignmentValue3103);
+ iv_ruleAssignmentValue=ruleAssignmentValue();
+ _fsp--;
+
+ current =iv_ruleAssignmentValue;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleAssignmentValue3113);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end entryRuleAssignmentValue
+
+
+ // $ANTLR start ruleAssignmentValue
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1427:1: ruleAssignmentValue returns [EObject current=null] : ( ( ( (lv_value= RULE_STRING ) | ( ( ( RULE_ID ) ) ( ( '.' (lv_refFeature= RULE_ID ) ) ( ( '[' (lv_refIndex= RULE_INT ) ) ']' )? )? ) ) | (lv_newObject= ruleCreatedObject ) ) | ( ( ( RULE_ID ) ) (lv_impFrag= RULE_FRAGMENT ) ) ) ;
+ public final EObject ruleAssignmentValue() throws RecognitionException {
+ EObject current = null;
+
+ Token lv_value=null;
+ Token lv_refFeature=null;
+ Token lv_refIndex=null;
+ Token lv_impFrag=null;
+ EObject lv_newObject = null;
+
+
+ EObject temp=null; setCurrentLookahead(); resetLookahead();
+
+ try {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1431:6: ( ( ( ( (lv_value= RULE_STRING ) | ( ( ( RULE_ID ) ) ( ( '.' (lv_refFeature= RULE_ID ) ) ( ( '[' (lv_refIndex= RULE_INT ) ) ']' )? )? ) ) | (lv_newObject= ruleCreatedObject ) ) | ( ( ( RULE_ID ) ) (lv_impFrag= RULE_FRAGMENT ) ) ) )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1432:1: ( ( ( (lv_value= RULE_STRING ) | ( ( ( RULE_ID ) ) ( ( '.' (lv_refFeature= RULE_ID ) ) ( ( '[' (lv_refIndex= RULE_INT ) ) ']' )? )? ) ) | (lv_newObject= ruleCreatedObject ) ) | ( ( ( RULE_ID ) ) (lv_impFrag= RULE_FRAGMENT ) ) )
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1432:1: ( ( ( (lv_value= RULE_STRING ) | ( ( ( RULE_ID ) ) ( ( '.' (lv_refFeature= RULE_ID ) ) ( ( '[' (lv_refIndex= RULE_INT ) ) ']' )? )? ) ) | (lv_newObject= ruleCreatedObject ) ) | ( ( ( RULE_ID ) ) (lv_impFrag= RULE_FRAGMENT ) ) )
+ int alt27=2;
+ int LA27_0 = input.LA(1);
+
+ if ( (LA27_0==RULE_STRING||(LA27_0>=34 && LA27_0<=35)) ) {
+ alt27=1;
+ }
+ else if ( (LA27_0==RULE_ID) ) {
+ int LA27_2 = input.LA(2);
+
+ if ( (LA27_2==RULE_FRAGMENT) ) {
+ alt27=2;
+ }
+ else if ( (LA27_2==EOF||LA27_2==19||(LA27_2>=30 && LA27_2<=31)) ) {
+ alt27=1;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("1432:1: ( ( ( (lv_value= RULE_STRING ) | ( ( ( RULE_ID ) ) ( ( '.' (lv_refFeature= RULE_ID ) ) ( ( '[' (lv_refIndex= RULE_INT ) ) ']' )? )? ) ) | (lv_newObject= ruleCreatedObject ) ) | ( ( ( RULE_ID ) ) (lv_impFrag= RULE_FRAGMENT ) ) )", 27, 2, input);
+
+ throw nvae;
+ }
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("1432:1: ( ( ( (lv_value= RULE_STRING ) | ( ( ( RULE_ID ) ) ( ( '.' (lv_refFeature= RULE_ID ) ) ( ( '[' (lv_refIndex= RULE_INT ) ) ']' )? )? ) ) | (lv_newObject= ruleCreatedObject ) ) | ( ( ( RULE_ID ) ) (lv_impFrag= RULE_FRAGMENT ) ) )", 27, 0, input);
+
+ throw nvae;
+ }
+ switch (alt27) {
+ case 1 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1432:2: ( ( (lv_value= RULE_STRING ) | ( ( ( RULE_ID ) ) ( ( '.' (lv_refFeature= RULE_ID ) ) ( ( '[' (lv_refIndex= RULE_INT ) ) ']' )? )? ) ) | (lv_newObject= ruleCreatedObject ) )
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1432:2: ( ( (lv_value= RULE_STRING ) | ( ( ( RULE_ID ) ) ( ( '.' (lv_refFeature= RULE_ID ) ) ( ( '[' (lv_refIndex= RULE_INT ) ) ']' )? )? ) ) | (lv_newObject= ruleCreatedObject ) )
+ int alt26=2;
+ int LA26_0 = input.LA(1);
+
+ if ( ((LA26_0>=RULE_ID && LA26_0<=RULE_STRING)) ) {
+ alt26=1;
+ }
+ else if ( ((LA26_0>=34 && LA26_0<=35)) ) {
+ alt26=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("1432:2: ( ( (lv_value= RULE_STRING ) | ( ( ( RULE_ID ) ) ( ( '.' (lv_refFeature= RULE_ID ) ) ( ( '[' (lv_refIndex= RULE_INT ) ) ']' )? )? ) ) | (lv_newObject= ruleCreatedObject ) )", 26, 0, input);
+
+ throw nvae;
+ }
+ switch (alt26) {
+ case 1 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1432:3: ( (lv_value= RULE_STRING ) | ( ( ( RULE_ID ) ) ( ( '.' (lv_refFeature= RULE_ID ) ) ( ( '[' (lv_refIndex= RULE_INT ) ) ']' )? )? ) )
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1432:3: ( (lv_value= RULE_STRING ) | ( ( ( RULE_ID ) ) ( ( '.' (lv_refFeature= RULE_ID ) ) ( ( '[' (lv_refIndex= RULE_INT ) ) ']' )? )? ) )
+ int alt25=2;
+ int LA25_0 = input.LA(1);
+
+ if ( (LA25_0==RULE_STRING) ) {
+ alt25=1;
+ }
+ else if ( (LA25_0==RULE_ID) ) {
+ alt25=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("1432:3: ( (lv_value= RULE_STRING ) | ( ( ( RULE_ID ) ) ( ( '.' (lv_refFeature= RULE_ID ) ) ( ( '[' (lv_refIndex= RULE_INT ) ) ']' )? )? ) )", 25, 0, input);
+
+ throw nvae;
+ }
+ switch (alt25) {
+ case 1 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1432:4: (lv_value= RULE_STRING )
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1432:4: (lv_value= RULE_STRING )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1434:6: lv_value= RULE_STRING
+ {
+ lv_value=(Token)input.LT(1);
+ match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleAssignmentValue3161);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.15/@alternatives/@groups.0/@groups.0/@groups.0/@terminal" /* xtext::RuleCall */, "value");
+
+
+ if (current==null) {
+ current = factory.create("AssignmentValue");
+ associateNodeWithAstElement(currentNode, current);
+ }
+
+ try {
+ factory.set(current, "value", lv_value, "STRING", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1453:6: ( ( ( RULE_ID ) ) ( ( '.' (lv_refFeature= RULE_ID ) ) ( ( '[' (lv_refIndex= RULE_INT ) ) ']' )? )? )
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1453:6: ( ( ( RULE_ID ) ) ( ( '.' (lv_refFeature= RULE_ID ) ) ( ( '[' (lv_refIndex= RULE_INT ) ) ']' )? )? )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1453:7: ( ( RULE_ID ) ) ( ( '.' (lv_refFeature= RULE_ID ) ) ( ( '[' (lv_refIndex= RULE_INT ) ) ']' )? )?
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1453:7: ( ( RULE_ID ) )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1456:3: ( RULE_ID )
+ {
+
+ if (current==null) {
+ current = factory.create("AssignmentValue");
+ associateNodeWithAstElement(currentNode, current);
+ }
+
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1462:1: ( RULE_ID )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1463:2: RULE_ID
+ {
+ match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleAssignmentValue3203);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.15/@alternatives/@groups.0/@groups.0/@groups.1/@abstractTokens.0/@terminal" /* xtext::CrossReference */, "refObject");
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1468:2: ( ( '.' (lv_refFeature= RULE_ID ) ) ( ( '[' (lv_refIndex= RULE_INT ) ) ']' )? )?
+ int alt24=2;
+ int LA24_0 = input.LA(1);
+
+ if ( (LA24_0==19) ) {
+ alt24=1;
+ }
+ switch (alt24) {
+ case 1 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1468:3: ( '.' (lv_refFeature= RULE_ID ) ) ( ( '[' (lv_refIndex= RULE_INT ) ) ']' )?
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1468:3: ( '.' (lv_refFeature= RULE_ID ) )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1468:4: '.' (lv_refFeature= RULE_ID )
+ {
+ match(input,19,FOLLOW_19_in_ruleAssignmentValue3218);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.15/@alternatives/@groups.0/@groups.0/@groups.1/@abstractTokens.1/@abstractTokens.0/@abstractTokens.0" /* xtext::Keyword */, null);
+
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1472:1: (lv_refFeature= RULE_ID )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1474:6: lv_refFeature= RULE_ID
+ {
+ lv_refFeature=(Token)input.LT(1);
+ match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleAssignmentValue3239);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.15/@alternatives/@groups.0/@groups.0/@groups.1/@abstractTokens.1/@abstractTokens.0/@abstractTokens.1/@terminal" /* xtext::RuleCall */, "refFeature");
+
+
+ if (current==null) {
+ current = factory.create("AssignmentValue");
+ associateNodeWithAstElement(currentNode, current);
+ }
+
+ try {
+ factory.set(current, "refFeature", lv_refFeature, "ID", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1492:3: ( ( '[' (lv_refIndex= RULE_INT ) ) ']' )?
+ int alt23=2;
+ int LA23_0 = input.LA(1);
+
+ if ( (LA23_0==29) ) {
+ alt23=1;
+ }
+ switch (alt23) {
+ case 1 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1492:4: ( '[' (lv_refIndex= RULE_INT ) ) ']'
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1492:4: ( '[' (lv_refIndex= RULE_INT ) )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1492:5: '[' (lv_refIndex= RULE_INT )
+ {
+ match(input,29,FOLLOW_29_in_ruleAssignmentValue3262);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.15/@alternatives/@groups.0/@groups.0/@groups.1/@abstractTokens.1/@abstractTokens.1/@abstractTokens.0/@abstractTokens.0" /* xtext::Keyword */, null);
+
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1496:1: (lv_refIndex= RULE_INT )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1498:6: lv_refIndex= RULE_INT
+ {
+ lv_refIndex=(Token)input.LT(1);
+ match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleAssignmentValue3283);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.15/@alternatives/@groups.0/@groups.0/@groups.1/@abstractTokens.1/@abstractTokens.1/@abstractTokens.0/@abstractTokens.1/@terminal" /* xtext::RuleCall */, "refIndex");
+
+
+ if (current==null) {
+ current = factory.create("AssignmentValue");
+ associateNodeWithAstElement(currentNode, current);
+ }
+
+ try {
+ factory.set(current, "refIndex", lv_refIndex, "INT", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+
+
+ }
+
+
+ }
+
+ match(input,31,FOLLOW_31_in_ruleAssignmentValue3304);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.15/@alternatives/@groups.0/@groups.0/@groups.1/@abstractTokens.1/@abstractTokens.1/@abstractTokens.1" /* xtext::Keyword */, null);
+
+
+ }
+ break;
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1521:6: (lv_newObject= ruleCreatedObject )
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1521:6: (lv_newObject= ruleCreatedObject )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1524:6: lv_newObject= ruleCreatedObject
+ {
+
+ currentNode=createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.15/@alternatives/@groups.0/@groups.1/@terminal" /* xtext::RuleCall */, currentNode);
+
+ pushFollow(FOLLOW_ruleCreatedObject_in_ruleAssignmentValue3350);
+ lv_newObject=ruleCreatedObject();
+ _fsp--;
+
+
+ if (current==null) {
+ current = factory.create("AssignmentValue");
+ associateNodeWithAstElement(currentNode.getParent(), current);
+ }
+
+ try {
+ factory.set(current, "newObject", lv_newObject, "CreatedObject", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1543:6: ( ( ( RULE_ID ) ) (lv_impFrag= RULE_FRAGMENT ) )
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1543:6: ( ( ( RULE_ID ) ) (lv_impFrag= RULE_FRAGMENT ) )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1543:7: ( ( RULE_ID ) ) (lv_impFrag= RULE_FRAGMENT )
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1543:7: ( ( RULE_ID ) )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1546:3: ( RULE_ID )
+ {
+
+ if (current==null) {
+ current = factory.create("AssignmentValue");
+ associateNodeWithAstElement(currentNode, current);
+ }
+
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1552:1: ( RULE_ID )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1553:2: RULE_ID
+ {
+ match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleAssignmentValue3386);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.15/@alternatives/@groups.1/@abstractTokens.0/@terminal" /* xtext::CrossReference */, "import");
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1558:2: (lv_impFrag= RULE_FRAGMENT )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1560:6: lv_impFrag= RULE_FRAGMENT
+ {
+ lv_impFrag=(Token)input.LT(1);
+ match(input,RULE_FRAGMENT,FOLLOW_RULE_FRAGMENT_in_ruleAssignmentValue3411);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.15/@alternatives/@groups.1/@abstractTokens.1/@terminal" /* xtext::RuleCall */, "impFrag");
+
+
+ if (current==null) {
+ current = factory.create("AssignmentValue");
+ associateNodeWithAstElement(currentNode, current);
+ }
+
+ try {
+ factory.set(current, "impFrag", lv_impFrag, "FRAGMENT", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ resetLookahead();
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end ruleAssignmentValue
+
+
+ // $ANTLR start entryRuleListAssignmentValue
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1587:1: entryRuleListAssignmentValue returns [EObject current=null] : iv_ruleListAssignmentValue= ruleListAssignmentValue EOF ;
+ public final EObject entryRuleListAssignmentValue() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleListAssignmentValue = null;
+
+
+ try {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1587:61: (iv_ruleListAssignmentValue= ruleListAssignmentValue EOF )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1588:2: iv_ruleListAssignmentValue= ruleListAssignmentValue EOF
+ {
+ currentNode = createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.16" /* xtext::ParserRule */, currentNode);
+ pushFollow(FOLLOW_ruleListAssignmentValue_in_entryRuleListAssignmentValue3458);
+ iv_ruleListAssignmentValue=ruleListAssignmentValue();
+ _fsp--;
+
+ current =iv_ruleListAssignmentValue;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleListAssignmentValue3468);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end entryRuleListAssignmentValue
+
+
+ // $ANTLR start ruleListAssignmentValue
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1595:1: ruleListAssignmentValue returns [EObject current=null] : ( ( (lv_index= RULE_INT ) ':' ) ( ( ( ( ( ( '[' (lv_refIndex= RULE_INT ) ) ']' ) | (lv_value= RULE_STRING ) ) | ( ( ( RULE_ID ) ) ( ( '.' (lv_refFeature= RULE_ID ) ) ( ( '[' (lv_refIndex= RULE_INT ) ) ']' )? )? ) ) | (lv_newObject= ruleCreatedObject ) ) | ( ( ( RULE_ID ) ) (lv_impFrag= RULE_FRAGMENT ) ) ) ) ;
+ public final EObject ruleListAssignmentValue() throws RecognitionException {
+ EObject current = null;
+
+ Token lv_index=null;
+ Token lv_refIndex=null;
+ Token lv_value=null;
+ Token lv_refFeature=null;
+ Token lv_impFrag=null;
+ EObject lv_newObject = null;
+
+
+ EObject temp=null; setCurrentLookahead(); resetLookahead();
+
+ try {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1599:6: ( ( ( (lv_index= RULE_INT ) ':' ) ( ( ( ( ( ( '[' (lv_refIndex= RULE_INT ) ) ']' ) | (lv_value= RULE_STRING ) ) | ( ( ( RULE_ID ) ) ( ( '.' (lv_refFeature= RULE_ID ) ) ( ( '[' (lv_refIndex= RULE_INT ) ) ']' )? )? ) ) | (lv_newObject= ruleCreatedObject ) ) | ( ( ( RULE_ID ) ) (lv_impFrag= RULE_FRAGMENT ) ) ) ) )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1600:1: ( ( (lv_index= RULE_INT ) ':' ) ( ( ( ( ( ( '[' (lv_refIndex= RULE_INT ) ) ']' ) | (lv_value= RULE_STRING ) ) | ( ( ( RULE_ID ) ) ( ( '.' (lv_refFeature= RULE_ID ) ) ( ( '[' (lv_refIndex= RULE_INT ) ) ']' )? )? ) ) | (lv_newObject= ruleCreatedObject ) ) | ( ( ( RULE_ID ) ) (lv_impFrag= RULE_FRAGMENT ) ) ) )
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1600:1: ( ( (lv_index= RULE_INT ) ':' ) ( ( ( ( ( ( '[' (lv_refIndex= RULE_INT ) ) ']' ) | (lv_value= RULE_STRING ) ) | ( ( ( RULE_ID ) ) ( ( '.' (lv_refFeature= RULE_ID ) ) ( ( '[' (lv_refIndex= RULE_INT ) ) ']' )? )? ) ) | (lv_newObject= ruleCreatedObject ) ) | ( ( ( RULE_ID ) ) (lv_impFrag= RULE_FRAGMENT ) ) ) )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1600:2: ( (lv_index= RULE_INT ) ':' ) ( ( ( ( ( ( '[' (lv_refIndex= RULE_INT ) ) ']' ) | (lv_value= RULE_STRING ) ) | ( ( ( RULE_ID ) ) ( ( '.' (lv_refFeature= RULE_ID ) ) ( ( '[' (lv_refIndex= RULE_INT ) ) ']' )? )? ) ) | (lv_newObject= ruleCreatedObject ) ) | ( ( ( RULE_ID ) ) (lv_impFrag= RULE_FRAGMENT ) ) )
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1600:2: ( (lv_index= RULE_INT ) ':' )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1600:3: (lv_index= RULE_INT ) ':'
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1600:3: (lv_index= RULE_INT )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1602:6: lv_index= RULE_INT
+ {
+ lv_index=(Token)input.LT(1);
+ match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleListAssignmentValue3515);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.16/@alternatives/@abstractTokens.0/@abstractTokens.0/@terminal" /* xtext::RuleCall */, "index");
+
+
+ if (current==null) {
+ current = factory.create("AssignmentValue");
+ associateNodeWithAstElement(currentNode, current);
+ }
+
+ try {
+ factory.set(current, "index", lv_index, "INT", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+
+
+ }
+
+ match(input,32,FOLLOW_32_in_ruleListAssignmentValue3535);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.16/@alternatives/@abstractTokens.0/@abstractTokens.1" /* xtext::Keyword */, null);
+
+
+ }
+
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1624:2: ( ( ( ( ( ( '[' (lv_refIndex= RULE_INT ) ) ']' ) | (lv_value= RULE_STRING ) ) | ( ( ( RULE_ID ) ) ( ( '.' (lv_refFeature= RULE_ID ) ) ( ( '[' (lv_refIndex= RULE_INT ) ) ']' )? )? ) ) | (lv_newObject= ruleCreatedObject ) ) | ( ( ( RULE_ID ) ) (lv_impFrag= RULE_FRAGMENT ) ) )
+ int alt33=2;
+ int LA33_0 = input.LA(1);
+
+ if ( (LA33_0==RULE_STRING||LA33_0==29||(LA33_0>=34 && LA33_0<=35)) ) {
+ alt33=1;
+ }
+ else if ( (LA33_0==RULE_ID) ) {
+ int LA33_2 = input.LA(2);
+
+ if ( (LA33_2==RULE_FRAGMENT) ) {
+ alt33=2;
+ }
+ else if ( (LA33_2==EOF||LA33_2==19||LA33_2==28||(LA33_2>=30 && LA33_2<=31)) ) {
+ alt33=1;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("1624:2: ( ( ( ( ( ( '[' (lv_refIndex= RULE_INT ) ) ']' ) | (lv_value= RULE_STRING ) ) | ( ( ( RULE_ID ) ) ( ( '.' (lv_refFeature= RULE_ID ) ) ( ( '[' (lv_refIndex= RULE_INT ) ) ']' )? )? ) ) | (lv_newObject= ruleCreatedObject ) ) | ( ( ( RULE_ID ) ) (lv_impFrag= RULE_FRAGMENT ) ) )", 33, 2, input);
+
+ throw nvae;
+ }
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("1624:2: ( ( ( ( ( ( '[' (lv_refIndex= RULE_INT ) ) ']' ) | (lv_value= RULE_STRING ) ) | ( ( ( RULE_ID ) ) ( ( '.' (lv_refFeature= RULE_ID ) ) ( ( '[' (lv_refIndex= RULE_INT ) ) ']' )? )? ) ) | (lv_newObject= ruleCreatedObject ) ) | ( ( ( RULE_ID ) ) (lv_impFrag= RULE_FRAGMENT ) ) )", 33, 0, input);
+
+ throw nvae;
+ }
+ switch (alt33) {
+ case 1 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1624:3: ( ( ( ( ( '[' (lv_refIndex= RULE_INT ) ) ']' ) | (lv_value= RULE_STRING ) ) | ( ( ( RULE_ID ) ) ( ( '.' (lv_refFeature= RULE_ID ) ) ( ( '[' (lv_refIndex= RULE_INT ) ) ']' )? )? ) ) | (lv_newObject= ruleCreatedObject ) )
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1624:3: ( ( ( ( ( '[' (lv_refIndex= RULE_INT ) ) ']' ) | (lv_value= RULE_STRING ) ) | ( ( ( RULE_ID ) ) ( ( '.' (lv_refFeature= RULE_ID ) ) ( ( '[' (lv_refIndex= RULE_INT ) ) ']' )? )? ) ) | (lv_newObject= ruleCreatedObject ) )
+ int alt32=2;
+ int LA32_0 = input.LA(1);
+
+ if ( ((LA32_0>=RULE_ID && LA32_0<=RULE_STRING)||LA32_0==29) ) {
+ alt32=1;
+ }
+ else if ( ((LA32_0>=34 && LA32_0<=35)) ) {
+ alt32=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("1624:3: ( ( ( ( ( '[' (lv_refIndex= RULE_INT ) ) ']' ) | (lv_value= RULE_STRING ) ) | ( ( ( RULE_ID ) ) ( ( '.' (lv_refFeature= RULE_ID ) ) ( ( '[' (lv_refIndex= RULE_INT ) ) ']' )? )? ) ) | (lv_newObject= ruleCreatedObject ) )", 32, 0, input);
+
+ throw nvae;
+ }
+ switch (alt32) {
+ case 1 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1624:4: ( ( ( ( '[' (lv_refIndex= RULE_INT ) ) ']' ) | (lv_value= RULE_STRING ) ) | ( ( ( RULE_ID ) ) ( ( '.' (lv_refFeature= RULE_ID ) ) ( ( '[' (lv_refIndex= RULE_INT ) ) ']' )? )? ) )
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1624:4: ( ( ( ( '[' (lv_refIndex= RULE_INT ) ) ']' ) | (lv_value= RULE_STRING ) ) | ( ( ( RULE_ID ) ) ( ( '.' (lv_refFeature= RULE_ID ) ) ( ( '[' (lv_refIndex= RULE_INT ) ) ']' )? )? ) )
+ int alt31=2;
+ int LA31_0 = input.LA(1);
+
+ if ( (LA31_0==RULE_STRING||LA31_0==29) ) {
+ alt31=1;
+ }
+ else if ( (LA31_0==RULE_ID) ) {
+ alt31=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("1624:4: ( ( ( ( '[' (lv_refIndex= RULE_INT ) ) ']' ) | (lv_value= RULE_STRING ) ) | ( ( ( RULE_ID ) ) ( ( '.' (lv_refFeature= RULE_ID ) ) ( ( '[' (lv_refIndex= RULE_INT ) ) ']' )? )? ) )", 31, 0, input);
+
+ throw nvae;
+ }
+ switch (alt31) {
+ case 1 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1624:5: ( ( ( '[' (lv_refIndex= RULE_INT ) ) ']' ) | (lv_value= RULE_STRING ) )
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1624:5: ( ( ( '[' (lv_refIndex= RULE_INT ) ) ']' ) | (lv_value= RULE_STRING ) )
+ int alt28=2;
+ int LA28_0 = input.LA(1);
+
+ if ( (LA28_0==29) ) {
+ alt28=1;
+ }
+ else if ( (LA28_0==RULE_STRING) ) {
+ alt28=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("1624:5: ( ( ( '[' (lv_refIndex= RULE_INT ) ) ']' ) | (lv_value= RULE_STRING ) )", 28, 0, input);
+
+ throw nvae;
+ }
+ switch (alt28) {
+ case 1 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1624:6: ( ( '[' (lv_refIndex= RULE_INT ) ) ']' )
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1624:6: ( ( '[' (lv_refIndex= RULE_INT ) ) ']' )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1624:7: ( '[' (lv_refIndex= RULE_INT ) ) ']'
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1624:7: ( '[' (lv_refIndex= RULE_INT ) )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1624:8: '[' (lv_refIndex= RULE_INT )
+ {
+ match(input,29,FOLLOW_29_in_ruleListAssignmentValue3551);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.16/@alternatives/@abstractTokens.1/@groups.0/@groups.0/@groups.0/@groups.0/@abstractTokens.0/@abstractTokens.0" /* xtext::Keyword */, null);
+
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1628:1: (lv_refIndex= RULE_INT )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1630:6: lv_refIndex= RULE_INT
+ {
+ lv_refIndex=(Token)input.LT(1);
+ match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleListAssignmentValue3572);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.16/@alternatives/@abstractTokens.1/@groups.0/@groups.0/@groups.0/@groups.0/@abstractTokens.0/@abstractTokens.1/@terminal" /* xtext::RuleCall */, "refIndex");
+
+
+ if (current==null) {
+ current = factory.create("AssignmentValue");
+ associateNodeWithAstElement(currentNode, current);
+ }
+
+ try {
+ factory.set(current, "refIndex", lv_refIndex, "INT", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+
+
+ }
+
+
+ }
+
+ match(input,31,FOLLOW_31_in_ruleListAssignmentValue3593);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.16/@alternatives/@abstractTokens.1/@groups.0/@groups.0/@groups.0/@groups.0/@abstractTokens.1" /* xtext::Keyword */, null);
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1653:6: (lv_value= RULE_STRING )
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1653:6: (lv_value= RULE_STRING )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1655:6: lv_value= RULE_STRING
+ {
+ lv_value=(Token)input.LT(1);
+ match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleListAssignmentValue3621);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.16/@alternatives/@abstractTokens.1/@groups.0/@groups.0/@groups.0/@groups.1/@terminal" /* xtext::RuleCall */, "value");
+
+
+ if (current==null) {
+ current = factory.create("AssignmentValue");
+ associateNodeWithAstElement(currentNode, current);
+ }
+
+ try {
+ factory.set(current, "value", lv_value, "STRING", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1674:6: ( ( ( RULE_ID ) ) ( ( '.' (lv_refFeature= RULE_ID ) ) ( ( '[' (lv_refIndex= RULE_INT ) ) ']' )? )? )
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1674:6: ( ( ( RULE_ID ) ) ( ( '.' (lv_refFeature= RULE_ID ) ) ( ( '[' (lv_refIndex= RULE_INT ) ) ']' )? )? )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1674:7: ( ( RULE_ID ) ) ( ( '.' (lv_refFeature= RULE_ID ) ) ( ( '[' (lv_refIndex= RULE_INT ) ) ']' )? )?
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1674:7: ( ( RULE_ID ) )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1677:3: ( RULE_ID )
+ {
+
+ if (current==null) {
+ current = factory.create("AssignmentValue");
+ associateNodeWithAstElement(currentNode, current);
+ }
+
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1683:1: ( RULE_ID )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1684:2: RULE_ID
+ {
+ match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleListAssignmentValue3664);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.16/@alternatives/@abstractTokens.1/@groups.0/@groups.0/@groups.1/@abstractTokens.0/@terminal" /* xtext::CrossReference */, "refObject");
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1689:2: ( ( '.' (lv_refFeature= RULE_ID ) ) ( ( '[' (lv_refIndex= RULE_INT ) ) ']' )? )?
+ int alt30=2;
+ int LA30_0 = input.LA(1);
+
+ if ( (LA30_0==19) ) {
+ alt30=1;
+ }
+ switch (alt30) {
+ case 1 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1689:3: ( '.' (lv_refFeature= RULE_ID ) ) ( ( '[' (lv_refIndex= RULE_INT ) ) ']' )?
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1689:3: ( '.' (lv_refFeature= RULE_ID ) )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1689:4: '.' (lv_refFeature= RULE_ID )
+ {
+ match(input,19,FOLLOW_19_in_ruleListAssignmentValue3679);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.16/@alternatives/@abstractTokens.1/@groups.0/@groups.0/@groups.1/@abstractTokens.1/@abstractTokens.0/@abstractTokens.0" /* xtext::Keyword */, null);
+
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1693:1: (lv_refFeature= RULE_ID )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1695:6: lv_refFeature= RULE_ID
+ {
+ lv_refFeature=(Token)input.LT(1);
+ match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleListAssignmentValue3700);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.16/@alternatives/@abstractTokens.1/@groups.0/@groups.0/@groups.1/@abstractTokens.1/@abstractTokens.0/@abstractTokens.1/@terminal" /* xtext::RuleCall */, "refFeature");
+
+
+ if (current==null) {
+ current = factory.create("AssignmentValue");
+ associateNodeWithAstElement(currentNode, current);
+ }
+
+ try {
+ factory.set(current, "refFeature", lv_refFeature, "ID", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1713:3: ( ( '[' (lv_refIndex= RULE_INT ) ) ']' )?
+ int alt29=2;
+ int LA29_0 = input.LA(1);
+
+ if ( (LA29_0==29) ) {
+ alt29=1;
+ }
+ switch (alt29) {
+ case 1 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1713:4: ( '[' (lv_refIndex= RULE_INT ) ) ']'
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1713:4: ( '[' (lv_refIndex= RULE_INT ) )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1713:5: '[' (lv_refIndex= RULE_INT )
+ {
+ match(input,29,FOLLOW_29_in_ruleListAssignmentValue3723);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.16/@alternatives/@abstractTokens.1/@groups.0/@groups.0/@groups.1/@abstractTokens.1/@abstractTokens.1/@abstractTokens.0/@abstractTokens.0" /* xtext::Keyword */, null);
+
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1717:1: (lv_refIndex= RULE_INT )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1719:6: lv_refIndex= RULE_INT
+ {
+ lv_refIndex=(Token)input.LT(1);
+ match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleListAssignmentValue3744);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.16/@alternatives/@abstractTokens.1/@groups.0/@groups.0/@groups.1/@abstractTokens.1/@abstractTokens.1/@abstractTokens.0/@abstractTokens.1/@terminal" /* xtext::RuleCall */, "refIndex");
+
+
+ if (current==null) {
+ current = factory.create("AssignmentValue");
+ associateNodeWithAstElement(currentNode, current);
+ }
+
+ try {
+ factory.set(current, "refIndex", lv_refIndex, "INT", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+
+
+ }
+
+
+ }
+
+ match(input,31,FOLLOW_31_in_ruleListAssignmentValue3765);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.16/@alternatives/@abstractTokens.1/@groups.0/@groups.0/@groups.1/@abstractTokens.1/@abstractTokens.1/@abstractTokens.1" /* xtext::Keyword */, null);
+
+
+ }
+ break;
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1742:6: (lv_newObject= ruleCreatedObject )
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1742:6: (lv_newObject= ruleCreatedObject )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1745:6: lv_newObject= ruleCreatedObject
+ {
+
+ currentNode=createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.16/@alternatives/@abstractTokens.1/@groups.0/@groups.1/@terminal" /* xtext::RuleCall */, currentNode);
+
+ pushFollow(FOLLOW_ruleCreatedObject_in_ruleListAssignmentValue3811);
+ lv_newObject=ruleCreatedObject();
+ _fsp--;
+
+
+ if (current==null) {
+ current = factory.create("AssignmentValue");
+ associateNodeWithAstElement(currentNode.getParent(), current);
+ }
+
+ try {
+ factory.set(current, "newObject", lv_newObject, "CreatedObject", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1764:6: ( ( ( RULE_ID ) ) (lv_impFrag= RULE_FRAGMENT ) )
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1764:6: ( ( ( RULE_ID ) ) (lv_impFrag= RULE_FRAGMENT ) )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1764:7: ( ( RULE_ID ) ) (lv_impFrag= RULE_FRAGMENT )
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1764:7: ( ( RULE_ID ) )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1767:3: ( RULE_ID )
+ {
+
+ if (current==null) {
+ current = factory.create("AssignmentValue");
+ associateNodeWithAstElement(currentNode, current);
+ }
+
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1773:1: ( RULE_ID )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1774:2: RULE_ID
+ {
+ match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleListAssignmentValue3847);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.16/@alternatives/@abstractTokens.1/@groups.1/@abstractTokens.0/@terminal" /* xtext::CrossReference */, "import");
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1779:2: (lv_impFrag= RULE_FRAGMENT )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1781:6: lv_impFrag= RULE_FRAGMENT
+ {
+ lv_impFrag=(Token)input.LT(1);
+ match(input,RULE_FRAGMENT,FOLLOW_RULE_FRAGMENT_in_ruleListAssignmentValue3872);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.16/@alternatives/@abstractTokens.1/@groups.1/@abstractTokens.1/@terminal" /* xtext::RuleCall */, "impFrag");
+
+
+ if (current==null) {
+ current = factory.create("AssignmentValue");
+ associateNodeWithAstElement(currentNode, current);
+ }
+
+ try {
+ factory.set(current, "impFrag", lv_impFrag, "FRAGMENT", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+
+ }
+
+ resetLookahead();
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end ruleListAssignmentValue
+
+
+ // $ANTLR start entryRuleSingleAssignmentValue
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1808:1: entryRuleSingleAssignmentValue returns [EObject current=null] : iv_ruleSingleAssignmentValue= ruleSingleAssignmentValue EOF ;
+ public final EObject entryRuleSingleAssignmentValue() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleSingleAssignmentValue = null;
+
+
+ try {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1808:63: (iv_ruleSingleAssignmentValue= ruleSingleAssignmentValue EOF )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1809:2: iv_ruleSingleAssignmentValue= ruleSingleAssignmentValue EOF
+ {
+ currentNode = createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.17" /* xtext::ParserRule */, currentNode);
+ pushFollow(FOLLOW_ruleSingleAssignmentValue_in_entryRuleSingleAssignmentValue3920);
+ iv_ruleSingleAssignmentValue=ruleSingleAssignmentValue();
+ _fsp--;
+
+ current =iv_ruleSingleAssignmentValue;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleSingleAssignmentValue3930);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end entryRuleSingleAssignmentValue
+
+
+ // $ANTLR start ruleSingleAssignmentValue
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1816:1: ruleSingleAssignmentValue returns [EObject current=null] : ( ( ( ( (lv_keyword= 'null' ) | (lv_value= RULE_STRING ) ) | ( ( ( RULE_ID ) ) ( ( '.' (lv_refFeature= RULE_ID ) ) ( ( '[' (lv_refIndex= RULE_INT ) ) ']' )? )? ) ) | (lv_newObject= ruleCreatedObject ) ) | ( ( ( RULE_ID ) ) (lv_impFrag= RULE_FRAGMENT ) ) ) ;
+ public final EObject ruleSingleAssignmentValue() throws RecognitionException {
+ EObject current = null;
+
+ Token lv_keyword=null;
+ Token lv_value=null;
+ Token lv_refFeature=null;
+ Token lv_refIndex=null;
+ Token lv_impFrag=null;
+ EObject lv_newObject = null;
+
+
+ EObject temp=null; setCurrentLookahead(); resetLookahead();
+
+ try {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1820:6: ( ( ( ( ( (lv_keyword= 'null' ) | (lv_value= RULE_STRING ) ) | ( ( ( RULE_ID ) ) ( ( '.' (lv_refFeature= RULE_ID ) ) ( ( '[' (lv_refIndex= RULE_INT ) ) ']' )? )? ) ) | (lv_newObject= ruleCreatedObject ) ) | ( ( ( RULE_ID ) ) (lv_impFrag= RULE_FRAGMENT ) ) ) )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1821:1: ( ( ( ( (lv_keyword= 'null' ) | (lv_value= RULE_STRING ) ) | ( ( ( RULE_ID ) ) ( ( '.' (lv_refFeature= RULE_ID ) ) ( ( '[' (lv_refIndex= RULE_INT ) ) ']' )? )? ) ) | (lv_newObject= ruleCreatedObject ) ) | ( ( ( RULE_ID ) ) (lv_impFrag= RULE_FRAGMENT ) ) )
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1821:1: ( ( ( ( (lv_keyword= 'null' ) | (lv_value= RULE_STRING ) ) | ( ( ( RULE_ID ) ) ( ( '.' (lv_refFeature= RULE_ID ) ) ( ( '[' (lv_refIndex= RULE_INT ) ) ']' )? )? ) ) | (lv_newObject= ruleCreatedObject ) ) | ( ( ( RULE_ID ) ) (lv_impFrag= RULE_FRAGMENT ) ) )
+ int alt39=2;
+ int LA39_0 = input.LA(1);
+
+ if ( (LA39_0==RULE_STRING||(LA39_0>=33 && LA39_0<=35)) ) {
+ alt39=1;
+ }
+ else if ( (LA39_0==RULE_ID) ) {
+ int LA39_2 = input.LA(2);
+
+ if ( (LA39_2==RULE_FRAGMENT) ) {
+ alt39=2;
+ }
+ else if ( (LA39_2==EOF||LA39_2==19||LA39_2==24||LA39_2==28) ) {
+ alt39=1;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("1821:1: ( ( ( ( (lv_keyword= 'null' ) | (lv_value= RULE_STRING ) ) | ( ( ( RULE_ID ) ) ( ( '.' (lv_refFeature= RULE_ID ) ) ( ( '[' (lv_refIndex= RULE_INT ) ) ']' )? )? ) ) | (lv_newObject= ruleCreatedObject ) ) | ( ( ( RULE_ID ) ) (lv_impFrag= RULE_FRAGMENT ) ) )", 39, 2, input);
+
+ throw nvae;
+ }
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("1821:1: ( ( ( ( (lv_keyword= 'null' ) | (lv_value= RULE_STRING ) ) | ( ( ( RULE_ID ) ) ( ( '.' (lv_refFeature= RULE_ID ) ) ( ( '[' (lv_refIndex= RULE_INT ) ) ']' )? )? ) ) | (lv_newObject= ruleCreatedObject ) ) | ( ( ( RULE_ID ) ) (lv_impFrag= RULE_FRAGMENT ) ) )", 39, 0, input);
+
+ throw nvae;
+ }
+ switch (alt39) {
+ case 1 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1821:2: ( ( ( (lv_keyword= 'null' ) | (lv_value= RULE_STRING ) ) | ( ( ( RULE_ID ) ) ( ( '.' (lv_refFeature= RULE_ID ) ) ( ( '[' (lv_refIndex= RULE_INT ) ) ']' )? )? ) ) | (lv_newObject= ruleCreatedObject ) )
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1821:2: ( ( ( (lv_keyword= 'null' ) | (lv_value= RULE_STRING ) ) | ( ( ( RULE_ID ) ) ( ( '.' (lv_refFeature= RULE_ID ) ) ( ( '[' (lv_refIndex= RULE_INT ) ) ']' )? )? ) ) | (lv_newObject= ruleCreatedObject ) )
+ int alt38=2;
+ int LA38_0 = input.LA(1);
+
+ if ( ((LA38_0>=RULE_ID && LA38_0<=RULE_STRING)||LA38_0==33) ) {
+ alt38=1;
+ }
+ else if ( ((LA38_0>=34 && LA38_0<=35)) ) {
+ alt38=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("1821:2: ( ( ( (lv_keyword= 'null' ) | (lv_value= RULE_STRING ) ) | ( ( ( RULE_ID ) ) ( ( '.' (lv_refFeature= RULE_ID ) ) ( ( '[' (lv_refIndex= RULE_INT ) ) ']' )? )? ) ) | (lv_newObject= ruleCreatedObject ) )", 38, 0, input);
+
+ throw nvae;
+ }
+ switch (alt38) {
+ case 1 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1821:3: ( ( (lv_keyword= 'null' ) | (lv_value= RULE_STRING ) ) | ( ( ( RULE_ID ) ) ( ( '.' (lv_refFeature= RULE_ID ) ) ( ( '[' (lv_refIndex= RULE_INT ) ) ']' )? )? ) )
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1821:3: ( ( (lv_keyword= 'null' ) | (lv_value= RULE_STRING ) ) | ( ( ( RULE_ID ) ) ( ( '.' (lv_refFeature= RULE_ID ) ) ( ( '[' (lv_refIndex= RULE_INT ) ) ']' )? )? ) )
+ int alt37=2;
+ int LA37_0 = input.LA(1);
+
+ if ( (LA37_0==RULE_STRING||LA37_0==33) ) {
+ alt37=1;
+ }
+ else if ( (LA37_0==RULE_ID) ) {
+ alt37=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("1821:3: ( ( (lv_keyword= 'null' ) | (lv_value= RULE_STRING ) ) | ( ( ( RULE_ID ) ) ( ( '.' (lv_refFeature= RULE_ID ) ) ( ( '[' (lv_refIndex= RULE_INT ) ) ']' )? )? ) )", 37, 0, input);
+
+ throw nvae;
+ }
+ switch (alt37) {
+ case 1 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1821:4: ( (lv_keyword= 'null' ) | (lv_value= RULE_STRING ) )
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1821:4: ( (lv_keyword= 'null' ) | (lv_value= RULE_STRING ) )
+ int alt34=2;
+ int LA34_0 = input.LA(1);
+
+ if ( (LA34_0==33) ) {
+ alt34=1;
+ }
+ else if ( (LA34_0==RULE_STRING) ) {
+ alt34=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("1821:4: ( (lv_keyword= 'null' ) | (lv_value= RULE_STRING ) )", 34, 0, input);
+
+ throw nvae;
+ }
+ switch (alt34) {
+ case 1 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1821:5: (lv_keyword= 'null' )
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1821:5: (lv_keyword= 'null' )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1823:6: lv_keyword= 'null'
+ {
+ lv_keyword=(Token)input.LT(1);
+ match(input,33,FOLLOW_33_in_ruleSingleAssignmentValue3979);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.17/@alternatives/@groups.0/@groups.0/@groups.0/@groups.0/@terminal" /* xtext::Keyword */, "keyword");
+
+
+ if (current==null) {
+ current = factory.create("AssignmentValue");
+ associateNodeWithAstElement(currentNode, current);
+ }
+
+ try {
+ factory.set(current, "keyword", input.LT(-1), "null", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1842:6: (lv_value= RULE_STRING )
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1842:6: (lv_value= RULE_STRING )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1844:6: lv_value= RULE_STRING
+ {
+ lv_value=(Token)input.LT(1);
+ match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleSingleAssignmentValue4018);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.17/@alternatives/@groups.0/@groups.0/@groups.0/@groups.1/@terminal" /* xtext::RuleCall */, "value");
+
+
+ if (current==null) {
+ current = factory.create("AssignmentValue");
+ associateNodeWithAstElement(currentNode, current);
+ }
+
+ try {
+ factory.set(current, "value", lv_value, "STRING", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1863:6: ( ( ( RULE_ID ) ) ( ( '.' (lv_refFeature= RULE_ID ) ) ( ( '[' (lv_refIndex= RULE_INT ) ) ']' )? )? )
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1863:6: ( ( ( RULE_ID ) ) ( ( '.' (lv_refFeature= RULE_ID ) ) ( ( '[' (lv_refIndex= RULE_INT ) ) ']' )? )? )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1863:7: ( ( RULE_ID ) ) ( ( '.' (lv_refFeature= RULE_ID ) ) ( ( '[' (lv_refIndex= RULE_INT ) ) ']' )? )?
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1863:7: ( ( RULE_ID ) )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1866:3: ( RULE_ID )
+ {
+
+ if (current==null) {
+ current = factory.create("AssignmentValue");
+ associateNodeWithAstElement(currentNode, current);
+ }
+
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1872:1: ( RULE_ID )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1873:2: RULE_ID
+ {
+ match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleSingleAssignmentValue4061);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.17/@alternatives/@groups.0/@groups.0/@groups.1/@abstractTokens.0/@terminal" /* xtext::CrossReference */, "refObject");
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1878:2: ( ( '.' (lv_refFeature= RULE_ID ) ) ( ( '[' (lv_refIndex= RULE_INT ) ) ']' )? )?
+ int alt36=2;
+ int LA36_0 = input.LA(1);
+
+ if ( (LA36_0==19) ) {
+ alt36=1;
+ }
+ switch (alt36) {
+ case 1 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1878:3: ( '.' (lv_refFeature= RULE_ID ) ) ( ( '[' (lv_refIndex= RULE_INT ) ) ']' )?
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1878:3: ( '.' (lv_refFeature= RULE_ID ) )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1878:4: '.' (lv_refFeature= RULE_ID )
+ {
+ match(input,19,FOLLOW_19_in_ruleSingleAssignmentValue4076);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.17/@alternatives/@groups.0/@groups.0/@groups.1/@abstractTokens.1/@abstractTokens.0/@abstractTokens.0" /* xtext::Keyword */, null);
+
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1882:1: (lv_refFeature= RULE_ID )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1884:6: lv_refFeature= RULE_ID
+ {
+ lv_refFeature=(Token)input.LT(1);
+ match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleSingleAssignmentValue4097);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.17/@alternatives/@groups.0/@groups.0/@groups.1/@abstractTokens.1/@abstractTokens.0/@abstractTokens.1/@terminal" /* xtext::RuleCall */, "refFeature");
+
+
+ if (current==null) {
+ current = factory.create("AssignmentValue");
+ associateNodeWithAstElement(currentNode, current);
+ }
+
+ try {
+ factory.set(current, "refFeature", lv_refFeature, "ID", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1902:3: ( ( '[' (lv_refIndex= RULE_INT ) ) ']' )?
+ int alt35=2;
+ int LA35_0 = input.LA(1);
+
+ if ( (LA35_0==29) ) {
+ alt35=1;
+ }
+ switch (alt35) {
+ case 1 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1902:4: ( '[' (lv_refIndex= RULE_INT ) ) ']'
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1902:4: ( '[' (lv_refIndex= RULE_INT ) )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1902:5: '[' (lv_refIndex= RULE_INT )
+ {
+ match(input,29,FOLLOW_29_in_ruleSingleAssignmentValue4120);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.17/@alternatives/@groups.0/@groups.0/@groups.1/@abstractTokens.1/@abstractTokens.1/@abstractTokens.0/@abstractTokens.0" /* xtext::Keyword */, null);
+
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1906:1: (lv_refIndex= RULE_INT )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1908:6: lv_refIndex= RULE_INT
+ {
+ lv_refIndex=(Token)input.LT(1);
+ match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleSingleAssignmentValue4141);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.17/@alternatives/@groups.0/@groups.0/@groups.1/@abstractTokens.1/@abstractTokens.1/@abstractTokens.0/@abstractTokens.1/@terminal" /* xtext::RuleCall */, "refIndex");
+
+
+ if (current==null) {
+ current = factory.create("AssignmentValue");
+ associateNodeWithAstElement(currentNode, current);
+ }
+
+ try {
+ factory.set(current, "refIndex", lv_refIndex, "INT", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+
+
+ }
+
+
+ }
+
+ match(input,31,FOLLOW_31_in_ruleSingleAssignmentValue4162);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.17/@alternatives/@groups.0/@groups.0/@groups.1/@abstractTokens.1/@abstractTokens.1/@abstractTokens.1" /* xtext::Keyword */, null);
+
+
+ }
+ break;
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1931:6: (lv_newObject= ruleCreatedObject )
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1931:6: (lv_newObject= ruleCreatedObject )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1934:6: lv_newObject= ruleCreatedObject
+ {
+
+ currentNode=createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.17/@alternatives/@groups.0/@groups.1/@terminal" /* xtext::RuleCall */, currentNode);
+
+ pushFollow(FOLLOW_ruleCreatedObject_in_ruleSingleAssignmentValue4208);
+ lv_newObject=ruleCreatedObject();
+ _fsp--;
+
+
+ if (current==null) {
+ current = factory.create("AssignmentValue");
+ associateNodeWithAstElement(currentNode.getParent(), current);
+ }
+
+ try {
+ factory.set(current, "newObject", lv_newObject, "CreatedObject", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1953:6: ( ( ( RULE_ID ) ) (lv_impFrag= RULE_FRAGMENT ) )
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1953:6: ( ( ( RULE_ID ) ) (lv_impFrag= RULE_FRAGMENT ) )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1953:7: ( ( RULE_ID ) ) (lv_impFrag= RULE_FRAGMENT )
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1953:7: ( ( RULE_ID ) )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1956:3: ( RULE_ID )
+ {
+
+ if (current==null) {
+ current = factory.create("AssignmentValue");
+ associateNodeWithAstElement(currentNode, current);
+ }
+
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1962:1: ( RULE_ID )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1963:2: RULE_ID
+ {
+ match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleSingleAssignmentValue4244);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.17/@alternatives/@groups.1/@abstractTokens.0/@terminal" /* xtext::CrossReference */, "import");
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1968:2: (lv_impFrag= RULE_FRAGMENT )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1970:6: lv_impFrag= RULE_FRAGMENT
+ {
+ lv_impFrag=(Token)input.LT(1);
+ match(input,RULE_FRAGMENT,FOLLOW_RULE_FRAGMENT_in_ruleSingleAssignmentValue4269);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.17/@alternatives/@groups.1/@abstractTokens.1/@terminal" /* xtext::RuleCall */, "impFrag");
+
+
+ if (current==null) {
+ current = factory.create("AssignmentValue");
+ associateNodeWithAstElement(currentNode, current);
+ }
+
+ try {
+ factory.set(current, "impFrag", lv_impFrag, "FRAGMENT", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ resetLookahead();
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end ruleSingleAssignmentValue
+
+
+ // $ANTLR start entryRuleCreatedObject
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1997:1: entryRuleCreatedObject returns [EObject current=null] : iv_ruleCreatedObject= ruleCreatedObject EOF ;
+ public final EObject entryRuleCreatedObject() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleCreatedObject = null;
+
+
+ try {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1997:55: (iv_ruleCreatedObject= ruleCreatedObject EOF )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:1998:2: iv_ruleCreatedObject= ruleCreatedObject EOF
+ {
+ currentNode = createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.18" /* xtext::ParserRule */, currentNode);
+ pushFollow(FOLLOW_ruleCreatedObject_in_entryRuleCreatedObject4316);
+ iv_ruleCreatedObject=ruleCreatedObject();
+ _fsp--;
+
+ current =iv_ruleCreatedObject;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleCreatedObject4326);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end entryRuleCreatedObject
+
+
+ // $ANTLR start ruleCreatedObject
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2005:1: ruleCreatedObject returns [EObject current=null] : ( ( (this_ObjectNew= ruleObjectNew | this_ObjectCopy= ruleObjectCopy ) (lv_name= RULE_ID )? ) ( ( ( '{' ( (lv_assignments= ruleMonoSingleAssignment ) | (lv_assignments= ruleMonoListAssignment ) )+ ) (lv_leftMig= ruleMigration )? ) '}' )? ) ;
+ public final EObject ruleCreatedObject() throws RecognitionException {
+ EObject current = null;
+
+ Token lv_name=null;
+ EObject this_ObjectNew = null;
+
+ EObject this_ObjectCopy = null;
+
+ EObject lv_assignments = null;
+
+ EObject lv_leftMig = null;
+
+
+ EObject temp=null; setCurrentLookahead(); resetLookahead();
+
+ try {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2009:6: ( ( ( (this_ObjectNew= ruleObjectNew | this_ObjectCopy= ruleObjectCopy ) (lv_name= RULE_ID )? ) ( ( ( '{' ( (lv_assignments= ruleMonoSingleAssignment ) | (lv_assignments= ruleMonoListAssignment ) )+ ) (lv_leftMig= ruleMigration )? ) '}' )? ) )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2010:1: ( ( (this_ObjectNew= ruleObjectNew | this_ObjectCopy= ruleObjectCopy ) (lv_name= RULE_ID )? ) ( ( ( '{' ( (lv_assignments= ruleMonoSingleAssignment ) | (lv_assignments= ruleMonoListAssignment ) )+ ) (lv_leftMig= ruleMigration )? ) '}' )? )
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2010:1: ( ( (this_ObjectNew= ruleObjectNew | this_ObjectCopy= ruleObjectCopy ) (lv_name= RULE_ID )? ) ( ( ( '{' ( (lv_assignments= ruleMonoSingleAssignment ) | (lv_assignments= ruleMonoListAssignment ) )+ ) (lv_leftMig= ruleMigration )? ) '}' )? )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2010:2: ( (this_ObjectNew= ruleObjectNew | this_ObjectCopy= ruleObjectCopy ) (lv_name= RULE_ID )? ) ( ( ( '{' ( (lv_assignments= ruleMonoSingleAssignment ) | (lv_assignments= ruleMonoListAssignment ) )+ ) (lv_leftMig= ruleMigration )? ) '}' )?
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2010:2: ( (this_ObjectNew= ruleObjectNew | this_ObjectCopy= ruleObjectCopy ) (lv_name= RULE_ID )? )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2010:3: (this_ObjectNew= ruleObjectNew | this_ObjectCopy= ruleObjectCopy ) (lv_name= RULE_ID )?
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2010:3: (this_ObjectNew= ruleObjectNew | this_ObjectCopy= ruleObjectCopy )
+ int alt40=2;
+ int LA40_0 = input.LA(1);
+
+ if ( (LA40_0==34) ) {
+ alt40=1;
+ }
+ else if ( (LA40_0==35) ) {
+ alt40=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("2010:3: (this_ObjectNew= ruleObjectNew | this_ObjectCopy= ruleObjectCopy )", 40, 0, input);
+
+ throw nvae;
+ }
+ switch (alt40) {
+ case 1 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2011:5: this_ObjectNew= ruleObjectNew
+ {
+
+ currentNode=createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.18/@alternatives/@abstractTokens.0/@abstractTokens.0/@groups.0" /* xtext::RuleCall */, currentNode);
+
+ pushFollow(FOLLOW_ruleObjectNew_in_ruleCreatedObject4375);
+ this_ObjectNew=ruleObjectNew();
+ _fsp--;
+
+
+ current = this_ObjectNew;
+ currentNode = currentNode.getParent();
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2021:5: this_ObjectCopy= ruleObjectCopy
+ {
+
+ currentNode=createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.18/@alternatives/@abstractTokens.0/@abstractTokens.0/@groups.1" /* xtext::RuleCall */, currentNode);
+
+ pushFollow(FOLLOW_ruleObjectCopy_in_ruleCreatedObject4402);
+ this_ObjectCopy=ruleObjectCopy();
+ _fsp--;
+
+
+ current = this_ObjectCopy;
+ currentNode = currentNode.getParent();
+
+
+ }
+ break;
+
+ }
+
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2029:2: (lv_name= RULE_ID )?
+ int alt41=2;
+ int LA41_0 = input.LA(1);
+
+ if ( (LA41_0==RULE_ID) ) {
+ alt41=1;
+ }
+ switch (alt41) {
+ case 1 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2031:6: lv_name= RULE_ID
+ {
+ lv_name=(Token)input.LT(1);
+ match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleCreatedObject4423);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.18/@alternatives/@abstractTokens.0/@abstractTokens.1/@terminal" /* xtext::RuleCall */, "name");
+
+
+ if (current==null) {
+ current = factory.create("CreatedObject");
+ associateNodeWithAstElement(currentNode, current);
+ }
+
+ try {
+ factory.set(current, "name", lv_name, "ID", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2049:4: ( ( ( '{' ( (lv_assignments= ruleMonoSingleAssignment ) | (lv_assignments= ruleMonoListAssignment ) )+ ) (lv_leftMig= ruleMigration )? ) '}' )?
+ int alt44=2;
+ int LA44_0 = input.LA(1);
+
+ if ( (LA44_0==13) ) {
+ alt44=1;
+ }
+ switch (alt44) {
+ case 1 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2049:5: ( ( '{' ( (lv_assignments= ruleMonoSingleAssignment ) | (lv_assignments= ruleMonoListAssignment ) )+ ) (lv_leftMig= ruleMigration )? ) '}'
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2049:5: ( ( '{' ( (lv_assignments= ruleMonoSingleAssignment ) | (lv_assignments= ruleMonoListAssignment ) )+ ) (lv_leftMig= ruleMigration )? )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2049:6: ( '{' ( (lv_assignments= ruleMonoSingleAssignment ) | (lv_assignments= ruleMonoListAssignment ) )+ ) (lv_leftMig= ruleMigration )?
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2049:6: ( '{' ( (lv_assignments= ruleMonoSingleAssignment ) | (lv_assignments= ruleMonoListAssignment ) )+ )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2049:7: '{' ( (lv_assignments= ruleMonoSingleAssignment ) | (lv_assignments= ruleMonoListAssignment ) )+
+ {
+ match(input,13,FOLLOW_13_in_ruleCreatedObject4448);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.18/@alternatives/@abstractTokens.1/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0" /* xtext::Keyword */, null);
+
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2053:1: ( (lv_assignments= ruleMonoSingleAssignment ) | (lv_assignments= ruleMonoListAssignment ) )+
+ int cnt42=0;
+ loop42:
+ do {
+ int alt42=3;
+ int LA42_0 = input.LA(1);
+
+ if ( (LA42_0==RULE_ID) ) {
+ int LA42_2 = input.LA(2);
+
+ if ( (LA42_2==27) ) {
+ int LA42_3 = input.LA(3);
+
+ if ( (LA42_3==29) ) {
+ alt42=2;
+ }
+ else if ( ((LA42_3>=RULE_ID && LA42_3<=RULE_STRING)||(LA42_3>=33 && LA42_3<=35)) ) {
+ alt42=1;
+ }
+
+
+ }
+
+
+ }
+
+
+ switch (alt42) {
+ case 1 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2053:2: (lv_assignments= ruleMonoSingleAssignment )
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2053:2: (lv_assignments= ruleMonoSingleAssignment )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2056:6: lv_assignments= ruleMonoSingleAssignment
+ {
+
+ currentNode=createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.18/@alternatives/@abstractTokens.1/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1/@groups.0/@terminal" /* xtext::RuleCall */, currentNode);
+
+ pushFollow(FOLLOW_ruleMonoSingleAssignment_in_ruleCreatedObject4483);
+ lv_assignments=ruleMonoSingleAssignment();
+ _fsp--;
+
+
+ if (current==null) {
+ current = factory.create("CreatedObject");
+ associateNodeWithAstElement(currentNode.getParent(), current);
+ }
+
+ try {
+ factory.add(current, "assignments", lv_assignments, "MonoSingleAssignment", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2075:6: (lv_assignments= ruleMonoListAssignment )
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2075:6: (lv_assignments= ruleMonoListAssignment )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2078:6: lv_assignments= ruleMonoListAssignment
+ {
+
+ currentNode=createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.18/@alternatives/@abstractTokens.1/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1/@groups.1/@terminal" /* xtext::RuleCall */, currentNode);
+
+ pushFollow(FOLLOW_ruleMonoListAssignment_in_ruleCreatedObject4527);
+ lv_assignments=ruleMonoListAssignment();
+ _fsp--;
+
+
+ if (current==null) {
+ current = factory.create("CreatedObject");
+ associateNodeWithAstElement(currentNode.getParent(), current);
+ }
+
+ try {
+ factory.add(current, "assignments", lv_assignments, "MonoListAssignment", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+
+
+ }
+
+
+ }
+ break;
+
+ default :
+ if ( cnt42 >= 1 ) break loop42;
+ EarlyExitException eee =
+ new EarlyExitException(42, input);
+ throw eee;
+ }
+ cnt42++;
+ } while (true);
+
+
+ }
+
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2096:5: (lv_leftMig= ruleMigration )?
+ int alt43=2;
+ int LA43_0 = input.LA(1);
+
+ if ( (LA43_0==36) ) {
+ alt43=1;
+ }
+ switch (alt43) {
+ case 1 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2099:6: lv_leftMig= ruleMigration
+ {
+
+ currentNode=createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.18/@alternatives/@abstractTokens.1/@abstractTokens.0/@abstractTokens.1/@terminal" /* xtext::RuleCall */, currentNode);
+
+ pushFollow(FOLLOW_ruleMigration_in_ruleCreatedObject4568);
+ lv_leftMig=ruleMigration();
+ _fsp--;
+
+
+ if (current==null) {
+ current = factory.create("CreatedObject");
+ associateNodeWithAstElement(currentNode.getParent(), current);
+ }
+
+ try {
+ factory.set(current, "leftMig", lv_leftMig, "Migration", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ match(input,14,FOLLOW_14_in_ruleCreatedObject4583);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.18/@alternatives/@abstractTokens.1/@abstractTokens.1" /* xtext::Keyword */, null);
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+
+ }
+
+ resetLookahead();
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end ruleCreatedObject
+
+
+ // $ANTLR start entryRuleObjectNew
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2130:1: entryRuleObjectNew returns [EObject current=null] : iv_ruleObjectNew= ruleObjectNew EOF ;
+ public final EObject entryRuleObjectNew() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleObjectNew = null;
+
+
+ try {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2130:51: (iv_ruleObjectNew= ruleObjectNew EOF )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2131:2: iv_ruleObjectNew= ruleObjectNew EOF
+ {
+ currentNode = createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.19" /* xtext::ParserRule */, currentNode);
+ pushFollow(FOLLOW_ruleObjectNew_in_entryRuleObjectNew4620);
+ iv_ruleObjectNew=ruleObjectNew();
+ _fsp--;
+
+ current =iv_ruleObjectNew;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleObjectNew4630);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end entryRuleObjectNew
+
+
+ // $ANTLR start ruleObjectNew
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2138:1: ruleObjectNew returns [EObject current=null] : ( ( 'new' ( ( RULE_ID ) ) ) (lv_impFrag= RULE_FRAGMENT ) ) ;
+ public final EObject ruleObjectNew() throws RecognitionException {
+ EObject current = null;
+
+ Token lv_impFrag=null;
+
+ EObject temp=null; setCurrentLookahead(); resetLookahead();
+
+ try {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2142:6: ( ( ( 'new' ( ( RULE_ID ) ) ) (lv_impFrag= RULE_FRAGMENT ) ) )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2143:1: ( ( 'new' ( ( RULE_ID ) ) ) (lv_impFrag= RULE_FRAGMENT ) )
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2143:1: ( ( 'new' ( ( RULE_ID ) ) ) (lv_impFrag= RULE_FRAGMENT ) )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2143:2: ( 'new' ( ( RULE_ID ) ) ) (lv_impFrag= RULE_FRAGMENT )
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2143:2: ( 'new' ( ( RULE_ID ) ) )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2143:3: 'new' ( ( RULE_ID ) )
+ {
+ match(input,34,FOLLOW_34_in_ruleObjectNew4665);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.19/@alternatives/@abstractTokens.0/@abstractTokens.0" /* xtext::Keyword */, null);
+
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2147:1: ( ( RULE_ID ) )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2150:3: ( RULE_ID )
+ {
+
+ if (current==null) {
+ current = factory.create("ObjectNew");
+ associateNodeWithAstElement(currentNode, current);
+ }
+
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2156:1: ( RULE_ID )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2157:2: RULE_ID
+ {
+ match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleObjectNew4689);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.19/@alternatives/@abstractTokens.0/@abstractTokens.1/@terminal" /* xtext::CrossReference */, "import");
+
+
+ }
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2162:3: (lv_impFrag= RULE_FRAGMENT )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2164:6: lv_impFrag= RULE_FRAGMENT
+ {
+ lv_impFrag=(Token)input.LT(1);
+ match(input,RULE_FRAGMENT,FOLLOW_RULE_FRAGMENT_in_ruleObjectNew4715);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.19/@alternatives/@abstractTokens.1/@terminal" /* xtext::RuleCall */, "impFrag");
+
+
+ if (current==null) {
+ current = factory.create("ObjectNew");
+ associateNodeWithAstElement(currentNode, current);
+ }
+
+ try {
+ factory.set(current, "impFrag", lv_impFrag, "FRAGMENT", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ resetLookahead();
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end ruleObjectNew
+
+
+ // $ANTLR start entryRuleObjectCopy
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2191:1: entryRuleObjectCopy returns [EObject current=null] : iv_ruleObjectCopy= ruleObjectCopy EOF ;
+ public final EObject entryRuleObjectCopy() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleObjectCopy = null;
+
+
+ try {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2191:52: (iv_ruleObjectCopy= ruleObjectCopy EOF )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2192:2: iv_ruleObjectCopy= ruleObjectCopy EOF
+ {
+ currentNode = createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.20" /* xtext::ParserRule */, currentNode);
+ pushFollow(FOLLOW_ruleObjectCopy_in_entryRuleObjectCopy4761);
+ iv_ruleObjectCopy=ruleObjectCopy();
+ _fsp--;
+
+ current =iv_ruleObjectCopy;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleObjectCopy4771);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end entryRuleObjectCopy
+
+
+ // $ANTLR start ruleObjectCopy
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2199:1: ruleObjectCopy returns [EObject current=null] : ( ( 'copy' ( ( RULE_ID ) ) ) (lv_fragment= RULE_FRAGMENT ) ) ;
+ public final EObject ruleObjectCopy() throws RecognitionException {
+ EObject current = null;
+
+ Token lv_fragment=null;
+
+ EObject temp=null; setCurrentLookahead(); resetLookahead();
+
+ try {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2203:6: ( ( ( 'copy' ( ( RULE_ID ) ) ) (lv_fragment= RULE_FRAGMENT ) ) )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2204:1: ( ( 'copy' ( ( RULE_ID ) ) ) (lv_fragment= RULE_FRAGMENT ) )
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2204:1: ( ( 'copy' ( ( RULE_ID ) ) ) (lv_fragment= RULE_FRAGMENT ) )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2204:2: ( 'copy' ( ( RULE_ID ) ) ) (lv_fragment= RULE_FRAGMENT )
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2204:2: ( 'copy' ( ( RULE_ID ) ) )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2204:3: 'copy' ( ( RULE_ID ) )
+ {
+ match(input,35,FOLLOW_35_in_ruleObjectCopy4806);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.20/@alternatives/@abstractTokens.0/@abstractTokens.0" /* xtext::Keyword */, null);
+
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2208:1: ( ( RULE_ID ) )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2211:3: ( RULE_ID )
+ {
+
+ if (current==null) {
+ current = factory.create("ObjectCopy");
+ associateNodeWithAstElement(currentNode, current);
+ }
+
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2217:1: ( RULE_ID )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2218:2: RULE_ID
+ {
+ match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleObjectCopy4830);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.20/@alternatives/@abstractTokens.0/@abstractTokens.1/@terminal" /* xtext::CrossReference */, "resource");
+
+
+ }
+
+
+ }
+
+
+ }
+
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2223:3: (lv_fragment= RULE_FRAGMENT )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2225:6: lv_fragment= RULE_FRAGMENT
+ {
+ lv_fragment=(Token)input.LT(1);
+ match(input,RULE_FRAGMENT,FOLLOW_RULE_FRAGMENT_in_ruleObjectCopy4856);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.20/@alternatives/@abstractTokens.1/@terminal" /* xtext::RuleCall */, "fragment");
+
+
+ if (current==null) {
+ current = factory.create("ObjectCopy");
+ associateNodeWithAstElement(currentNode, current);
+ }
+
+ try {
+ factory.set(current, "fragment", lv_fragment, "FRAGMENT", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ resetLookahead();
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end ruleObjectCopy
+
+
+ // $ANTLR start entryRuleMigration
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2252:1: entryRuleMigration returns [EObject current=null] : iv_ruleMigration= ruleMigration EOF ;
+ public final EObject entryRuleMigration() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleMigration = null;
+
+
+ try {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2252:51: (iv_ruleMigration= ruleMigration EOF )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2253:2: iv_ruleMigration= ruleMigration EOF
+ {
+ currentNode = createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.22" /* xtext::ParserRule */, currentNode);
+ pushFollow(FOLLOW_ruleMigration_in_entryRuleMigration4902);
+ iv_ruleMigration=ruleMigration();
+ _fsp--;
+
+ current =iv_ruleMigration;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleMigration4912);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end entryRuleMigration
+
+
+ // $ANTLR start ruleMigration
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2260:1: ruleMigration returns [EObject current=null] : ( ( ( 'migrate' (lv_first= ruleExecutable )? ) ( ( 'as' (lv_asOp= ruleExecutable ) ) | ( 'each' (lv_eachOp= ruleExecutable ) ) )? ) ';' ) ;
+ public final EObject ruleMigration() throws RecognitionException {
+ EObject current = null;
+
+ EObject lv_first = null;
+
+ EObject lv_asOp = null;
+
+ EObject lv_eachOp = null;
+
+
+ EObject temp=null; setCurrentLookahead(); resetLookahead();
+
+ try {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2264:6: ( ( ( ( 'migrate' (lv_first= ruleExecutable )? ) ( ( 'as' (lv_asOp= ruleExecutable ) ) | ( 'each' (lv_eachOp= ruleExecutable ) ) )? ) ';' ) )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2265:1: ( ( ( 'migrate' (lv_first= ruleExecutable )? ) ( ( 'as' (lv_asOp= ruleExecutable ) ) | ( 'each' (lv_eachOp= ruleExecutable ) ) )? ) ';' )
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2265:1: ( ( ( 'migrate' (lv_first= ruleExecutable )? ) ( ( 'as' (lv_asOp= ruleExecutable ) ) | ( 'each' (lv_eachOp= ruleExecutable ) ) )? ) ';' )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2265:2: ( ( 'migrate' (lv_first= ruleExecutable )? ) ( ( 'as' (lv_asOp= ruleExecutable ) ) | ( 'each' (lv_eachOp= ruleExecutable ) ) )? ) ';'
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2265:2: ( ( 'migrate' (lv_first= ruleExecutable )? ) ( ( 'as' (lv_asOp= ruleExecutable ) ) | ( 'each' (lv_eachOp= ruleExecutable ) ) )? )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2265:3: ( 'migrate' (lv_first= ruleExecutable )? ) ( ( 'as' (lv_asOp= ruleExecutable ) ) | ( 'each' (lv_eachOp= ruleExecutable ) ) )?
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2265:3: ( 'migrate' (lv_first= ruleExecutable )? )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2265:4: 'migrate' (lv_first= ruleExecutable )?
+ {
+ match(input,36,FOLLOW_36_in_ruleMigration4948);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.22/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0" /* xtext::Keyword */, null);
+
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2269:1: (lv_first= ruleExecutable )?
+ int alt45=2;
+ int LA45_0 = input.LA(1);
+
+ if ( (LA45_0==RULE_STRING||LA45_0==18) ) {
+ alt45=1;
+ }
+ switch (alt45) {
+ case 1 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2272:6: lv_first= ruleExecutable
+ {
+
+ currentNode=createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.22/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1/@terminal" /* xtext::RuleCall */, currentNode);
+
+ pushFollow(FOLLOW_ruleExecutable_in_ruleMigration4982);
+ lv_first=ruleExecutable();
+ _fsp--;
+
+
+ if (current==null) {
+ current = factory.create("Migration");
+ associateNodeWithAstElement(currentNode.getParent(), current);
+ }
+
+ try {
+ factory.set(current, "first", lv_first, "Executable", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2290:4: ( ( 'as' (lv_asOp= ruleExecutable ) ) | ( 'each' (lv_eachOp= ruleExecutable ) ) )?
+ int alt46=3;
+ int LA46_0 = input.LA(1);
+
+ if ( (LA46_0==37) ) {
+ alt46=1;
+ }
+ else if ( (LA46_0==38) ) {
+ alt46=2;
+ }
+ switch (alt46) {
+ case 1 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2290:5: ( 'as' (lv_asOp= ruleExecutable ) )
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2290:5: ( 'as' (lv_asOp= ruleExecutable ) )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2290:6: 'as' (lv_asOp= ruleExecutable )
+ {
+ match(input,37,FOLLOW_37_in_ruleMigration4999);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.22/@alternatives/@abstractTokens.0/@abstractTokens.1/@groups.0/@abstractTokens.0" /* xtext::Keyword */, null);
+
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2294:1: (lv_asOp= ruleExecutable )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2297:6: lv_asOp= ruleExecutable
+ {
+
+ currentNode=createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.22/@alternatives/@abstractTokens.0/@abstractTokens.1/@groups.0/@abstractTokens.1/@terminal" /* xtext::RuleCall */, currentNode);
+
+ pushFollow(FOLLOW_ruleExecutable_in_ruleMigration5033);
+ lv_asOp=ruleExecutable();
+ _fsp--;
+
+
+ if (current==null) {
+ current = factory.create("Migration");
+ associateNodeWithAstElement(currentNode.getParent(), current);
+ }
+
+ try {
+ factory.set(current, "asOp", lv_asOp, "Executable", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2316:6: ( 'each' (lv_eachOp= ruleExecutable ) )
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2316:6: ( 'each' (lv_eachOp= ruleExecutable ) )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2316:7: 'each' (lv_eachOp= ruleExecutable )
+ {
+ match(input,38,FOLLOW_38_in_ruleMigration5054);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.22/@alternatives/@abstractTokens.0/@abstractTokens.1/@groups.1/@abstractTokens.0" /* xtext::Keyword */, null);
+
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2320:1: (lv_eachOp= ruleExecutable )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2323:6: lv_eachOp= ruleExecutable
+ {
+
+ currentNode=createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.22/@alternatives/@abstractTokens.0/@abstractTokens.1/@groups.1/@abstractTokens.1/@terminal" /* xtext::RuleCall */, currentNode);
+
+ pushFollow(FOLLOW_ruleExecutable_in_ruleMigration5088);
+ lv_eachOp=ruleExecutable();
+ _fsp--;
+
+
+ if (current==null) {
+ current = factory.create("Migration");
+ associateNodeWithAstElement(currentNode.getParent(), current);
+ }
+
+ try {
+ factory.set(current, "eachOp", lv_eachOp, "Executable", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+ currentNode = currentNode.getParent();
+
+
+ }
+
+
+ }
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ match(input,24,FOLLOW_24_in_ruleMigration5105);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.22/@alternatives/@abstractTokens.1" /* xtext::Keyword */, null);
+
+
+ }
+
+
+ }
+
+ resetLookahead();
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end ruleMigration
+
+
+ // $ANTLR start entryRuleExecutable
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2354:1: entryRuleExecutable returns [EObject current=null] : iv_ruleExecutable= ruleExecutable EOF ;
+ public final EObject entryRuleExecutable() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleExecutable = null;
+
+
+ try {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2354:52: (iv_ruleExecutable= ruleExecutable EOF )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2355:2: iv_ruleExecutable= ruleExecutable EOF
+ {
+ currentNode = createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.23" /* xtext::ParserRule */, currentNode);
+ pushFollow(FOLLOW_ruleExecutable_in_entryRuleExecutable5140);
+ iv_ruleExecutable=ruleExecutable();
+ _fsp--;
+
+ current =iv_ruleExecutable;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleExecutable5150);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end entryRuleExecutable
+
+
+ // $ANTLR start ruleExecutable
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2362:1: ruleExecutable returns [EObject current=null] : (this_JavaExecutable= ruleJavaExecutable | this_ExpressionExecutable= ruleExpressionExecutable ) ;
+ public final EObject ruleExecutable() throws RecognitionException {
+ EObject current = null;
+
+ EObject this_JavaExecutable = null;
+
+ EObject this_ExpressionExecutable = null;
+
+
+ EObject temp=null; setCurrentLookahead(); resetLookahead();
+
+ try {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2366:6: ( (this_JavaExecutable= ruleJavaExecutable | this_ExpressionExecutable= ruleExpressionExecutable ) )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2367:1: (this_JavaExecutable= ruleJavaExecutable | this_ExpressionExecutable= ruleExpressionExecutable )
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2367:1: (this_JavaExecutable= ruleJavaExecutable | this_ExpressionExecutable= ruleExpressionExecutable )
+ int alt47=2;
+ int LA47_0 = input.LA(1);
+
+ if ( (LA47_0==18) ) {
+ alt47=1;
+ }
+ else if ( (LA47_0==RULE_STRING) ) {
+ alt47=2;
+ }
+ else {
+ NoViableAltException nvae =
+ new NoViableAltException("2367:1: (this_JavaExecutable= ruleJavaExecutable | this_ExpressionExecutable= ruleExpressionExecutable )", 47, 0, input);
+
+ throw nvae;
+ }
+ switch (alt47) {
+ case 1 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2368:5: this_JavaExecutable= ruleJavaExecutable
+ {
+
+ currentNode=createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.23/@alternatives/@groups.0" /* xtext::RuleCall */, currentNode);
+
+ pushFollow(FOLLOW_ruleJavaExecutable_in_ruleExecutable5197);
+ this_JavaExecutable=ruleJavaExecutable();
+ _fsp--;
+
+
+ current = this_JavaExecutable;
+ currentNode = currentNode.getParent();
+
+
+ }
+ break;
+ case 2 :
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2378:5: this_ExpressionExecutable= ruleExpressionExecutable
+ {
+
+ currentNode=createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.23/@alternatives/@groups.1" /* xtext::RuleCall */, currentNode);
+
+ pushFollow(FOLLOW_ruleExpressionExecutable_in_ruleExecutable5224);
+ this_ExpressionExecutable=ruleExpressionExecutable();
+ _fsp--;
+
+
+ current = this_ExpressionExecutable;
+ currentNode = currentNode.getParent();
+
+
+ }
+ break;
+
+ }
+
+
+ }
+
+ resetLookahead();
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end ruleExecutable
+
+
+ // $ANTLR start entryRuleJavaExecutable
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2395:1: entryRuleJavaExecutable returns [EObject current=null] : iv_ruleJavaExecutable= ruleJavaExecutable EOF ;
+ public final EObject entryRuleJavaExecutable() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleJavaExecutable = null;
+
+
+ try {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2395:56: (iv_ruleJavaExecutable= ruleJavaExecutable EOF )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2396:2: iv_ruleJavaExecutable= ruleJavaExecutable EOF
+ {
+ currentNode = createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.24" /* xtext::ParserRule */, currentNode);
+ pushFollow(FOLLOW_ruleJavaExecutable_in_entryRuleJavaExecutable5258);
+ iv_ruleJavaExecutable=ruleJavaExecutable();
+ _fsp--;
+
+ current =iv_ruleJavaExecutable;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleJavaExecutable5268);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end entryRuleJavaExecutable
+
+
+ // $ANTLR start ruleJavaExecutable
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2403:1: ruleJavaExecutable returns [EObject current=null] : ( ( ( 'java' (lv_method= RULE_ID ) ) '(' ) ')' ) ;
+ public final EObject ruleJavaExecutable() throws RecognitionException {
+ EObject current = null;
+
+ Token lv_method=null;
+
+ EObject temp=null; setCurrentLookahead(); resetLookahead();
+
+ try {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2407:6: ( ( ( ( 'java' (lv_method= RULE_ID ) ) '(' ) ')' ) )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2408:1: ( ( ( 'java' (lv_method= RULE_ID ) ) '(' ) ')' )
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2408:1: ( ( ( 'java' (lv_method= RULE_ID ) ) '(' ) ')' )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2408:2: ( ( 'java' (lv_method= RULE_ID ) ) '(' ) ')'
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2408:2: ( ( 'java' (lv_method= RULE_ID ) ) '(' )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2408:3: ( 'java' (lv_method= RULE_ID ) ) '('
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2408:3: ( 'java' (lv_method= RULE_ID ) )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2408:4: 'java' (lv_method= RULE_ID )
+ {
+ match(input,18,FOLLOW_18_in_ruleJavaExecutable5304);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.24/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0" /* xtext::Keyword */, null);
+
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2412:1: (lv_method= RULE_ID )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2414:6: lv_method= RULE_ID
+ {
+ lv_method=(Token)input.LT(1);
+ match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleJavaExecutable5325);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.24/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1/@terminal" /* xtext::RuleCall */, "method");
+
+
+ if (current==null) {
+ current = factory.create("JavaExecutable");
+ associateNodeWithAstElement(currentNode, current);
+ }
+
+ try {
+ factory.set(current, "method", lv_method, "ID", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+
+
+ }
+
+
+ }
+
+ match(input,39,FOLLOW_39_in_ruleJavaExecutable5346);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.24/@alternatives/@abstractTokens.0/@abstractTokens.1" /* xtext::Keyword */, null);
+
+
+ }
+
+ match(input,40,FOLLOW_40_in_ruleJavaExecutable5356);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.24/@alternatives/@abstractTokens.1" /* xtext::Keyword */, null);
+
+
+ }
+
+
+ }
+
+ resetLookahead();
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end ruleJavaExecutable
+
+
+ // $ANTLR start entryRuleExpressionExecutable
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2449:1: entryRuleExpressionExecutable returns [EObject current=null] : iv_ruleExpressionExecutable= ruleExpressionExecutable EOF ;
+ public final EObject entryRuleExpressionExecutable() throws RecognitionException {
+ EObject current = null;
+
+ EObject iv_ruleExpressionExecutable = null;
+
+
+ try {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2449:62: (iv_ruleExpressionExecutable= ruleExpressionExecutable EOF )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2450:2: iv_ruleExpressionExecutable= ruleExpressionExecutable EOF
+ {
+ currentNode = createCompositeNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.25" /* xtext::ParserRule */, currentNode);
+ pushFollow(FOLLOW_ruleExpressionExecutable_in_entryRuleExpressionExecutable5391);
+ iv_ruleExpressionExecutable=ruleExpressionExecutable();
+ _fsp--;
+
+ current =iv_ruleExpressionExecutable;
+ match(input,EOF,FOLLOW_EOF_in_entryRuleExpressionExecutable5401);
+
+ }
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end entryRuleExpressionExecutable
+
+
+ // $ANTLR start ruleExpressionExecutable
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2457:1: ruleExpressionExecutable returns [EObject current=null] : (lv_exprstr= RULE_STRING ) ;
+ public final EObject ruleExpressionExecutable() throws RecognitionException {
+ EObject current = null;
+
+ Token lv_exprstr=null;
+
+ EObject temp=null; setCurrentLookahead(); resetLookahead();
+
+ try {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2461:6: ( (lv_exprstr= RULE_STRING ) )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2462:1: (lv_exprstr= RULE_STRING )
+ {
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2462:1: (lv_exprstr= RULE_STRING )
+ // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g:2464:6: lv_exprstr= RULE_STRING
+ {
+ lv_exprstr=(Token)input.LT(1);
+ match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleExpressionExecutable5446);
+
+ createLeafNode("classpath:/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.xmi#//@rules.25/@alternatives/@terminal" /* xtext::RuleCall */, "exprstr");
+
+
+ if (current==null) {
+ current = factory.create("ExpressionExecutable");
+ associateNodeWithAstElement(currentNode, current);
+ }
+
+ try {
+ factory.set(current, "exprstr", lv_exprstr, "STRING", currentNode);
+ } catch (ValueConverterException vce) {
+ handleValueConverterException(vce);
+ }
+
+
+ }
+
+
+ }
+
+ resetLookahead();
+
+ }
+
+ catch (RecognitionException re) {
+ recover(input,re);
+ appendSkippedTokens();
+ }
+ finally {
+ }
+ return current;
+ }
+ // $ANTLR end ruleExpressionExecutable
+
+
+
+
+ public static final BitSet FOLLOW_ruleEPatch_in_entryRuleEPatch72 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleEPatch82 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_12_in_ruleEPatch121 = new BitSet(new long[]{0x0000000000000010L});
+ public static final BitSet FOLLOW_RULE_ID_in_ruleEPatch142 = new BitSet(new long[]{0x0000000000002000L});
+ public static final BitSet FOLLOW_13_in_ruleEPatch163 = new BitSet(new long[]{0x000000000440C000L});
+ public static final BitSet FOLLOW_ruleImport_in_ruleEPatch198 = new BitSet(new long[]{0x000000000440C000L});
+ public static final BitSet FOLLOW_ruleNamedResource_in_ruleEPatch238 = new BitSet(new long[]{0x0000000004404000L});
+ public static final BitSet FOLLOW_ruleObjectRef_in_ruleEPatch278 = new BitSet(new long[]{0x0000000004004000L});
+ public static final BitSet FOLLOW_14_in_ruleEPatch293 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleImport_in_entryRuleImport328 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleImport338 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleModelImport_in_ruleImport386 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleJavaImport_in_ruleImport413 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleExtensionImport_in_ruleImport441 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleModelImport_in_entryRuleModelImport475 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleModelImport485 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleResourceImport_in_ruleModelImport532 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleEPackageImport_in_ruleModelImport559 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleResourceImport_in_entryRuleResourceImport593 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleResourceImport603 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_15_in_ruleResourceImport639 = new BitSet(new long[]{0x0000000000000010L});
+ public static final BitSet FOLLOW_RULE_ID_in_ruleResourceImport660 = new BitSet(new long[]{0x0000000000010000L});
+ public static final BitSet FOLLOW_16_in_ruleResourceImport681 = new BitSet(new long[]{0x0000000000000020L});
+ public static final BitSet FOLLOW_RULE_STRING_in_ruleResourceImport703 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleEPackageImport_in_entryRuleEPackageImport749 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleEPackageImport759 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_15_in_ruleEPackageImport795 = new BitSet(new long[]{0x0000000000000010L});
+ public static final BitSet FOLLOW_RULE_ID_in_ruleEPackageImport816 = new BitSet(new long[]{0x0000000000020000L});
+ public static final BitSet FOLLOW_17_in_ruleEPackageImport837 = new BitSet(new long[]{0x0000000000000020L});
+ public static final BitSet FOLLOW_RULE_STRING_in_ruleEPackageImport859 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleJavaImport_in_entryRuleJavaImport905 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleJavaImport915 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_15_in_ruleJavaImport951 = new BitSet(new long[]{0x0000000000040000L});
+ public static final BitSet FOLLOW_18_in_ruleJavaImport960 = new BitSet(new long[]{0x0000000000000010L});
+ public static final BitSet FOLLOW_RULE_ID_in_ruleJavaImport982 = new BitSet(new long[]{0x0000000000080002L});
+ public static final BitSet FOLLOW_19_in_ruleJavaImport1004 = new BitSet(new long[]{0x0000000000000010L});
+ public static final BitSet FOLLOW_RULE_ID_in_ruleJavaImport1025 = new BitSet(new long[]{0x0000000000080002L});
+ public static final BitSet FOLLOW_ruleExtensionImport_in_entryRuleExtensionImport1073 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleExtensionImport1083 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_15_in_ruleExtensionImport1119 = new BitSet(new long[]{0x0000000000100000L});
+ public static final BitSet FOLLOW_20_in_ruleExtensionImport1128 = new BitSet(new long[]{0x0000000000000010L});
+ public static final BitSet FOLLOW_RULE_ID_in_ruleExtensionImport1150 = new BitSet(new long[]{0x0000000000200002L});
+ public static final BitSet FOLLOW_21_in_ruleExtensionImport1172 = new BitSet(new long[]{0x0000000000000010L});
+ public static final BitSet FOLLOW_RULE_ID_in_ruleExtensionImport1193 = new BitSet(new long[]{0x0000000000200002L});
+ public static final BitSet FOLLOW_ruleNamedResource_in_entryRuleNamedResource1241 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleNamedResource1251 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_22_in_ruleNamedResource1293 = new BitSet(new long[]{0x0000000000000010L});
+ public static final BitSet FOLLOW_RULE_ID_in_ruleNamedResource1314 = new BitSet(new long[]{0x0000000000002000L});
+ public static final BitSet FOLLOW_13_in_ruleNamedResource1335 = new BitSet(new long[]{0x0000000000800000L});
+ public static final BitSet FOLLOW_23_in_ruleNamedResource1345 = new BitSet(new long[]{0x0000000C00010000L});
+ public static final BitSet FOLLOW_16_in_ruleNamedResource1357 = new BitSet(new long[]{0x0000000000000020L});
+ public static final BitSet FOLLOW_RULE_STRING_in_ruleNamedResource1378 = new BitSet(new long[]{0x0000000001000000L});
+ public static final BitSet FOLLOW_ruleCreatedObject_in_ruleNamedResource1430 = new BitSet(new long[]{0x0000000001000000L});
+ public static final BitSet FOLLOW_24_in_ruleNamedResource1445 = new BitSet(new long[]{0x0000000002000000L});
+ public static final BitSet FOLLOW_25_in_ruleNamedResource1455 = new BitSet(new long[]{0x0000000C00010000L});
+ public static final BitSet FOLLOW_16_in_ruleNamedResource1467 = new BitSet(new long[]{0x0000000000000020L});
+ public static final BitSet FOLLOW_RULE_STRING_in_ruleNamedResource1488 = new BitSet(new long[]{0x0000000001000000L});
+ public static final BitSet FOLLOW_ruleCreatedObject_in_ruleNamedResource1540 = new BitSet(new long[]{0x0000000001000000L});
+ public static final BitSet FOLLOW_24_in_ruleNamedResource1555 = new BitSet(new long[]{0x0000000000004000L});
+ public static final BitSet FOLLOW_14_in_ruleNamedResource1565 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleObjectRef_in_entryRuleObjectRef1602 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleObjectRef1612 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_26_in_ruleObjectRef1648 = new BitSet(new long[]{0x0000000000800010L});
+ public static final BitSet FOLLOW_RULE_ID_in_ruleObjectRef1669 = new BitSet(new long[]{0x0000000000800010L});
+ public static final BitSet FOLLOW_RULE_ID_in_ruleObjectRef1708 = new BitSet(new long[]{0x0000000000000040L});
+ public static final BitSet FOLLOW_RULE_FRAGMENT_in_ruleObjectRef1733 = new BitSet(new long[]{0x0000000000002002L});
+ public static final BitSet FOLLOW_23_in_ruleObjectRef1765 = new BitSet(new long[]{0x0000000000000010L});
+ public static final BitSet FOLLOW_RULE_ID_in_ruleObjectRef1789 = new BitSet(new long[]{0x0000000000000040L});
+ public static final BitSet FOLLOW_RULE_FRAGMENT_in_ruleObjectRef1815 = new BitSet(new long[]{0x0000000002000000L});
+ public static final BitSet FOLLOW_25_in_ruleObjectRef1836 = new BitSet(new long[]{0x0000000000000010L});
+ public static final BitSet FOLLOW_RULE_ID_in_ruleObjectRef1861 = new BitSet(new long[]{0x0000000000000040L});
+ public static final BitSet FOLLOW_RULE_FRAGMENT_in_ruleObjectRef1887 = new BitSet(new long[]{0x0000000000002002L});
+ public static final BitSet FOLLOW_13_in_ruleObjectRef1914 = new BitSet(new long[]{0x0000000000000010L});
+ public static final BitSet FOLLOW_ruleBiSingleAssignment_in_ruleObjectRef1949 = new BitSet(new long[]{0x0000000002804010L});
+ public static final BitSet FOLLOW_ruleBiListAssignment_in_ruleObjectRef1993 = new BitSet(new long[]{0x0000000002804010L});
+ public static final BitSet FOLLOW_23_in_ruleObjectRef2010 = new BitSet(new long[]{0x0000001000000000L});
+ public static final BitSet FOLLOW_ruleMigration_in_ruleObjectRef2044 = new BitSet(new long[]{0x0000000002004000L});
+ public static final BitSet FOLLOW_25_in_ruleObjectRef2061 = new BitSet(new long[]{0x0000001000000000L});
+ public static final BitSet FOLLOW_ruleMigration_in_ruleObjectRef2095 = new BitSet(new long[]{0x0000000000004000L});
+ public static final BitSet FOLLOW_14_in_ruleObjectRef2111 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleBiSingleAssignment_in_entryRuleBiSingleAssignment2150 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleBiSingleAssignment2160 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_ID_in_ruleBiSingleAssignment2210 = new BitSet(new long[]{0x0000000008000000L});
+ public static final BitSet FOLLOW_27_in_ruleBiSingleAssignment2230 = new BitSet(new long[]{0x0000000E00000030L});
+ public static final BitSet FOLLOW_ruleSingleAssignmentValue_in_ruleBiSingleAssignment2265 = new BitSet(new long[]{0x0000000010000000L});
+ public static final BitSet FOLLOW_28_in_ruleBiSingleAssignment2279 = new BitSet(new long[]{0x0000000E00000030L});
+ public static final BitSet FOLLOW_ruleSingleAssignmentValue_in_ruleBiSingleAssignment2314 = new BitSet(new long[]{0x0000000001000000L});
+ public static final BitSet FOLLOW_24_in_ruleBiSingleAssignment2328 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleBiListAssignment_in_entryRuleBiListAssignment2363 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleBiListAssignment2373 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_ID_in_ruleBiListAssignment2425 = new BitSet(new long[]{0x0000000008000000L});
+ public static final BitSet FOLLOW_27_in_ruleBiListAssignment2445 = new BitSet(new long[]{0x0000000020000000L});
+ public static final BitSet FOLLOW_29_in_ruleBiListAssignment2455 = new BitSet(new long[]{0x0000000010000080L});
+ public static final BitSet FOLLOW_ruleListAssignmentValue_in_ruleBiListAssignment2491 = new BitSet(new long[]{0x0000000050000000L});
+ public static final BitSet FOLLOW_30_in_ruleBiListAssignment2505 = new BitSet(new long[]{0x0000000000000080L});
+ public static final BitSet FOLLOW_ruleListAssignmentValue_in_ruleBiListAssignment2539 = new BitSet(new long[]{0x0000000050000000L});
+ public static final BitSet FOLLOW_28_in_ruleBiListAssignment2557 = new BitSet(new long[]{0x0000000080000080L});
+ public static final BitSet FOLLOW_ruleListAssignmentValue_in_ruleBiListAssignment2593 = new BitSet(new long[]{0x00000000C0000000L});
+ public static final BitSet FOLLOW_30_in_ruleBiListAssignment2607 = new BitSet(new long[]{0x0000000000000080L});
+ public static final BitSet FOLLOW_ruleListAssignmentValue_in_ruleBiListAssignment2641 = new BitSet(new long[]{0x00000000C0000000L});
+ public static final BitSet FOLLOW_31_in_ruleBiListAssignment2659 = new BitSet(new long[]{0x0000000001000000L});
+ public static final BitSet FOLLOW_24_in_ruleBiListAssignment2669 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleMonoSingleAssignment_in_entryRuleMonoSingleAssignment2704 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleMonoSingleAssignment2714 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_ID_in_ruleMonoSingleAssignment2762 = new BitSet(new long[]{0x0000000008000000L});
+ public static final BitSet FOLLOW_27_in_ruleMonoSingleAssignment2782 = new BitSet(new long[]{0x0000000E00000030L});
+ public static final BitSet FOLLOW_ruleSingleAssignmentValue_in_ruleMonoSingleAssignment2817 = new BitSet(new long[]{0x0000000001000000L});
+ public static final BitSet FOLLOW_24_in_ruleMonoSingleAssignment2831 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleMonoListAssignment_in_entryRuleMonoListAssignment2866 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleMonoListAssignment2876 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_ID_in_ruleMonoListAssignment2926 = new BitSet(new long[]{0x0000000008000000L});
+ public static final BitSet FOLLOW_27_in_ruleMonoListAssignment2946 = new BitSet(new long[]{0x0000000020000000L});
+ public static final BitSet FOLLOW_29_in_ruleMonoListAssignment2956 = new BitSet(new long[]{0x0000000C80000030L});
+ public static final BitSet FOLLOW_ruleAssignmentValue_in_ruleMonoListAssignment2992 = new BitSet(new long[]{0x00000000C0000000L});
+ public static final BitSet FOLLOW_30_in_ruleMonoListAssignment3006 = new BitSet(new long[]{0x0000000C00000030L});
+ public static final BitSet FOLLOW_ruleAssignmentValue_in_ruleMonoListAssignment3040 = new BitSet(new long[]{0x00000000C0000000L});
+ public static final BitSet FOLLOW_31_in_ruleMonoListAssignment3058 = new BitSet(new long[]{0x0000000001000000L});
+ public static final BitSet FOLLOW_24_in_ruleMonoListAssignment3068 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleAssignmentValue_in_entryRuleAssignmentValue3103 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleAssignmentValue3113 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_STRING_in_ruleAssignmentValue3161 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_ID_in_ruleAssignmentValue3203 = new BitSet(new long[]{0x0000000000080002L});
+ public static final BitSet FOLLOW_19_in_ruleAssignmentValue3218 = new BitSet(new long[]{0x0000000000000010L});
+ public static final BitSet FOLLOW_RULE_ID_in_ruleAssignmentValue3239 = new BitSet(new long[]{0x0000000020000002L});
+ public static final BitSet FOLLOW_29_in_ruleAssignmentValue3262 = new BitSet(new long[]{0x0000000000000080L});
+ public static final BitSet FOLLOW_RULE_INT_in_ruleAssignmentValue3283 = new BitSet(new long[]{0x0000000080000000L});
+ public static final BitSet FOLLOW_31_in_ruleAssignmentValue3304 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleCreatedObject_in_ruleAssignmentValue3350 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_ID_in_ruleAssignmentValue3386 = new BitSet(new long[]{0x0000000000000040L});
+ public static final BitSet FOLLOW_RULE_FRAGMENT_in_ruleAssignmentValue3411 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleListAssignmentValue_in_entryRuleListAssignmentValue3458 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleListAssignmentValue3468 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_INT_in_ruleListAssignmentValue3515 = new BitSet(new long[]{0x0000000100000000L});
+ public static final BitSet FOLLOW_32_in_ruleListAssignmentValue3535 = new BitSet(new long[]{0x0000000C20000030L});
+ public static final BitSet FOLLOW_29_in_ruleListAssignmentValue3551 = new BitSet(new long[]{0x0000000000000080L});
+ public static final BitSet FOLLOW_RULE_INT_in_ruleListAssignmentValue3572 = new BitSet(new long[]{0x0000000080000000L});
+ public static final BitSet FOLLOW_31_in_ruleListAssignmentValue3593 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_STRING_in_ruleListAssignmentValue3621 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_ID_in_ruleListAssignmentValue3664 = new BitSet(new long[]{0x0000000000080002L});
+ public static final BitSet FOLLOW_19_in_ruleListAssignmentValue3679 = new BitSet(new long[]{0x0000000000000010L});
+ public static final BitSet FOLLOW_RULE_ID_in_ruleListAssignmentValue3700 = new BitSet(new long[]{0x0000000020000002L});
+ public static final BitSet FOLLOW_29_in_ruleListAssignmentValue3723 = new BitSet(new long[]{0x0000000000000080L});
+ public static final BitSet FOLLOW_RULE_INT_in_ruleListAssignmentValue3744 = new BitSet(new long[]{0x0000000080000000L});
+ public static final BitSet FOLLOW_31_in_ruleListAssignmentValue3765 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleCreatedObject_in_ruleListAssignmentValue3811 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_ID_in_ruleListAssignmentValue3847 = new BitSet(new long[]{0x0000000000000040L});
+ public static final BitSet FOLLOW_RULE_FRAGMENT_in_ruleListAssignmentValue3872 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleSingleAssignmentValue_in_entryRuleSingleAssignmentValue3920 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleSingleAssignmentValue3930 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_33_in_ruleSingleAssignmentValue3979 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_STRING_in_ruleSingleAssignmentValue4018 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_ID_in_ruleSingleAssignmentValue4061 = new BitSet(new long[]{0x0000000000080002L});
+ public static final BitSet FOLLOW_19_in_ruleSingleAssignmentValue4076 = new BitSet(new long[]{0x0000000000000010L});
+ public static final BitSet FOLLOW_RULE_ID_in_ruleSingleAssignmentValue4097 = new BitSet(new long[]{0x0000000020000002L});
+ public static final BitSet FOLLOW_29_in_ruleSingleAssignmentValue4120 = new BitSet(new long[]{0x0000000000000080L});
+ public static final BitSet FOLLOW_RULE_INT_in_ruleSingleAssignmentValue4141 = new BitSet(new long[]{0x0000000080000000L});
+ public static final BitSet FOLLOW_31_in_ruleSingleAssignmentValue4162 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleCreatedObject_in_ruleSingleAssignmentValue4208 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_ID_in_ruleSingleAssignmentValue4244 = new BitSet(new long[]{0x0000000000000040L});
+ public static final BitSet FOLLOW_RULE_FRAGMENT_in_ruleSingleAssignmentValue4269 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleCreatedObject_in_entryRuleCreatedObject4316 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleCreatedObject4326 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleObjectNew_in_ruleCreatedObject4375 = new BitSet(new long[]{0x0000000000002012L});
+ public static final BitSet FOLLOW_ruleObjectCopy_in_ruleCreatedObject4402 = new BitSet(new long[]{0x0000000000002012L});
+ public static final BitSet FOLLOW_RULE_ID_in_ruleCreatedObject4423 = new BitSet(new long[]{0x0000000000002002L});
+ public static final BitSet FOLLOW_13_in_ruleCreatedObject4448 = new BitSet(new long[]{0x0000000000000010L});
+ public static final BitSet FOLLOW_ruleMonoSingleAssignment_in_ruleCreatedObject4483 = new BitSet(new long[]{0x0000001000004010L});
+ public static final BitSet FOLLOW_ruleMonoListAssignment_in_ruleCreatedObject4527 = new BitSet(new long[]{0x0000001000004010L});
+ public static final BitSet FOLLOW_ruleMigration_in_ruleCreatedObject4568 = new BitSet(new long[]{0x0000000000004000L});
+ public static final BitSet FOLLOW_14_in_ruleCreatedObject4583 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleObjectNew_in_entryRuleObjectNew4620 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleObjectNew4630 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_34_in_ruleObjectNew4665 = new BitSet(new long[]{0x0000000000000010L});
+ public static final BitSet FOLLOW_RULE_ID_in_ruleObjectNew4689 = new BitSet(new long[]{0x0000000000000040L});
+ public static final BitSet FOLLOW_RULE_FRAGMENT_in_ruleObjectNew4715 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleObjectCopy_in_entryRuleObjectCopy4761 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleObjectCopy4771 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_35_in_ruleObjectCopy4806 = new BitSet(new long[]{0x0000000000000010L});
+ public static final BitSet FOLLOW_RULE_ID_in_ruleObjectCopy4830 = new BitSet(new long[]{0x0000000000000040L});
+ public static final BitSet FOLLOW_RULE_FRAGMENT_in_ruleObjectCopy4856 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleMigration_in_entryRuleMigration4902 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleMigration4912 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_36_in_ruleMigration4948 = new BitSet(new long[]{0x0000006001040020L});
+ public static final BitSet FOLLOW_ruleExecutable_in_ruleMigration4982 = new BitSet(new long[]{0x0000006001000000L});
+ public static final BitSet FOLLOW_37_in_ruleMigration4999 = new BitSet(new long[]{0x0000000000040020L});
+ public static final BitSet FOLLOW_ruleExecutable_in_ruleMigration5033 = new BitSet(new long[]{0x0000000001000000L});
+ public static final BitSet FOLLOW_38_in_ruleMigration5054 = new BitSet(new long[]{0x0000000000040020L});
+ public static final BitSet FOLLOW_ruleExecutable_in_ruleMigration5088 = new BitSet(new long[]{0x0000000001000000L});
+ public static final BitSet FOLLOW_24_in_ruleMigration5105 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleExecutable_in_entryRuleExecutable5140 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleExecutable5150 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleJavaExecutable_in_ruleExecutable5197 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleExpressionExecutable_in_ruleExecutable5224 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleJavaExecutable_in_entryRuleJavaExecutable5258 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleJavaExecutable5268 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_18_in_ruleJavaExecutable5304 = new BitSet(new long[]{0x0000000000000010L});
+ public static final BitSet FOLLOW_RULE_ID_in_ruleJavaExecutable5325 = new BitSet(new long[]{0x0000008000000000L});
+ public static final BitSet FOLLOW_39_in_ruleJavaExecutable5346 = new BitSet(new long[]{0x0000010000000000L});
+ public static final BitSet FOLLOW_40_in_ruleJavaExecutable5356 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_ruleExpressionExecutable_in_entryRuleExpressionExecutable5391 = new BitSet(new long[]{0x0000000000000000L});
+ public static final BitSet FOLLOW_EOF_in_entryRuleExpressionExecutable5401 = new BitSet(new long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_RULE_STRING_in_ruleExpressionExecutable5446 = new BitSet(new long[]{0x0000000000000002L});
+
+} \ No newline at end of file
diff --git a/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage__.g b/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage__.g
new file mode 100644
index 0000000..9b08f57
--- /dev/null
+++ b/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage__.g
@@ -0,0 +1,64 @@
+lexer grammar InternalEpatchTestLanguage;
+@header {
+package org.eclipse.xtext.parser.epatch.parser.antlr.internal;
+
+// Hack: Use our own Lexer superclass by means of import.
+// Currently there is no other way to specify the superclass for the lexer.
+import org.eclipse.xtext.parser.antlr.Lexer;
+}
+
+T12 : 'epatch' ;
+T13 : '{' ;
+T14 : '}' ;
+T15 : 'import' ;
+T16 : 'uri' ;
+T17 : 'ns' ;
+T18 : 'java' ;
+T19 : '.' ;
+T20 : 'extension' ;
+T21 : '::' ;
+T22 : 'resource' ;
+T23 : 'left' ;
+T24 : ';' ;
+T25 : 'right' ;
+T26 : 'object' ;
+T27 : '=' ;
+T28 : '|' ;
+T29 : '[' ;
+T30 : ',' ;
+T31 : ']' ;
+T32 : ':' ;
+T33 : 'null' ;
+T34 : 'new' ;
+T35 : 'copy' ;
+T36 : 'migrate' ;
+T37 : 'as' ;
+T38 : 'each' ;
+T39 : '(' ;
+T40 : ')' ;
+
+// $ANTLR src "../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g" 2540
+RULE_FRAGMENT : '#' ('a'..'z'|'A'..'Z'|'0'..'9'|'_'|'/'|'['|']'|'{'|'}'|'.'|'@')+;
+
+// $ANTLR src "../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g" 2542
+RULE_ID : ('^')?('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'_'|'0'..'9')*;
+
+// $ANTLR src "../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g" 2544
+RULE_INT : ('0'..'9')+;
+
+// $ANTLR src "../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g" 2546
+RULE_STRING : '"' ( '\\' ('b'|'t'|'n'|'f'|'r'|'\"'|'\''|'\\') | ~('\\'|'"') )* '"' | '\'' ( '\\' ('b'|'t'|'n'|'f'|'r'|'\"'|'\''|'\\') | ~('\\'|'\'') )* '\'';
+
+// $ANTLR src "../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g" 2548
+RULE_ML_COMMENT : '/*' ( options {greedy=false;} : . )* '*/' {$channel=HIDDEN;};
+
+// $ANTLR src "../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g" 2550
+RULE_SL_COMMENT : '//' ~('\n'|'\r')* ('\r'? '\n')? {$channel=HIDDEN;};
+
+// $ANTLR src "../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g" 2552
+RULE_WS : (' '|'\t'|'\r'|'\n')+ {$channel=HIDDEN;};
+
+// $ANTLR src "../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/parser/epatch/parser/antlr/internal/InternalEpatchTestLanguage.g" 2554
+RULE_ANY_OTHER : .;
+
+
diff --git a/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/epatch/parser/packrat/EpatchTestLanguageDelimiters.java b/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/epatch/parser/packrat/EpatchTestLanguageDelimiters.java
new file mode 100644
index 0000000..a4765ad
--- /dev/null
+++ b/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/epatch/parser/packrat/EpatchTestLanguageDelimiters.java
@@ -0,0 +1,31 @@
+/*
+Generated with Xtext
+*/
+package org.eclipse.xtext.parser.epatch.parser.packrat;
+
+import org.eclipse.xtext.parser.packrat.matching.ICharacterClass;
+import org.eclipse.xtext.parser.packrat.matching.ISequenceMatcher;
+import org.eclipse.xtext.parser.packrat.matching.SetBasedKeywordMatcher;
+
+public final class EpatchTestLanguageDelimiters {
+
+ private EpatchTestLanguageDelimiters() {
+ throw new UnsupportedOperationException("Utility classes may not be initialized");
+ }
+
+ public static ICharacterClass keyword$12$Delimiter = ICharacterClass.Factory.nullClass();
+
+ // TODO: remove hardcoded character class from template
+ public static ICharacterClass keyword$9$Delimiter = ICharacterClass.Factory.join(
+ ICharacterClass.Factory.createRange('a', 'z'),
+ ICharacterClass.Factory.createRange('A', 'Z'),
+ ICharacterClass.Factory.create('_'),
+ ICharacterClass.Factory.createRange('0', '9')
+ );
+
+ public static ISequenceMatcher ruleCall$11$Delimiter = new SetBasedKeywordMatcher(
+ "epatch", "import", "uri", "ns", "java", "extension", "resource", "left", "right", "object", "null", "new", "copy", "migrate", "as", "each");
+
+ public static ISequenceMatcher ruleCall$42$Delimiter = ISequenceMatcher.Factory.nullMatcher();
+
+}
diff --git a/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/epatch/parser/packrat/EpatchTestLanguagePackratParser.java b/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/epatch/parser/packrat/EpatchTestLanguagePackratParser.java
new file mode 100644
index 0000000..1768ffc
--- /dev/null
+++ b/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/epatch/parser/packrat/EpatchTestLanguagePackratParser.java
@@ -0,0 +1,22 @@
+/*
+Generated with Xtext
+*/
+package org.eclipse.xtext.parser.epatch.parser.packrat;
+
+import org.eclipse.xtext.parser.packrat.AbstractPackratParser;
+import org.eclipse.xtext.parser.packrat.ICharSequenceWithOffset;
+import org.eclipse.xtext.parser.packrat.IHiddenTokenHandler;
+import org.eclipse.xtext.parser.packrat.IMarkerFactory;
+import org.eclipse.xtext.parser.packrat.consumers.IConsumerUtility;
+import org.eclipse.xtext.parser.packrat.tokens.IParsedTokenAcceptor;
+
+public class EpatchTestLanguagePackratParser extends AbstractPackratParser {
+
+ @Override
+ protected EpatchTestLanguageParserConfiguration createParserConfiguration(ICharSequenceWithOffset input,
+ IMarkerFactory markerFactory, IParsedTokenAcceptor tokenAcceptor, IHiddenTokenHandler hiddenTokenHandler,
+ IConsumerUtility consumerUtil) {
+ return new EpatchTestLanguageParserConfiguration(input, markerFactory, tokenAcceptor, hiddenTokenHandler, consumerUtil);
+ }
+
+}
diff --git a/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/epatch/parser/packrat/EpatchTestLanguageParserConfiguration.java b/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/epatch/parser/packrat/EpatchTestLanguageParserConfiguration.java
new file mode 100644
index 0000000..e69b679
--- /dev/null
+++ b/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/epatch/parser/packrat/EpatchTestLanguageParserConfiguration.java
@@ -0,0 +1,531 @@
+/*
+Generated with Xtext
+*/
+package org.eclipse.xtext.parser.epatch.parser.packrat;
+
+import org.eclipse.xtext.parser.packrat.AbstractParserConfiguration;
+import org.eclipse.xtext.parser.packrat.ICharSequenceWithOffset;
+import org.eclipse.xtext.parser.packrat.IHiddenTokenHandler;
+import org.eclipse.xtext.parser.packrat.IMarkerFactory;
+import org.eclipse.xtext.parser.packrat.consumers.IConsumerUtility;
+import org.eclipse.xtext.parser.packrat.consumers.INonTerminalConsumer;
+import org.eclipse.xtext.parser.packrat.consumers.ITerminalConsumer;
+import org.eclipse.xtext.parser.packrat.tokens.IParsedTokenAcceptor;
+
+import org.eclipse.xtext.builtin.parser.packrat.XtextBuiltinParserConfiguration;
+
+import org.eclipse.xtext.parser.epatch.parser.packrat.consumers.EpatchTestLanguageEPatchConsumer;
+import org.eclipse.xtext.parser.epatch.parser.packrat.consumers.EpatchTestLanguageImportConsumer;
+import org.eclipse.xtext.parser.epatch.parser.packrat.consumers.EpatchTestLanguageModelImportConsumer;
+import org.eclipse.xtext.parser.epatch.parser.packrat.consumers.EpatchTestLanguageResourceImportConsumer;
+import org.eclipse.xtext.parser.epatch.parser.packrat.consumers.EpatchTestLanguageEPackageImportConsumer;
+import org.eclipse.xtext.parser.epatch.parser.packrat.consumers.EpatchTestLanguageJavaImportConsumer;
+import org.eclipse.xtext.parser.epatch.parser.packrat.consumers.EpatchTestLanguageExtensionImportConsumer;
+import org.eclipse.xtext.parser.epatch.parser.packrat.consumers.EpatchTestLanguageNamedResourceConsumer;
+import org.eclipse.xtext.parser.epatch.parser.packrat.consumers.EpatchTestLanguageNamedObjectConsumer;
+import org.eclipse.xtext.parser.epatch.parser.packrat.consumers.EpatchTestLanguageObjectRefConsumer;
+import org.eclipse.xtext.parser.epatch.parser.packrat.consumers.EpatchTestLanguageAssignmentConsumer;
+import org.eclipse.xtext.parser.epatch.parser.packrat.consumers.EpatchTestLanguageBiSingleAssignmentConsumer;
+import org.eclipse.xtext.parser.epatch.parser.packrat.consumers.EpatchTestLanguageBiListAssignmentConsumer;
+import org.eclipse.xtext.parser.epatch.parser.packrat.consumers.EpatchTestLanguageMonoSingleAssignmentConsumer;
+import org.eclipse.xtext.parser.epatch.parser.packrat.consumers.EpatchTestLanguageMonoListAssignmentConsumer;
+import org.eclipse.xtext.parser.epatch.parser.packrat.consumers.EpatchTestLanguageAssignmentValueConsumer;
+import org.eclipse.xtext.parser.epatch.parser.packrat.consumers.EpatchTestLanguageListAssignmentValueConsumer;
+import org.eclipse.xtext.parser.epatch.parser.packrat.consumers.EpatchTestLanguageSingleAssignmentValueConsumer;
+import org.eclipse.xtext.parser.epatch.parser.packrat.consumers.EpatchTestLanguageCreatedObjectConsumer;
+import org.eclipse.xtext.parser.epatch.parser.packrat.consumers.EpatchTestLanguageObjectNewConsumer;
+import org.eclipse.xtext.parser.epatch.parser.packrat.consumers.EpatchTestLanguageObjectCopyConsumer;
+import org.eclipse.xtext.parser.epatch.parser.packrat.consumers.EpatchTestLanguageFRAGMENTConsumer;
+import org.eclipse.xtext.parser.epatch.parser.packrat.consumers.EpatchTestLanguageMigrationConsumer;
+import org.eclipse.xtext.parser.epatch.parser.packrat.consumers.EpatchTestLanguageExecutableConsumer;
+import org.eclipse.xtext.parser.epatch.parser.packrat.consumers.EpatchTestLanguageJavaExecutableConsumer;
+import org.eclipse.xtext.parser.epatch.parser.packrat.consumers.EpatchTestLanguageExpressionExecutableConsumer;
+import org.eclipse.xtext.builtin.parser.packrat.consumers.XtextBuiltinIDConsumer;
+import org.eclipse.xtext.builtin.parser.packrat.consumers.XtextBuiltinINTConsumer;
+import org.eclipse.xtext.builtin.parser.packrat.consumers.XtextBuiltinSTRINGConsumer;
+import org.eclipse.xtext.builtin.parser.packrat.consumers.XtextBuiltinML_COMMENTConsumer;
+import org.eclipse.xtext.builtin.parser.packrat.consumers.XtextBuiltinSL_COMMENTConsumer;
+import org.eclipse.xtext.builtin.parser.packrat.consumers.XtextBuiltinWSConsumer;
+import org.eclipse.xtext.builtin.parser.packrat.consumers.XtextBuiltinANY_OTHERConsumer;
+
+public class EpatchTestLanguageParserConfiguration extends AbstractParserConfiguration {
+
+ private XtextBuiltinParserConfiguration xtextBuiltinConfiguration;
+
+ private EpatchTestLanguageEPatchConsumer ePatchConsumer;
+ private EpatchTestLanguageImportConsumer importConsumer;
+ private EpatchTestLanguageModelImportConsumer modelImportConsumer;
+ private EpatchTestLanguageResourceImportConsumer resourceImportConsumer;
+ private EpatchTestLanguageEPackageImportConsumer ePackageImportConsumer;
+ private EpatchTestLanguageJavaImportConsumer javaImportConsumer;
+ private EpatchTestLanguageExtensionImportConsumer extensionImportConsumer;
+ private EpatchTestLanguageNamedResourceConsumer namedResourceConsumer;
+ private EpatchTestLanguageNamedObjectConsumer namedObjectConsumer;
+ private EpatchTestLanguageObjectRefConsumer objectRefConsumer;
+ private EpatchTestLanguageAssignmentConsumer assignmentConsumer;
+ private EpatchTestLanguageBiSingleAssignmentConsumer biSingleAssignmentConsumer;
+ private EpatchTestLanguageBiListAssignmentConsumer biListAssignmentConsumer;
+ private EpatchTestLanguageMonoSingleAssignmentConsumer monoSingleAssignmentConsumer;
+ private EpatchTestLanguageMonoListAssignmentConsumer monoListAssignmentConsumer;
+ private EpatchTestLanguageAssignmentValueConsumer assignmentValueConsumer;
+ private EpatchTestLanguageListAssignmentValueConsumer listAssignmentValueConsumer;
+ private EpatchTestLanguageSingleAssignmentValueConsumer singleAssignmentValueConsumer;
+ private EpatchTestLanguageCreatedObjectConsumer createdObjectConsumer;
+ private EpatchTestLanguageObjectNewConsumer objectNewConsumer;
+ private EpatchTestLanguageObjectCopyConsumer objectCopyConsumer;
+ private EpatchTestLanguageFRAGMENTConsumer fragmentConsumer;
+ private EpatchTestLanguageMigrationConsumer migrationConsumer;
+ private EpatchTestLanguageExecutableConsumer executableConsumer;
+ private EpatchTestLanguageJavaExecutableConsumer javaExecutableConsumer;
+ private EpatchTestLanguageExpressionExecutableConsumer expressionExecutableConsumer;
+
+ public EpatchTestLanguageParserConfiguration(ICharSequenceWithOffset input, IMarkerFactory markerFactory,
+ IParsedTokenAcceptor tokenAcceptor, IHiddenTokenHandler hiddenTokenHandler, IConsumerUtility consumerUtil) {
+ super(input, markerFactory, tokenAcceptor, hiddenTokenHandler, consumerUtil);
+ this.xtextBuiltinConfiguration = new XtextBuiltinParserConfiguration(
+ input, markerFactory, tokenAcceptor, hiddenTokenHandler, consumerUtil);
+ }
+
+ public EpatchTestLanguageEPatchConsumer getRootConsumer() {
+ return ePatchConsumer;
+ }
+
+ public void createNonTerminalConsumers() {
+ getXtextBuiltinConfiguration().createNonTerminalConsumers();
+ ePatchConsumer = new EpatchTestLanguageEPatchConsumer(
+ getInput(), getMarkerFactory(), getTokenAcceptor(), getHiddenTokenHandler(), getConsumerUtil(),
+ new ITerminalConsumer[]{ getWsConsumer(), getMlCommentConsumer(), getSlCommentConsumer() }
+ );
+ importConsumer = new EpatchTestLanguageImportConsumer(
+ getInput(), getMarkerFactory(), getTokenAcceptor(), getHiddenTokenHandler(), getConsumerUtil(), null
+ );
+ modelImportConsumer = new EpatchTestLanguageModelImportConsumer(
+ getInput(), getMarkerFactory(), getTokenAcceptor(), getHiddenTokenHandler(), getConsumerUtil(), null
+ );
+ resourceImportConsumer = new EpatchTestLanguageResourceImportConsumer(
+ getInput(), getMarkerFactory(), getTokenAcceptor(), getHiddenTokenHandler(), getConsumerUtil(), null
+ );
+ ePackageImportConsumer = new EpatchTestLanguageEPackageImportConsumer(
+ getInput(), getMarkerFactory(), getTokenAcceptor(), getHiddenTokenHandler(), getConsumerUtil(), null
+ );
+ javaImportConsumer = new EpatchTestLanguageJavaImportConsumer(
+ getInput(), getMarkerFactory(), getTokenAcceptor(), getHiddenTokenHandler(), getConsumerUtil(), null
+ );
+ extensionImportConsumer = new EpatchTestLanguageExtensionImportConsumer(
+ getInput(), getMarkerFactory(), getTokenAcceptor(), getHiddenTokenHandler(), getConsumerUtil(), null
+ );
+ namedResourceConsumer = new EpatchTestLanguageNamedResourceConsumer(
+ getInput(), getMarkerFactory(), getTokenAcceptor(), getHiddenTokenHandler(), getConsumerUtil(), null
+ );
+ namedObjectConsumer = new EpatchTestLanguageNamedObjectConsumer(
+ getInput(), getMarkerFactory(), getTokenAcceptor(), getHiddenTokenHandler(), getConsumerUtil(), null
+ );
+ objectRefConsumer = new EpatchTestLanguageObjectRefConsumer(
+ getInput(), getMarkerFactory(), getTokenAcceptor(), getHiddenTokenHandler(), getConsumerUtil(), null
+ );
+ assignmentConsumer = new EpatchTestLanguageAssignmentConsumer(
+ getInput(), getMarkerFactory(), getTokenAcceptor(), getHiddenTokenHandler(), getConsumerUtil(), null
+ );
+ biSingleAssignmentConsumer = new EpatchTestLanguageBiSingleAssignmentConsumer(
+ getInput(), getMarkerFactory(), getTokenAcceptor(), getHiddenTokenHandler(), getConsumerUtil(), null
+ );
+ biListAssignmentConsumer = new EpatchTestLanguageBiListAssignmentConsumer(
+ getInput(), getMarkerFactory(), getTokenAcceptor(), getHiddenTokenHandler(), getConsumerUtil(), null
+ );
+ monoSingleAssignmentConsumer = new EpatchTestLanguageMonoSingleAssignmentConsumer(
+ getInput(), getMarkerFactory(), getTokenAcceptor(), getHiddenTokenHandler(), getConsumerUtil(), null
+ );
+ monoListAssignmentConsumer = new EpatchTestLanguageMonoListAssignmentConsumer(
+ getInput(), getMarkerFactory(), getTokenAcceptor(), getHiddenTokenHandler(), getConsumerUtil(), null
+ );
+ assignmentValueConsumer = new EpatchTestLanguageAssignmentValueConsumer(
+ getInput(), getMarkerFactory(), getTokenAcceptor(), getHiddenTokenHandler(), getConsumerUtil(), null
+ );
+ listAssignmentValueConsumer = new EpatchTestLanguageListAssignmentValueConsumer(
+ getInput(), getMarkerFactory(), getTokenAcceptor(), getHiddenTokenHandler(), getConsumerUtil(), null
+ );
+ singleAssignmentValueConsumer = new EpatchTestLanguageSingleAssignmentValueConsumer(
+ getInput(), getMarkerFactory(), getTokenAcceptor(), getHiddenTokenHandler(), getConsumerUtil(), null
+ );
+ createdObjectConsumer = new EpatchTestLanguageCreatedObjectConsumer(
+ getInput(), getMarkerFactory(), getTokenAcceptor(), getHiddenTokenHandler(), getConsumerUtil(), null
+ );
+ objectNewConsumer = new EpatchTestLanguageObjectNewConsumer(
+ getInput(), getMarkerFactory(), getTokenAcceptor(), getHiddenTokenHandler(), getConsumerUtil(), null
+ );
+ objectCopyConsumer = new EpatchTestLanguageObjectCopyConsumer(
+ getInput(), getMarkerFactory(), getTokenAcceptor(), getHiddenTokenHandler(), getConsumerUtil(), null
+ );
+ migrationConsumer = new EpatchTestLanguageMigrationConsumer(
+ getInput(), getMarkerFactory(), getTokenAcceptor(), getHiddenTokenHandler(), getConsumerUtil(), null
+ );
+ executableConsumer = new EpatchTestLanguageExecutableConsumer(
+ getInput(), getMarkerFactory(), getTokenAcceptor(), getHiddenTokenHandler(), getConsumerUtil(), null
+ );
+ javaExecutableConsumer = new EpatchTestLanguageJavaExecutableConsumer(
+ getInput(), getMarkerFactory(), getTokenAcceptor(), getHiddenTokenHandler(), getConsumerUtil(), null
+ );
+ expressionExecutableConsumer = new EpatchTestLanguageExpressionExecutableConsumer(
+ getInput(), getMarkerFactory(), getTokenAcceptor(), getHiddenTokenHandler(), getConsumerUtil(), null
+ );
+ }
+
+ public void createTerminalConsumers() {
+ getXtextBuiltinConfiguration().createTerminalConsumers();
+ fragmentConsumer = new EpatchTestLanguageFRAGMENTConsumer(getInput(), getMarkerFactory(), getTokenAcceptor());
+ }
+
+ public void configureConsumers() {
+ getEPatchConsumer().setIdConsumer(getIdConsumer());
+ getEPatchConsumer().setImportConsumer(getImportConsumer());
+ getEPatchConsumer().setNamedResourceConsumer(getNamedResourceConsumer());
+ getEPatchConsumer().setObjectRefConsumer(getObjectRefConsumer());
+
+ getImportConsumer().setExtensionImportConsumer(getExtensionImportConsumer());
+ getImportConsumer().setJavaImportConsumer(getJavaImportConsumer());
+ getImportConsumer().setModelImportConsumer(getModelImportConsumer());
+
+ getModelImportConsumer().setEPackageImportConsumer(getEPackageImportConsumer());
+ getModelImportConsumer().setResourceImportConsumer(getResourceImportConsumer());
+
+ getResourceImportConsumer().setIdConsumer(getIdConsumer());
+ getResourceImportConsumer().setStringConsumer(getStringConsumer());
+
+ getEPackageImportConsumer().setIdConsumer(getIdConsumer());
+ getEPackageImportConsumer().setStringConsumer(getStringConsumer());
+
+ getJavaImportConsumer().setIdConsumer(getIdConsumer());
+
+ getExtensionImportConsumer().setIdConsumer(getIdConsumer());
+
+ getNamedResourceConsumer().setCreatedObjectConsumer(getCreatedObjectConsumer());
+ getNamedResourceConsumer().setIdConsumer(getIdConsumer());
+ getNamedResourceConsumer().setStringConsumer(getStringConsumer());
+
+ getNamedObjectConsumer().setCreatedObjectConsumer(getCreatedObjectConsumer());
+ getNamedObjectConsumer().setObjectRefConsumer(getObjectRefConsumer());
+
+ getObjectRefConsumer().setBiListAssignmentConsumer(getBiListAssignmentConsumer());
+ getObjectRefConsumer().setBiSingleAssignmentConsumer(getBiSingleAssignmentConsumer());
+ getObjectRefConsumer().setFragmentConsumer(getFragmentConsumer());
+ getObjectRefConsumer().setIdConsumer(getIdConsumer());
+ getObjectRefConsumer().setMigrationConsumer(getMigrationConsumer());
+
+ getAssignmentConsumer().setBiListAssignmentConsumer(getBiListAssignmentConsumer());
+ getAssignmentConsumer().setBiSingleAssignmentConsumer(getBiSingleAssignmentConsumer());
+ getAssignmentConsumer().setMonoListAssignmentConsumer(getMonoListAssignmentConsumer());
+ getAssignmentConsumer().setMonoSingleAssignmentConsumer(getMonoSingleAssignmentConsumer());
+
+ getBiSingleAssignmentConsumer().setIdConsumer(getIdConsumer());
+ getBiSingleAssignmentConsumer().setSingleAssignmentValueConsumer(getSingleAssignmentValueConsumer());
+
+ getBiListAssignmentConsumer().setIdConsumer(getIdConsumer());
+ getBiListAssignmentConsumer().setListAssignmentValueConsumer(getListAssignmentValueConsumer());
+
+ getMonoSingleAssignmentConsumer().setIdConsumer(getIdConsumer());
+ getMonoSingleAssignmentConsumer().setSingleAssignmentValueConsumer(getSingleAssignmentValueConsumer());
+
+ getMonoListAssignmentConsumer().setAssignmentValueConsumer(getAssignmentValueConsumer());
+ getMonoListAssignmentConsumer().setIdConsumer(getIdConsumer());
+
+ getAssignmentValueConsumer().setCreatedObjectConsumer(getCreatedObjectConsumer());
+ getAssignmentValueConsumer().setFragmentConsumer(getFragmentConsumer());
+ getAssignmentValueConsumer().setIdConsumer(getIdConsumer());
+ getAssignmentValueConsumer().setIntConsumer(getIntConsumer());
+ getAssignmentValueConsumer().setStringConsumer(getStringConsumer());
+
+ getListAssignmentValueConsumer().setCreatedObjectConsumer(getCreatedObjectConsumer());
+ getListAssignmentValueConsumer().setFragmentConsumer(getFragmentConsumer());
+ getListAssignmentValueConsumer().setIdConsumer(getIdConsumer());
+ getListAssignmentValueConsumer().setIntConsumer(getIntConsumer());
+ getListAssignmentValueConsumer().setStringConsumer(getStringConsumer());
+
+ getSingleAssignmentValueConsumer().setCreatedObjectConsumer(getCreatedObjectConsumer());
+ getSingleAssignmentValueConsumer().setFragmentConsumer(getFragmentConsumer());
+ getSingleAssignmentValueConsumer().setIdConsumer(getIdConsumer());
+ getSingleAssignmentValueConsumer().setIntConsumer(getIntConsumer());
+ getSingleAssignmentValueConsumer().setStringConsumer(getStringConsumer());
+
+ getCreatedObjectConsumer().setIdConsumer(getIdConsumer());
+ getCreatedObjectConsumer().setMigrationConsumer(getMigrationConsumer());
+ getCreatedObjectConsumer().setMonoListAssignmentConsumer(getMonoListAssignmentConsumer());
+ getCreatedObjectConsumer().setMonoSingleAssignmentConsumer(getMonoSingleAssignmentConsumer());
+ getCreatedObjectConsumer().setObjectCopyConsumer(getObjectCopyConsumer());
+ getCreatedObjectConsumer().setObjectNewConsumer(getObjectNewConsumer());
+
+ getObjectNewConsumer().setFragmentConsumer(getFragmentConsumer());
+ getObjectNewConsumer().setIdConsumer(getIdConsumer());
+
+ getObjectCopyConsumer().setFragmentConsumer(getFragmentConsumer());
+ getObjectCopyConsumer().setIdConsumer(getIdConsumer());
+
+ getMigrationConsumer().setExecutableConsumer(getExecutableConsumer());
+
+ getExecutableConsumer().setExpressionExecutableConsumer(getExpressionExecutableConsumer());
+ getExecutableConsumer().setJavaExecutableConsumer(getJavaExecutableConsumer());
+
+ getJavaExecutableConsumer().setIdConsumer(getIdConsumer());
+
+ getExpressionExecutableConsumer().setStringConsumer(getStringConsumer());
+
+ getEPatchConsumer().setKeyword$10$Delimiter(EpatchTestLanguageDelimiters.keyword$12$Delimiter);
+ getEPatchConsumer().setKeyword$17$Delimiter(EpatchTestLanguageDelimiters.keyword$12$Delimiter);
+ getEPatchConsumer().setKeyword$7$Delimiter(EpatchTestLanguageDelimiters.keyword$9$Delimiter);
+ getEPatchConsumer().setRuleCall$9$Delimiter(EpatchTestLanguageDelimiters.ruleCall$11$Delimiter);
+ getResourceImportConsumer().setKeyword$4$Delimiter(EpatchTestLanguageDelimiters.keyword$9$Delimiter);
+ getResourceImportConsumer().setKeyword$7$Delimiter(EpatchTestLanguageDelimiters.keyword$9$Delimiter);
+ getResourceImportConsumer().setRuleCall$6$Delimiter(EpatchTestLanguageDelimiters.ruleCall$11$Delimiter);
+ getResourceImportConsumer().setRuleCall$9$Delimiter(EpatchTestLanguageDelimiters.ruleCall$42$Delimiter);
+ getEPackageImportConsumer().setKeyword$4$Delimiter(EpatchTestLanguageDelimiters.keyword$9$Delimiter);
+ getEPackageImportConsumer().setKeyword$7$Delimiter(EpatchTestLanguageDelimiters.keyword$9$Delimiter);
+ getEPackageImportConsumer().setRuleCall$6$Delimiter(EpatchTestLanguageDelimiters.ruleCall$11$Delimiter);
+ getEPackageImportConsumer().setRuleCall$9$Delimiter(EpatchTestLanguageDelimiters.ruleCall$42$Delimiter);
+ getJavaImportConsumer().setKeyword$4$Delimiter(EpatchTestLanguageDelimiters.keyword$9$Delimiter);
+ getJavaImportConsumer().setKeyword$5$Delimiter(EpatchTestLanguageDelimiters.keyword$9$Delimiter);
+ getJavaImportConsumer().setKeyword$9$Delimiter(EpatchTestLanguageDelimiters.keyword$12$Delimiter);
+ getJavaImportConsumer().setRuleCall$7$Delimiter(EpatchTestLanguageDelimiters.ruleCall$11$Delimiter);
+ getJavaImportConsumer().setRuleCall$11$Delimiter(EpatchTestLanguageDelimiters.ruleCall$11$Delimiter);
+ getExtensionImportConsumer().setKeyword$4$Delimiter(EpatchTestLanguageDelimiters.keyword$9$Delimiter);
+ getExtensionImportConsumer().setKeyword$5$Delimiter(EpatchTestLanguageDelimiters.keyword$9$Delimiter);
+ getExtensionImportConsumer().setKeyword$9$Delimiter(EpatchTestLanguageDelimiters.keyword$12$Delimiter);
+ getExtensionImportConsumer().setRuleCall$7$Delimiter(EpatchTestLanguageDelimiters.ruleCall$11$Delimiter);
+ getExtensionImportConsumer().setRuleCall$11$Delimiter(EpatchTestLanguageDelimiters.ruleCall$11$Delimiter);
+ getNamedResourceConsumer().setKeyword$22$Delimiter(EpatchTestLanguageDelimiters.keyword$12$Delimiter);
+ getNamedResourceConsumer().setKeyword$23$Delimiter(EpatchTestLanguageDelimiters.keyword$9$Delimiter);
+ getNamedResourceConsumer().setKeyword$26$Delimiter(EpatchTestLanguageDelimiters.keyword$9$Delimiter);
+ getNamedResourceConsumer().setKeyword$31$Delimiter(EpatchTestLanguageDelimiters.keyword$12$Delimiter);
+ getNamedResourceConsumer().setKeyword$32$Delimiter(EpatchTestLanguageDelimiters.keyword$12$Delimiter);
+ getNamedResourceConsumer().setKeyword$10$Delimiter(EpatchTestLanguageDelimiters.keyword$9$Delimiter);
+ getNamedResourceConsumer().setKeyword$13$Delimiter(EpatchTestLanguageDelimiters.keyword$12$Delimiter);
+ getNamedResourceConsumer().setKeyword$14$Delimiter(EpatchTestLanguageDelimiters.keyword$9$Delimiter);
+ getNamedResourceConsumer().setKeyword$17$Delimiter(EpatchTestLanguageDelimiters.keyword$9$Delimiter);
+ getNamedResourceConsumer().setRuleCall$19$Delimiter(EpatchTestLanguageDelimiters.ruleCall$42$Delimiter);
+ getNamedResourceConsumer().setRuleCall$28$Delimiter(EpatchTestLanguageDelimiters.ruleCall$42$Delimiter);
+ getNamedResourceConsumer().setRuleCall$12$Delimiter(EpatchTestLanguageDelimiters.ruleCall$11$Delimiter);
+ getObjectRefConsumer().setCrossReference$10$Delimiter(EpatchTestLanguageDelimiters.ruleCall$11$Delimiter);
+ getObjectRefConsumer().setCrossReference$21$Delimiter(EpatchTestLanguageDelimiters.ruleCall$11$Delimiter);
+ getObjectRefConsumer().setCrossReference$27$Delimiter(EpatchTestLanguageDelimiters.ruleCall$11$Delimiter);
+ getObjectRefConsumer().setKeyword$4$Delimiter(EpatchTestLanguageDelimiters.keyword$9$Delimiter);
+ getObjectRefConsumer().setKeyword$19$Delimiter(EpatchTestLanguageDelimiters.keyword$9$Delimiter);
+ getObjectRefConsumer().setKeyword$25$Delimiter(EpatchTestLanguageDelimiters.keyword$9$Delimiter);
+ getObjectRefConsumer().setKeyword$35$Delimiter(EpatchTestLanguageDelimiters.keyword$12$Delimiter);
+ getObjectRefConsumer().setKeyword$42$Delimiter(EpatchTestLanguageDelimiters.keyword$9$Delimiter);
+ getObjectRefConsumer().setKeyword$46$Delimiter(EpatchTestLanguageDelimiters.keyword$9$Delimiter);
+ getObjectRefConsumer().setKeyword$49$Delimiter(EpatchTestLanguageDelimiters.keyword$12$Delimiter);
+ getObjectRefConsumer().setRuleCall$6$Delimiter(EpatchTestLanguageDelimiters.ruleCall$11$Delimiter);
+ getObjectRefConsumer().setRuleCall$13$Delimiter(EpatchTestLanguageDelimiters.ruleCall$42$Delimiter);
+ getObjectRefConsumer().setRuleCall$24$Delimiter(EpatchTestLanguageDelimiters.ruleCall$42$Delimiter);
+ getObjectRefConsumer().setRuleCall$30$Delimiter(EpatchTestLanguageDelimiters.ruleCall$42$Delimiter);
+ getBiSingleAssignmentConsumer().setKeyword$8$Delimiter(EpatchTestLanguageDelimiters.keyword$12$Delimiter);
+ getBiSingleAssignmentConsumer().setKeyword$11$Delimiter(EpatchTestLanguageDelimiters.keyword$12$Delimiter);
+ getBiSingleAssignmentConsumer().setKeyword$14$Delimiter(EpatchTestLanguageDelimiters.keyword$12$Delimiter);
+ getBiSingleAssignmentConsumer().setRuleCall$7$Delimiter(EpatchTestLanguageDelimiters.ruleCall$11$Delimiter);
+ getBiListAssignmentConsumer().setKeyword$10$Delimiter(EpatchTestLanguageDelimiters.keyword$12$Delimiter);
+ getBiListAssignmentConsumer().setKeyword$11$Delimiter(EpatchTestLanguageDelimiters.keyword$12$Delimiter);
+ getBiListAssignmentConsumer().setKeyword$16$Delimiter(EpatchTestLanguageDelimiters.keyword$12$Delimiter);
+ getBiListAssignmentConsumer().setKeyword$19$Delimiter(EpatchTestLanguageDelimiters.keyword$12$Delimiter);
+ getBiListAssignmentConsumer().setKeyword$24$Delimiter(EpatchTestLanguageDelimiters.keyword$12$Delimiter);
+ getBiListAssignmentConsumer().setKeyword$27$Delimiter(EpatchTestLanguageDelimiters.keyword$12$Delimiter);
+ getBiListAssignmentConsumer().setKeyword$28$Delimiter(EpatchTestLanguageDelimiters.keyword$12$Delimiter);
+ getBiListAssignmentConsumer().setRuleCall$9$Delimiter(EpatchTestLanguageDelimiters.ruleCall$11$Delimiter);
+ getMonoSingleAssignmentConsumer().setKeyword$6$Delimiter(EpatchTestLanguageDelimiters.keyword$12$Delimiter);
+ getMonoSingleAssignmentConsumer().setKeyword$9$Delimiter(EpatchTestLanguageDelimiters.keyword$12$Delimiter);
+ getMonoSingleAssignmentConsumer().setRuleCall$5$Delimiter(EpatchTestLanguageDelimiters.ruleCall$11$Delimiter);
+ getMonoListAssignmentConsumer().setKeyword$8$Delimiter(EpatchTestLanguageDelimiters.keyword$12$Delimiter);
+ getMonoListAssignmentConsumer().setKeyword$9$Delimiter(EpatchTestLanguageDelimiters.keyword$12$Delimiter);
+ getMonoListAssignmentConsumer().setKeyword$14$Delimiter(EpatchTestLanguageDelimiters.keyword$12$Delimiter);
+ getMonoListAssignmentConsumer().setKeyword$17$Delimiter(EpatchTestLanguageDelimiters.keyword$12$Delimiter);
+ getMonoListAssignmentConsumer().setKeyword$18$Delimiter(EpatchTestLanguageDelimiters.keyword$12$Delimiter);
+ getMonoListAssignmentConsumer().setRuleCall$7$Delimiter(EpatchTestLanguageDelimiters.ruleCall$11$Delimiter);
+ getAssignmentValueConsumer().setCrossReference$8$Delimiter(EpatchTestLanguageDelimiters.ruleCall$11$Delimiter);
+ getAssignmentValueConsumer().setCrossReference$25$Delimiter(EpatchTestLanguageDelimiters.ruleCall$11$Delimiter);
+ getAssignmentValueConsumer().setKeyword$12$Delimiter(EpatchTestLanguageDelimiters.keyword$12$Delimiter);
+ getAssignmentValueConsumer().setKeyword$17$Delimiter(EpatchTestLanguageDelimiters.keyword$12$Delimiter);
+ getAssignmentValueConsumer().setKeyword$20$Delimiter(EpatchTestLanguageDelimiters.keyword$12$Delimiter);
+ getAssignmentValueConsumer().setRuleCall$5$Delimiter(EpatchTestLanguageDelimiters.ruleCall$42$Delimiter);
+ getAssignmentValueConsumer().setRuleCall$14$Delimiter(EpatchTestLanguageDelimiters.ruleCall$11$Delimiter);
+ getAssignmentValueConsumer().setRuleCall$19$Delimiter(EpatchTestLanguageDelimiters.ruleCall$42$Delimiter);
+ getAssignmentValueConsumer().setRuleCall$28$Delimiter(EpatchTestLanguageDelimiters.ruleCall$42$Delimiter);
+ getListAssignmentValueConsumer().setCrossReference$20$Delimiter(EpatchTestLanguageDelimiters.ruleCall$11$Delimiter);
+ getListAssignmentValueConsumer().setCrossReference$37$Delimiter(EpatchTestLanguageDelimiters.ruleCall$11$Delimiter);
+ getListAssignmentValueConsumer().setKeyword$5$Delimiter(EpatchTestLanguageDelimiters.keyword$12$Delimiter);
+ getListAssignmentValueConsumer().setKeyword$12$Delimiter(EpatchTestLanguageDelimiters.keyword$12$Delimiter);
+ getListAssignmentValueConsumer().setKeyword$15$Delimiter(EpatchTestLanguageDelimiters.keyword$12$Delimiter);
+ getListAssignmentValueConsumer().setKeyword$24$Delimiter(EpatchTestLanguageDelimiters.keyword$12$Delimiter);
+ getListAssignmentValueConsumer().setKeyword$29$Delimiter(EpatchTestLanguageDelimiters.keyword$12$Delimiter);
+ getListAssignmentValueConsumer().setKeyword$32$Delimiter(EpatchTestLanguageDelimiters.keyword$12$Delimiter);
+ getListAssignmentValueConsumer().setRuleCall$4$Delimiter(EpatchTestLanguageDelimiters.ruleCall$42$Delimiter);
+ getListAssignmentValueConsumer().setRuleCall$14$Delimiter(EpatchTestLanguageDelimiters.ruleCall$42$Delimiter);
+ getListAssignmentValueConsumer().setRuleCall$17$Delimiter(EpatchTestLanguageDelimiters.ruleCall$42$Delimiter);
+ getListAssignmentValueConsumer().setRuleCall$26$Delimiter(EpatchTestLanguageDelimiters.ruleCall$11$Delimiter);
+ getListAssignmentValueConsumer().setRuleCall$31$Delimiter(EpatchTestLanguageDelimiters.ruleCall$42$Delimiter);
+ getListAssignmentValueConsumer().setRuleCall$40$Delimiter(EpatchTestLanguageDelimiters.ruleCall$42$Delimiter);
+ getSingleAssignmentValueConsumer().setCrossReference$11$Delimiter(EpatchTestLanguageDelimiters.ruleCall$11$Delimiter);
+ getSingleAssignmentValueConsumer().setCrossReference$28$Delimiter(EpatchTestLanguageDelimiters.ruleCall$11$Delimiter);
+ getSingleAssignmentValueConsumer().setKeyword$6$Delimiter(EpatchTestLanguageDelimiters.keyword$9$Delimiter);
+ getSingleAssignmentValueConsumer().setKeyword$15$Delimiter(EpatchTestLanguageDelimiters.keyword$12$Delimiter);
+ getSingleAssignmentValueConsumer().setKeyword$20$Delimiter(EpatchTestLanguageDelimiters.keyword$12$Delimiter);
+ getSingleAssignmentValueConsumer().setKeyword$23$Delimiter(EpatchTestLanguageDelimiters.keyword$12$Delimiter);
+ getSingleAssignmentValueConsumer().setRuleCall$8$Delimiter(EpatchTestLanguageDelimiters.ruleCall$42$Delimiter);
+ getSingleAssignmentValueConsumer().setRuleCall$17$Delimiter(EpatchTestLanguageDelimiters.ruleCall$11$Delimiter);
+ getSingleAssignmentValueConsumer().setRuleCall$22$Delimiter(EpatchTestLanguageDelimiters.ruleCall$42$Delimiter);
+ getSingleAssignmentValueConsumer().setRuleCall$31$Delimiter(EpatchTestLanguageDelimiters.ruleCall$42$Delimiter);
+ getCreatedObjectConsumer().setKeyword$11$Delimiter(EpatchTestLanguageDelimiters.keyword$12$Delimiter);
+ getCreatedObjectConsumer().setKeyword$19$Delimiter(EpatchTestLanguageDelimiters.keyword$12$Delimiter);
+ getCreatedObjectConsumer().setRuleCall$7$Delimiter(EpatchTestLanguageDelimiters.ruleCall$11$Delimiter);
+ getObjectNewConsumer().setCrossReference$5$Delimiter(EpatchTestLanguageDelimiters.ruleCall$11$Delimiter);
+ getObjectNewConsumer().setKeyword$3$Delimiter(EpatchTestLanguageDelimiters.keyword$9$Delimiter);
+ getObjectNewConsumer().setRuleCall$8$Delimiter(EpatchTestLanguageDelimiters.ruleCall$42$Delimiter);
+ getObjectCopyConsumer().setCrossReference$5$Delimiter(EpatchTestLanguageDelimiters.ruleCall$11$Delimiter);
+ getObjectCopyConsumer().setKeyword$3$Delimiter(EpatchTestLanguageDelimiters.keyword$9$Delimiter);
+ getObjectCopyConsumer().setRuleCall$8$Delimiter(EpatchTestLanguageDelimiters.ruleCall$42$Delimiter);
+ getMigrationConsumer().setKeyword$4$Delimiter(EpatchTestLanguageDelimiters.keyword$9$Delimiter);
+ getMigrationConsumer().setKeyword$9$Delimiter(EpatchTestLanguageDelimiters.keyword$9$Delimiter);
+ getMigrationConsumer().setKeyword$13$Delimiter(EpatchTestLanguageDelimiters.keyword$9$Delimiter);
+ getMigrationConsumer().setKeyword$16$Delimiter(EpatchTestLanguageDelimiters.keyword$12$Delimiter);
+ getJavaExecutableConsumer().setKeyword$4$Delimiter(EpatchTestLanguageDelimiters.keyword$9$Delimiter);
+ getJavaExecutableConsumer().setKeyword$7$Delimiter(EpatchTestLanguageDelimiters.keyword$12$Delimiter);
+ getJavaExecutableConsumer().setKeyword$8$Delimiter(EpatchTestLanguageDelimiters.keyword$12$Delimiter);
+ getJavaExecutableConsumer().setRuleCall$6$Delimiter(EpatchTestLanguageDelimiters.ruleCall$11$Delimiter);
+ getExpressionExecutableConsumer().setRuleCall$2$Delimiter(EpatchTestLanguageDelimiters.ruleCall$42$Delimiter);
+ }
+
+ // TODO collect superGrammars transitive
+ public XtextBuiltinParserConfiguration getXtextBuiltinConfiguration() {
+ return xtextBuiltinConfiguration;
+ }
+
+ public EpatchTestLanguageEPatchConsumer getEPatchConsumer() {
+ return ePatchConsumer;
+ }
+
+ public EpatchTestLanguageImportConsumer getImportConsumer() {
+ return importConsumer;
+ }
+
+ public EpatchTestLanguageModelImportConsumer getModelImportConsumer() {
+ return modelImportConsumer;
+ }
+
+ public EpatchTestLanguageResourceImportConsumer getResourceImportConsumer() {
+ return resourceImportConsumer;
+ }
+
+ public EpatchTestLanguageEPackageImportConsumer getEPackageImportConsumer() {
+ return ePackageImportConsumer;
+ }
+
+ public EpatchTestLanguageJavaImportConsumer getJavaImportConsumer() {
+ return javaImportConsumer;
+ }
+
+ public EpatchTestLanguageExtensionImportConsumer getExtensionImportConsumer() {
+ return extensionImportConsumer;
+ }
+
+ public EpatchTestLanguageNamedResourceConsumer getNamedResourceConsumer() {
+ return namedResourceConsumer;
+ }
+
+ public EpatchTestLanguageNamedObjectConsumer getNamedObjectConsumer() {
+ return namedObjectConsumer;
+ }
+
+ public EpatchTestLanguageObjectRefConsumer getObjectRefConsumer() {
+ return objectRefConsumer;
+ }
+
+ public EpatchTestLanguageAssignmentConsumer getAssignmentConsumer() {
+ return assignmentConsumer;
+ }
+
+ public EpatchTestLanguageBiSingleAssignmentConsumer getBiSingleAssignmentConsumer() {
+ return biSingleAssignmentConsumer;
+ }
+
+ public EpatchTestLanguageBiListAssignmentConsumer getBiListAssignmentConsumer() {
+ return biListAssignmentConsumer;
+ }
+
+ public EpatchTestLanguageMonoSingleAssignmentConsumer getMonoSingleAssignmentConsumer() {
+ return monoSingleAssignmentConsumer;
+ }
+
+ public EpatchTestLanguageMonoListAssignmentConsumer getMonoListAssignmentConsumer() {
+ return monoListAssignmentConsumer;
+ }
+
+ public EpatchTestLanguageAssignmentValueConsumer getAssignmentValueConsumer() {
+ return assignmentValueConsumer;
+ }
+
+ public EpatchTestLanguageListAssignmentValueConsumer getListAssignmentValueConsumer() {
+ return listAssignmentValueConsumer;
+ }
+
+ public EpatchTestLanguageSingleAssignmentValueConsumer getSingleAssignmentValueConsumer() {
+ return singleAssignmentValueConsumer;
+ }
+
+ public EpatchTestLanguageCreatedObjectConsumer getCreatedObjectConsumer() {
+ return createdObjectConsumer;
+ }
+
+ public EpatchTestLanguageObjectNewConsumer getObjectNewConsumer() {
+ return objectNewConsumer;
+ }
+
+ public EpatchTestLanguageObjectCopyConsumer getObjectCopyConsumer() {
+ return objectCopyConsumer;
+ }
+
+ public EpatchTestLanguageFRAGMENTConsumer getFragmentConsumer() {
+ return fragmentConsumer;
+ }
+
+ public EpatchTestLanguageMigrationConsumer getMigrationConsumer() {
+ return migrationConsumer;
+ }
+
+ public EpatchTestLanguageExecutableConsumer getExecutableConsumer() {
+ return executableConsumer;
+ }
+
+ public EpatchTestLanguageJavaExecutableConsumer getJavaExecutableConsumer() {
+ return javaExecutableConsumer;
+ }
+
+ public EpatchTestLanguageExpressionExecutableConsumer getExpressionExecutableConsumer() {
+ return expressionExecutableConsumer;
+ }
+
+ public XtextBuiltinIDConsumer getIdConsumer() {
+ return getXtextBuiltinConfiguration().getIdConsumer();
+ }
+
+ public XtextBuiltinINTConsumer getIntConsumer() {
+ return getXtextBuiltinConfiguration().getIntConsumer();
+ }
+
+ public XtextBuiltinSTRINGConsumer getStringConsumer() {
+ return getXtextBuiltinConfiguration().getStringConsumer();
+ }
+
+ public XtextBuiltinML_COMMENTConsumer getMlCommentConsumer() {
+ return getXtextBuiltinConfiguration().getMlCommentConsumer();
+ }
+
+ public XtextBuiltinSL_COMMENTConsumer getSlCommentConsumer() {
+ return getXtextBuiltinConfiguration().getSlCommentConsumer();
+ }
+
+ public XtextBuiltinWSConsumer getWsConsumer() {
+ return getXtextBuiltinConfiguration().getWsConsumer();
+ }
+
+ public XtextBuiltinANY_OTHERConsumer getAnyOtherConsumer() {
+ return getXtextBuiltinConfiguration().getAnyOtherConsumer();
+ }
+
+
+}
diff --git a/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/epatch/parser/packrat/consumers/EpatchTestLanguageAssignmentConsumer.java b/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/epatch/parser/packrat/consumers/EpatchTestLanguageAssignmentConsumer.java
new file mode 100644
index 0000000..b1467e4
--- /dev/null
+++ b/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/epatch/parser/packrat/consumers/EpatchTestLanguageAssignmentConsumer.java
@@ -0,0 +1,155 @@
+/*
+Generated with Xtext
+*/
+package org.eclipse.xtext.parser.epatch.parser.packrat.consumers;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.xtext.parser.packrat.ICharSequenceWithOffset;
+import org.eclipse.xtext.parser.packrat.IHiddenTokenHandler;
+import org.eclipse.xtext.parser.packrat.IMarkerFactory;
+import org.eclipse.xtext.parser.packrat.IMarkerFactory.IMarker;
+import org.eclipse.xtext.parser.packrat.consumers.IConsumerUtility;
+import org.eclipse.xtext.parser.packrat.consumers.ITerminalConsumer;
+import org.eclipse.xtext.parser.packrat.consumers.NonTerminalConsumer;
+import org.eclipse.xtext.parser.packrat.consumers.ConsumeResult;
+import org.eclipse.xtext.parser.packrat.matching.ICharacterClass;
+import org.eclipse.xtext.parser.packrat.matching.ISequenceMatcher;
+import org.eclipse.xtext.parser.packrat.tokens.IParsedTokenAcceptor;
+
+import org.eclipse.xtext.parser.epatch.services.EpatchTestLanguageGrammarAccess;
+import org.eclipse.xtext.parser.epatch.services.EpatchTestLanguageGrammarAccess.AssignmentElements;
+
+import org.eclipse.xtext.parser.epatch.parser.packrat.consumers.EpatchTestLanguageBiListAssignmentConsumer;
+import org.eclipse.xtext.parser.epatch.parser.packrat.consumers.EpatchTestLanguageBiSingleAssignmentConsumer;
+import org.eclipse.xtext.parser.epatch.parser.packrat.consumers.EpatchTestLanguageMonoListAssignmentConsumer;
+import org.eclipse.xtext.parser.epatch.parser.packrat.consumers.EpatchTestLanguageMonoSingleAssignmentConsumer;
+
+@SuppressWarnings("unused")
+public final class EpatchTestLanguageAssignmentConsumer extends NonTerminalConsumer {
+
+ private EpatchTestLanguageBiListAssignmentConsumer biListAssignmentConsumer;
+ private EpatchTestLanguageBiSingleAssignmentConsumer biSingleAssignmentConsumer;
+ private EpatchTestLanguageMonoListAssignmentConsumer monoListAssignmentConsumer;
+ private EpatchTestLanguageMonoSingleAssignmentConsumer monoSingleAssignmentConsumer;
+
+ public EpatchTestLanguageAssignmentConsumer(ICharSequenceWithOffset input, IMarkerFactory markerFactory,
+ IParsedTokenAcceptor tokenAcceptor, IHiddenTokenHandler hiddenTokenHandler, IConsumerUtility consumerUtil,
+ ITerminalConsumer[] hiddenTokens) {
+ super(input, markerFactory, tokenAcceptor, hiddenTokenHandler, consumerUtil, hiddenTokens);
+ }
+
+ protected int doConsume() throws Exception {
+ return consumeAlternatives$1();
+ }
+
+ protected int consumeAlternatives$1() throws Exception {
+ int result = ConsumeResult.SUCCESS;
+ IMarker bestMarker = mark();
+ IMarker currentMarker;
+ int tempResult;
+ currentMarker = bestMarker.fork();
+ tempResult = consumeRuleCall$4();
+ if (tempResult == ConsumeResult.SUCCESS) {
+ bestMarker = currentMarker.join(bestMarker);
+ bestMarker.commit();
+ return tempResult;
+ }
+ if (tempResult > result) {
+ bestMarker = currentMarker.join(bestMarker);
+ result = tempResult;
+ } else {
+ bestMarker = bestMarker.join(currentMarker);
+ }
+ currentMarker = null;
+ currentMarker = bestMarker.fork();
+ tempResult = consumeRuleCall$5();
+ if (tempResult == ConsumeResult.SUCCESS) {
+ bestMarker = currentMarker.join(bestMarker);
+ bestMarker.commit();
+ return tempResult;
+ }
+ if (tempResult > result) {
+ bestMarker = currentMarker.join(bestMarker);
+ result = tempResult;
+ } else {
+ bestMarker = bestMarker.join(currentMarker);
+ }
+ currentMarker = null;
+ currentMarker = bestMarker.fork();
+ tempResult = consumeRuleCall$6();
+ if (tempResult == ConsumeResult.SUCCESS) {
+ bestMarker = currentMarker.join(bestMarker);
+ bestMarker.commit();
+ return tempResult;
+ }
+ if (tempResult > result) {
+ bestMarker = currentMarker.join(bestMarker);
+ result = tempResult;
+ } else {
+ bestMarker = bestMarker.join(currentMarker);
+ }
+ currentMarker = null;
+ currentMarker = bestMarker.fork();
+ tempResult = consumeRuleCall$7();
+ if (tempResult == ConsumeResult.SUCCESS) {
+ bestMarker = currentMarker.join(bestMarker);
+ bestMarker.commit();
+ return tempResult;
+ }
+ if (tempResult > result) {
+ bestMarker = currentMarker.join(bestMarker);
+ result = tempResult;
+ } else {
+ bestMarker = bestMarker.join(currentMarker);
+ }
+ currentMarker = null;
+ bestMarker.commit();
+ return result;
+ }
+
+ protected int consumeRuleCall$4() throws Exception {
+ return consumeNonTerminal(biSingleAssignmentConsumer, null, false, false, getRule().ele000ParserRuleCallBiSingleAssignment());
+ }
+
+ protected int consumeRuleCall$5() throws Exception {
+ return consumeNonTerminal(biListAssignmentConsumer, null, false, false, getRule().ele001ParserRuleCallBiListAssignment());
+ }
+
+ protected int consumeRuleCall$6() throws Exception {
+ return consumeNonTerminal(monoSingleAssignmentConsumer, null, false, false, getRule().ele01ParserRuleCallMonoSingleAssignment());
+ }
+
+ protected int consumeRuleCall$7() throws Exception {
+ return consumeNonTerminal(monoListAssignmentConsumer, null, false, false, getRule().ele1ParserRuleCallMonoListAssignment());
+ }
+
+ public AssignmentElements getRule() {
+ return EpatchTestLanguageGrammarAccess.INSTANCE.prAssignment();
+ }
+
+ protected EObject getGrammarElement() {
+ return getRule().getRule();
+ }
+
+ @Override
+ protected String getDefaultTypeName() {
+ return "Assignment";
+ }
+
+ public void setBiListAssignmentConsumer(EpatchTestLanguageBiListAssignmentConsumer biListAssignmentConsumer) {
+ this.biListAssignmentConsumer = biListAssignmentConsumer;
+ }
+
+ public void setBiSingleAssignmentConsumer(EpatchTestLanguageBiSingleAssignmentConsumer biSingleAssignmentConsumer) {
+ this.biSingleAssignmentConsumer = biSingleAssignmentConsumer;
+ }
+
+ public void setMonoListAssignmentConsumer(EpatchTestLanguageMonoListAssignmentConsumer monoListAssignmentConsumer) {
+ this.monoListAssignmentConsumer = monoListAssignmentConsumer;
+ }
+
+ public void setMonoSingleAssignmentConsumer(EpatchTestLanguageMonoSingleAssignmentConsumer monoSingleAssignmentConsumer) {
+ this.monoSingleAssignmentConsumer = monoSingleAssignmentConsumer;
+ }
+
+}
diff --git a/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/epatch/parser/packrat/consumers/EpatchTestLanguageAssignmentValueConsumer.java b/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/epatch/parser/packrat/consumers/EpatchTestLanguageAssignmentValueConsumer.java
new file mode 100644
index 0000000..03602d3
--- /dev/null
+++ b/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/epatch/parser/packrat/consumers/EpatchTestLanguageAssignmentValueConsumer.java
@@ -0,0 +1,434 @@
+/*
+Generated with Xtext
+*/
+package org.eclipse.xtext.parser.epatch.parser.packrat.consumers;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.xtext.parser.packrat.ICharSequenceWithOffset;
+import org.eclipse.xtext.parser.packrat.IHiddenTokenHandler;
+import org.eclipse.xtext.parser.packrat.IMarkerFactory;
+import org.eclipse.xtext.parser.packrat.IMarkerFactory.IMarker;
+import org.eclipse.xtext.parser.packrat.consumers.IConsumerUtility;
+import org.eclipse.xtext.parser.packrat.consumers.ITerminalConsumer;
+import org.eclipse.xtext.parser.packrat.consumers.NonTerminalConsumer;
+import org.eclipse.xtext.parser.packrat.consumers.ConsumeResult;
+import org.eclipse.xtext.parser.packrat.matching.ICharacterClass;
+import org.eclipse.xtext.parser.packrat.matching.ISequenceMatcher;
+import org.eclipse.xtext.parser.packrat.tokens.IParsedTokenAcceptor;
+
+import org.eclipse.xtext.parser.epatch.services.EpatchTestLanguageGrammarAccess;
+import org.eclipse.xtext.parser.epatch.services.EpatchTestLanguageGrammarAccess.AssignmentValueElements;
+
+import org.eclipse.xtext.parser.epatch.parser.packrat.consumers.EpatchTestLanguageCreatedObjectConsumer;
+import org.eclipse.xtext.parser.epatch.parser.packrat.consumers.EpatchTestLanguageFRAGMENTConsumer;
+import org.eclipse.xtext.builtin.parser.packrat.consumers.XtextBuiltinIDConsumer;
+import org.eclipse.xtext.builtin.parser.packrat.consumers.XtextBuiltinINTConsumer;
+import org.eclipse.xtext.builtin.parser.packrat.consumers.XtextBuiltinSTRINGConsumer;
+
+@SuppressWarnings("unused")
+public final class EpatchTestLanguageAssignmentValueConsumer extends NonTerminalConsumer {
+
+ private EpatchTestLanguageCreatedObjectConsumer createdObjectConsumer;
+ private EpatchTestLanguageFRAGMENTConsumer fragmentConsumer;
+ private XtextBuiltinIDConsumer idConsumer;
+ private XtextBuiltinINTConsumer intConsumer;
+ private XtextBuiltinSTRINGConsumer stringConsumer;
+
+ private ISequenceMatcher crossReference$8$Delimiter;
+
+ private ISequenceMatcher crossReference$25$Delimiter;
+
+ private ICharacterClass keyword$12$Delimiter;
+
+ private ICharacterClass keyword$17$Delimiter;
+
+ private ICharacterClass keyword$20$Delimiter;
+
+ private ISequenceMatcher ruleCall$5$Delimiter;
+
+ private ISequenceMatcher ruleCall$14$Delimiter;
+
+ private ISequenceMatcher ruleCall$19$Delimiter;
+
+ private ISequenceMatcher ruleCall$28$Delimiter;
+
+ public EpatchTestLanguageAssignmentValueConsumer(ICharSequenceWithOffset input, IMarkerFactory markerFactory,
+ IParsedTokenAcceptor tokenAcceptor, IHiddenTokenHandler hiddenTokenHandler, IConsumerUtility consumerUtil,
+ ITerminalConsumer[] hiddenTokens) {
+ super(input, markerFactory, tokenAcceptor, hiddenTokenHandler, consumerUtil, hiddenTokens);
+ crossReference$8$Delimiter = ISequenceMatcher.Factory.nullMatcher();
+ crossReference$25$Delimiter = ISequenceMatcher.Factory.nullMatcher();
+ keyword$12$Delimiter = ICharacterClass.Factory.nullClass();
+ keyword$17$Delimiter = ICharacterClass.Factory.nullClass();
+ keyword$20$Delimiter = ICharacterClass.Factory.nullClass();
+ ruleCall$5$Delimiter = ISequenceMatcher.Factory.nullMatcher();
+ ruleCall$14$Delimiter = ISequenceMatcher.Factory.nullMatcher();
+ ruleCall$19$Delimiter = ISequenceMatcher.Factory.nullMatcher();
+ ruleCall$28$Delimiter = ISequenceMatcher.Factory.nullMatcher();
+ }
+
+ protected int doConsume() throws Exception {
+ return consumeAlternatives$1();
+ }
+
+ protected int consumeAlternatives$1() throws Exception {
+ int result = ConsumeResult.SUCCESS;
+ IMarker bestMarker = mark();
+ IMarker currentMarker;
+ int tempResult;
+ currentMarker = bestMarker.fork();
+ tempResult = consumeAssignment$4();
+ if (tempResult == ConsumeResult.SUCCESS) {
+ bestMarker = currentMarker.join(bestMarker);
+ bestMarker.commit();
+ return tempResult;
+ }
+ if (tempResult > result) {
+ bestMarker = currentMarker.join(bestMarker);
+ result = tempResult;
+ } else {
+ bestMarker = bestMarker.join(currentMarker);
+ }
+ currentMarker = null;
+ currentMarker = bestMarker.fork();
+ tempResult = consumeGroup$6();
+ if (tempResult == ConsumeResult.SUCCESS) {
+ bestMarker = currentMarker.join(bestMarker);
+ bestMarker.commit();
+ return tempResult;
+ }
+ if (tempResult > result) {
+ bestMarker = currentMarker.join(bestMarker);
+ result = tempResult;
+ } else {
+ bestMarker = bestMarker.join(currentMarker);
+ }
+ currentMarker = null;
+ currentMarker = bestMarker.fork();
+ tempResult = consumeAssignment$21();
+ if (tempResult == ConsumeResult.SUCCESS) {
+ bestMarker = currentMarker.join(bestMarker);
+ bestMarker.commit();
+ return tempResult;
+ }
+ if (tempResult > result) {
+ bestMarker = currentMarker.join(bestMarker);
+ result = tempResult;
+ } else {
+ bestMarker = bestMarker.join(currentMarker);
+ }
+ currentMarker = null;
+ currentMarker = bestMarker.fork();
+ tempResult = consumeGroup$23();
+ if (tempResult == ConsumeResult.SUCCESS) {
+ bestMarker = currentMarker.join(bestMarker);
+ bestMarker.commit();
+ return tempResult;
+ }
+ if (tempResult > result) {
+ bestMarker = currentMarker.join(bestMarker);
+ result = tempResult;
+ } else {
+ bestMarker = bestMarker.join(currentMarker);
+ }
+ currentMarker = null;
+ bestMarker.commit();
+ return result;
+ }
+
+ protected int consumeAssignment$4() throws Exception {
+ int result = Integer.MIN_VALUE;
+ int tempResult;
+ tempResult = consumeTerminal(stringConsumer, "value", false, false, getRule().ele0000LexerRuleCallSTRING(), getRuleCall$5$Delimiter());
+ if (tempResult == ConsumeResult.SUCCESS)
+ return tempResult;
+ result = tempResult >= result ? tempResult : result;
+ return result;
+ }
+
+ protected int consumeGroup$6() throws Exception {
+ final IMarker marker = mark();
+ int result;
+ result = consumeAssignment$7();
+ if (result!=ConsumeResult.SUCCESS) {
+ error("Another token expected.", getRule().ele0010AssignmentRefObject());
+ marker.commit();
+ return result;
+ }
+ result = consumeGroup$10();
+ if (result!=ConsumeResult.SUCCESS) {
+ error("Another token expected.", getRule().ele0011Group());
+ marker.commit();
+ return result;
+ }
+ marker.commit();
+ return result;
+ }
+
+ protected int consumeAssignment$7() throws Exception {
+ int result = Integer.MIN_VALUE;
+ int tempResult;
+ tempResult = consumeTerminal(idConsumer, "refObject", false, false, getRule().ele00100CrossReferenceEStringNamedObject(), getCrossReference$8$Delimiter());
+ if (tempResult == ConsumeResult.SUCCESS)
+ return tempResult;
+ result = tempResult >= result ? tempResult : result;
+ return result;
+ }
+
+ protected int consumeGroup$10() throws Exception {
+ IMarker marker = mark();
+ int result = doConsumeGroup$10();
+ if (result != ConsumeResult.SUCCESS)
+ marker.rollback();
+ else
+ marker.commit();
+ return ConsumeResult.SUCCESS;
+ }
+
+ protected int doConsumeGroup$10() throws Exception {
+ final IMarker marker = mark();
+ int result;
+ result = consumeKeyword$12();
+ if (result!=ConsumeResult.SUCCESS) {
+ error("Another token expected.", getRule().ele001100KeywordFullStop());
+ marker.commit();
+ return result;
+ }
+ result = consumeAssignment$13();
+ if (result!=ConsumeResult.SUCCESS) {
+ error("Another token expected.", getRule().ele001101AssignmentRefFeature());
+ marker.commit();
+ return result;
+ }
+ result = consumeGroup$15();
+ if (result!=ConsumeResult.SUCCESS) {
+ error("Another token expected.", getRule().ele00111Group());
+ marker.commit();
+ return result;
+ }
+ marker.commit();
+ return result;
+ }
+
+ protected int consumeKeyword$12() throws Exception {
+ return consumeKeyword(getRule().ele001100KeywordFullStop(), null, false, false, getKeyword$12$Delimiter());
+ }
+
+ protected int consumeAssignment$13() throws Exception {
+ int result = Integer.MIN_VALUE;
+ int tempResult;
+ tempResult = consumeTerminal(idConsumer, "refFeature", false, false, getRule().ele0011010LexerRuleCallID(), getRuleCall$14$Delimiter());
+ if (tempResult == ConsumeResult.SUCCESS)
+ return tempResult;
+ result = tempResult >= result ? tempResult : result;
+ return result;
+ }
+
+ protected int consumeGroup$15() throws Exception {
+ IMarker marker = mark();
+ int result = doConsumeGroup$15();
+ if (result != ConsumeResult.SUCCESS)
+ marker.rollback();
+ else
+ marker.commit();
+ return ConsumeResult.SUCCESS;
+ }
+
+ protected int doConsumeGroup$15() throws Exception {
+ final IMarker marker = mark();
+ int result;
+ result = consumeKeyword$17();
+ if (result!=ConsumeResult.SUCCESS) {
+ error("Another token expected.", getRule().ele0011100KeywordLeftSquareBracket());
+ marker.commit();
+ return result;
+ }
+ result = consumeAssignment$18();
+ if (result!=ConsumeResult.SUCCESS) {
+ error("Another token expected.", getRule().ele0011101AssignmentRefIndex());
+ marker.commit();
+ return result;
+ }
+ result = consumeKeyword$20();
+ if (result!=ConsumeResult.SUCCESS) {
+ error("Another token expected.", getRule().ele001111KeywordRightSquareBracket());
+ marker.commit();
+ return result;
+ }
+ marker.commit();
+ return result;
+ }
+
+ protected int consumeKeyword$17() throws Exception {
+ return consumeKeyword(getRule().ele0011100KeywordLeftSquareBracket(), null, false, false, getKeyword$17$Delimiter());
+ }
+
+ protected int consumeAssignment$18() throws Exception {
+ int result = Integer.MIN_VALUE;
+ int tempResult;
+ tempResult = consumeTerminal(intConsumer, "refIndex", false, false, getRule().ele00111010LexerRuleCallINT(), getRuleCall$19$Delimiter());
+ if (tempResult == ConsumeResult.SUCCESS)
+ return tempResult;
+ result = tempResult >= result ? tempResult : result;
+ return result;
+ }
+
+ protected int consumeKeyword$20() throws Exception {
+ return consumeKeyword(getRule().ele001111KeywordRightSquareBracket(), null, false, false, getKeyword$20$Delimiter());
+ }
+
+ protected int consumeAssignment$21() throws Exception {
+ int result = Integer.MIN_VALUE;
+ int tempResult;
+ tempResult = consumeNonTerminal(createdObjectConsumer, "newObject", false, false, getRule().ele010ParserRuleCallCreatedObject());
+ if (tempResult == ConsumeResult.SUCCESS)
+ return tempResult;
+ result = tempResult >= result ? tempResult : result;
+ return result;
+ }
+
+ protected int consumeGroup$23() throws Exception {
+ final IMarker marker = mark();
+ int result;
+ result = consumeAssignment$24();
+ if (result!=ConsumeResult.SUCCESS) {
+ error("Another token expected.", getRule().ele10AssignmentImport());
+ marker.commit();
+ return result;
+ }
+ result = consumeAssignment$27();
+ if (result!=ConsumeResult.SUCCESS) {
+ error("Another token expected.", getRule().ele11AssignmentImpFrag());
+ marker.commit();
+ return result;
+ }
+ marker.commit();
+ return result;
+ }
+
+ protected int consumeAssignment$24() throws Exception {
+ int result = Integer.MIN_VALUE;
+ int tempResult;
+ tempResult = consumeTerminal(idConsumer, "import", false, false, getRule().ele100CrossReferenceEStringImport(), getCrossReference$25$Delimiter());
+ if (tempResult == ConsumeResult.SUCCESS)
+ return tempResult;
+ result = tempResult >= result ? tempResult : result;
+ return result;
+ }
+
+ protected int consumeAssignment$27() throws Exception {
+ int result = Integer.MIN_VALUE;
+ int tempResult;
+ tempResult = consumeTerminal(fragmentConsumer, "impFrag", false, false, getRule().ele110LexerRuleCallFRAGMENT(), getRuleCall$28$Delimiter());
+ if (tempResult == ConsumeResult.SUCCESS)
+ return tempResult;
+ result = tempResult >= result ? tempResult : result;
+ return result;
+ }
+
+ public AssignmentValueElements getRule() {
+ return EpatchTestLanguageGrammarAccess.INSTANCE.prAssignmentValue();
+ }
+
+ protected EObject getGrammarElement() {
+ return getRule().getRule();
+ }
+
+ @Override
+ protected String getDefaultTypeName() {
+ return "AssignmentValue";
+ }
+
+ public void setCreatedObjectConsumer(EpatchTestLanguageCreatedObjectConsumer createdObjectConsumer) {
+ this.createdObjectConsumer = createdObjectConsumer;
+ }
+
+ public void setFragmentConsumer(EpatchTestLanguageFRAGMENTConsumer fragmentConsumer) {
+ this.fragmentConsumer = fragmentConsumer;
+ }
+
+ public void setIdConsumer(XtextBuiltinIDConsumer idConsumer) {
+ this.idConsumer = idConsumer;
+ }
+
+ public void setIntConsumer(XtextBuiltinINTConsumer intConsumer) {
+ this.intConsumer = intConsumer;
+ }
+
+ public void setStringConsumer(XtextBuiltinSTRINGConsumer stringConsumer) {
+ this.stringConsumer = stringConsumer;
+ }
+
+ public ISequenceMatcher getCrossReference$8$Delimiter() {
+ return crossReference$8$Delimiter;
+ }
+
+ public void setCrossReference$8$Delimiter(ISequenceMatcher matcher) {
+ crossReference$8$Delimiter = matcher != null ? matcher : ISequenceMatcher.Factory.nullMatcher();
+ }
+
+ public ISequenceMatcher getCrossReference$25$Delimiter() {
+ return crossReference$25$Delimiter;
+ }
+
+ public void setCrossReference$25$Delimiter(ISequenceMatcher matcher) {
+ crossReference$25$Delimiter = matcher != null ? matcher : ISequenceMatcher.Factory.nullMatcher();
+ }
+
+ public ICharacterClass getKeyword$12$Delimiter() {
+ return keyword$12$Delimiter;
+ }
+
+ public void setKeyword$12$Delimiter(ICharacterClass characterClass) {
+ keyword$12$Delimiter = characterClass != null ? characterClass : ICharacterClass.Factory.nullClass();
+ }
+
+ public ICharacterClass getKeyword$17$Delimiter() {
+ return keyword$17$Delimiter;
+ }
+
+ public void setKeyword$17$Delimiter(ICharacterClass characterClass) {
+ keyword$17$Delimiter = characterClass != null ? characterClass : ICharacterClass.Factory.nullClass();
+ }
+
+ public ICharacterClass getKeyword$20$Delimiter() {
+ return keyword$20$Delimiter;
+ }
+
+ public void setKeyword$20$Delimiter(ICharacterClass characterClass) {
+ keyword$20$Delimiter = characterClass != null ? characterClass : ICharacterClass.Factory.nullClass();
+ }
+
+ public ISequenceMatcher getRuleCall$5$Delimiter() {
+ return ruleCall$5$Delimiter;
+ }
+
+ public void setRuleCall$5$Delimiter(ISequenceMatcher matcher) {
+ ruleCall$5$Delimiter = matcher != null ? matcher : ISequenceMatcher.Factory.nullMatcher();
+ }
+
+ public ISequenceMatcher getRuleCall$14$Delimiter() {
+ return ruleCall$14$Delimiter;
+ }
+
+ public void setRuleCall$14$Delimiter(ISequenceMatcher matcher) {
+ ruleCall$14$Delimiter = matcher != null ? matcher : ISequenceMatcher.Factory.nullMatcher();
+ }
+
+ public ISequenceMatcher getRuleCall$19$Delimiter() {
+ return ruleCall$19$Delimiter;
+ }
+
+ public void setRuleCall$19$Delimiter(ISequenceMatcher matcher) {
+ ruleCall$19$Delimiter = matcher != null ? matcher : ISequenceMatcher.Factory.nullMatcher();
+ }
+
+ public ISequenceMatcher getRuleCall$28$Delimiter() {
+ return ruleCall$28$Delimiter;
+ }
+
+ public void setRuleCall$28$Delimiter(ISequenceMatcher matcher) {
+ ruleCall$28$Delimiter = matcher != null ? matcher : ISequenceMatcher.Factory.nullMatcher();
+ }
+
+}
diff --git a/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/epatch/parser/packrat/consumers/EpatchTestLanguageBiListAssignmentConsumer.java b/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/epatch/parser/packrat/consumers/EpatchTestLanguageBiListAssignmentConsumer.java
new file mode 100644
index 0000000..e29e39b
--- /dev/null
+++ b/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/epatch/parser/packrat/consumers/EpatchTestLanguageBiListAssignmentConsumer.java
@@ -0,0 +1,397 @@
+/*
+Generated with Xtext
+*/
+package org.eclipse.xtext.parser.epatch.parser.packrat.consumers;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.xtext.parser.packrat.ICharSequenceWithOffset;
+import org.eclipse.xtext.parser.packrat.IHiddenTokenHandler;
+import org.eclipse.xtext.parser.packrat.IMarkerFactory;
+import org.eclipse.xtext.parser.packrat.IMarkerFactory.IMarker;
+import org.eclipse.xtext.parser.packrat.consumers.IConsumerUtility;
+import org.eclipse.xtext.parser.packrat.consumers.ITerminalConsumer;
+import org.eclipse.xtext.parser.packrat.consumers.NonTerminalConsumer;
+import org.eclipse.xtext.parser.packrat.consumers.ConsumeResult;
+import org.eclipse.xtext.parser.packrat.matching.ICharacterClass;
+import org.eclipse.xtext.parser.packrat.matching.ISequenceMatcher;
+import org.eclipse.xtext.parser.packrat.tokens.IParsedTokenAcceptor;
+
+import org.eclipse.xtext.parser.epatch.services.EpatchTestLanguageGrammarAccess;
+import org.eclipse.xtext.parser.epatch.services.EpatchTestLanguageGrammarAccess.BiListAssignmentElements;
+
+import org.eclipse.xtext.builtin.parser.packrat.consumers.XtextBuiltinIDConsumer;
+import org.eclipse.xtext.parser.epatch.parser.packrat.consumers.EpatchTestLanguageListAssignmentValueConsumer;
+
+@SuppressWarnings("unused")
+public final class EpatchTestLanguageBiListAssignmentConsumer extends NonTerminalConsumer {
+
+ private XtextBuiltinIDConsumer idConsumer;
+ private EpatchTestLanguageListAssignmentValueConsumer listAssignmentValueConsumer;
+
+ private ICharacterClass keyword$10$Delimiter;
+
+ private ICharacterClass keyword$11$Delimiter;
+
+ private ICharacterClass keyword$16$Delimiter;
+
+ private ICharacterClass keyword$19$Delimiter;
+
+ private ICharacterClass keyword$24$Delimiter;
+
+ private ICharacterClass keyword$27$Delimiter;
+
+ private ICharacterClass keyword$28$Delimiter;
+
+ private ISequenceMatcher ruleCall$9$Delimiter;
+
+ public EpatchTestLanguageBiListAssignmentConsumer(ICharSequenceWithOffset input, IMarkerFactory markerFactory,
+ IParsedTokenAcceptor tokenAcceptor, IHiddenTokenHandler hiddenTokenHandler, IConsumerUtility consumerUtil,
+ ITerminalConsumer[] hiddenTokens) {
+ super(input, markerFactory, tokenAcceptor, hiddenTokenHandler, consumerUtil, hiddenTokens);
+ keyword$10$Delimiter = ICharacterClass.Factory.nullClass();
+ keyword$11$Delimiter = ICharacterClass.Factory.nullClass();
+ keyword$16$Delimiter = ICharacterClass.Factory.nullClass();
+ keyword$19$Delimiter = ICharacterClass.Factory.nullClass();
+ keyword$24$Delimiter = ICharacterClass.Factory.nullClass();
+ keyword$27$Delimiter = ICharacterClass.Factory.nullClass();
+ keyword$28$Delimiter = ICharacterClass.Factory.nullClass();
+ ruleCall$9$Delimiter = ISequenceMatcher.Factory.nullMatcher();
+ }
+
+ protected int doConsume() throws Exception {
+ return consumeGroup$1();
+ }
+
+ protected int consumeGroup$1() throws Exception {
+ final IMarker marker = mark();
+ int result;
+ result = consumeAssignment$8();
+ if (result!=ConsumeResult.SUCCESS) {
+ error("Another token expected.", getRule().ele0000000AssignmentFeature());
+ marker.commit();
+ return result;
+ }
+ result = consumeKeyword$10();
+ if (result!=ConsumeResult.SUCCESS) {
+ error("Another token expected.", getRule().ele0000001KeywordEqualsSign());
+ marker.commit();
+ return result;
+ }
+ result = consumeKeyword$11();
+ if (result!=ConsumeResult.SUCCESS) {
+ error("Another token expected.", getRule().ele000001KeywordLeftSquareBracket());
+ marker.commit();
+ return result;
+ }
+ result = consumeGroup$12();
+ if (result!=ConsumeResult.SUCCESS) {
+ error("Another token expected.", getRule().ele00001Group());
+ marker.commit();
+ return result;
+ }
+ result = consumeKeyword$19();
+ if (result!=ConsumeResult.SUCCESS) {
+ error("Another token expected.", getRule().ele0001KeywordVerticalLine());
+ marker.commit();
+ return result;
+ }
+ result = consumeGroup$20();
+ if (result!=ConsumeResult.SUCCESS) {
+ error("Another token expected.", getRule().ele001Group());
+ marker.commit();
+ return result;
+ }
+ result = consumeKeyword$27();
+ if (result!=ConsumeResult.SUCCESS) {
+ error("Another token expected.", getRule().ele01KeywordRightSquareBracket());
+ marker.commit();
+ return result;
+ }
+ result = consumeKeyword$28();
+ if (result!=ConsumeResult.SUCCESS) {
+ error("Another token expected.", getRule().ele1KeywordSemicolon());
+ marker.commit();
+ return result;
+ }
+ marker.commit();
+ return result;
+ }
+
+ protected int consumeAssignment$8() throws Exception {
+ int result = Integer.MIN_VALUE;
+ int tempResult;
+ tempResult = consumeTerminal(idConsumer, "feature", false, false, getRule().ele00000000LexerRuleCallID(), getRuleCall$9$Delimiter());
+ if (tempResult == ConsumeResult.SUCCESS)
+ return tempResult;
+ result = tempResult >= result ? tempResult : result;
+ return result;
+ }
+
+ protected int consumeKeyword$10() throws Exception {
+ return consumeKeyword(getRule().ele0000001KeywordEqualsSign(), null, false, false, getKeyword$10$Delimiter());
+ }
+
+ protected int consumeKeyword$11() throws Exception {
+ return consumeKeyword(getRule().ele000001KeywordLeftSquareBracket(), null, false, false, getKeyword$11$Delimiter());
+ }
+
+ protected int consumeGroup$12() throws Exception {
+ IMarker marker = mark();
+ int result = doConsumeGroup$12();
+ if (result != ConsumeResult.SUCCESS)
+ marker.rollback();
+ else
+ marker.commit();
+ return ConsumeResult.SUCCESS;
+ }
+
+ protected int doConsumeGroup$12() throws Exception {
+ final IMarker marker = mark();
+ int result;
+ result = consumeAssignment$13();
+ if (result!=ConsumeResult.SUCCESS) {
+ error("Another token expected.", getRule().ele000010AssignmentLeftValues());
+ marker.commit();
+ return result;
+ }
+ result = consumeGroup$15();
+ if (result!=ConsumeResult.SUCCESS) {
+ error("Another token expected.", getRule().ele000011Group());
+ marker.commit();
+ return result;
+ }
+ marker.commit();
+ return result;
+ }
+
+ protected int consumeAssignment$13() throws Exception {
+ int result = Integer.MIN_VALUE;
+ int tempResult;
+ tempResult = consumeNonTerminal(listAssignmentValueConsumer, "leftValues", true, false, getRule().ele0000100ParserRuleCallListAssignmentValue());
+ if (tempResult == ConsumeResult.SUCCESS)
+ return tempResult;
+ result = tempResult >= result ? tempResult : result;
+ return result;
+ }
+
+ protected int consumeGroup$15() throws Exception {
+ IMarker marker = mark();
+ while(doConsumeGroup$15() == ConsumeResult.SUCCESS) {
+ marker.flush();
+ }
+ marker.rollback();
+ return ConsumeResult.SUCCESS;
+ }
+
+ protected int doConsumeGroup$15() throws Exception {
+ final IMarker marker = mark();
+ int result;
+ result = consumeKeyword$16();
+ if (result!=ConsumeResult.SUCCESS) {
+ error("Another token expected.", getRule().ele0000110KeywordComma());
+ marker.commit();
+ return result;
+ }
+ result = consumeAssignment$17();
+ if (result!=ConsumeResult.SUCCESS) {
+ error("Another token expected.", getRule().ele0000111AssignmentLeftValues());
+ marker.commit();
+ return result;
+ }
+ marker.commit();
+ return result;
+ }
+
+ protected int consumeKeyword$16() throws Exception {
+ return consumeKeyword(getRule().ele0000110KeywordComma(), null, false, false, getKeyword$16$Delimiter());
+ }
+
+ protected int consumeAssignment$17() throws Exception {
+ int result = Integer.MIN_VALUE;
+ int tempResult;
+ tempResult = consumeNonTerminal(listAssignmentValueConsumer, "leftValues", true, false, getRule().ele00001110ParserRuleCallListAssignmentValue());
+ if (tempResult == ConsumeResult.SUCCESS)
+ return tempResult;
+ result = tempResult >= result ? tempResult : result;
+ return result;
+ }
+
+ protected int consumeKeyword$19() throws Exception {
+ return consumeKeyword(getRule().ele0001KeywordVerticalLine(), null, false, false, getKeyword$19$Delimiter());
+ }
+
+ protected int consumeGroup$20() throws Exception {
+ IMarker marker = mark();
+ int result = doConsumeGroup$20();
+ if (result != ConsumeResult.SUCCESS)
+ marker.rollback();
+ else
+ marker.commit();
+ return ConsumeResult.SUCCESS;
+ }
+
+ protected int doConsumeGroup$20() throws Exception {
+ final IMarker marker = mark();
+ int result;
+ result = consumeAssignment$21();
+ if (result!=ConsumeResult.SUCCESS) {
+ error("Another token expected.", getRule().ele0010AssignmentRightValues());
+ marker.commit();
+ return result;
+ }
+ result = consumeGroup$23();
+ if (result!=ConsumeResult.SUCCESS) {
+ error("Another token expected.", getRule().ele0011Group());
+ marker.commit();
+ return result;
+ }
+ marker.co