| author | szarnekow | 2009-01-29 08:05:21 (EST) |
|---|---|---|
| committer | sefftinge | 2009-01-29 08:05:21 (EST) |
| commit | 0f81fd017b2828504d9472bf7ea2a0b6f8eb9a97 (patch) (side-by-side diff) | |
| tree | 0c3d3b927d2f160a1322c8d72d59a163e4d62a22 | |
| parent | d8e3ea8f56c0bb4159f27453b269c7ac1c79318b (diff) | |
| download | org.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
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 --- a/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 --- a/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 --- a/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 --- a/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 --- a/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 --- a/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 --- a/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 --- a/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 --- a/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 --- a/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 --- a/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 --- a/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 --- a/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 --- a/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 --- a/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 --- a/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 --- a/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 --- a/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.commit(); + return result; + } + + protected int consumeAssignment$21() throws Exception { + int result = Integer.MIN_VALUE; + int tempResult; + tempResult = consumeNonTerminal(listAssignmentValueConsumer, "rightValues", true, false, getRule().ele00100ParserRuleCallListAssignmentValue()); + if (tempResult == ConsumeResult.SUCCESS) + return tempResult; + result = tempResult >= result ? tempResult : result; + return result; + } + + protected int consumeGroup$23() throws Exception { + IMarker marker = mark(); + while(doConsumeGroup$23() == ConsumeResult.SUCCESS) { + marker.flush(); + } + marker.rollback(); + return ConsumeResult.SUCCESS; + } + + protected int doConsumeGroup$23() throws Exception { + final IMarker marker = mark(); + int result; + result = consumeKeyword$24(); + if (result!=ConsumeResult.SUCCESS) { + error("Another token expected.", getRule().ele00110KeywordComma()); + marker.commit(); + return result; + } + result = consumeAssignment$25(); + if (result!=ConsumeResult.SUCCESS) { + error("Another token expected.", getRule().ele00111AssignmentRightValues()); + marker.commit(); + return result; + } + marker.commit(); + return result; + } + + protected int consumeKeyword$24() throws Exception { + return consumeKeyword(getRule().ele00110KeywordComma(), null, false, false, getKeyword$24$Delimiter()); + } + + protected int consumeAssignment$25() throws Exception { + int result = Integer.MIN_VALUE; + int tempResult; + tempResult = consumeNonTerminal(listAssignmentValueConsumer, "rightValues", true, false, getRule().ele001110ParserRuleCallListAssignmentValue()); + if (tempResult == ConsumeResult.SUCCESS) + return tempResult; + result = tempResult >= result ? tempResult : result; + return result; + } + + protected int consumeKeyword$27() throws Exception { + return consumeKeyword(getRule().ele01KeywordRightSquareBracket(), null, false, false, getKeyword$27$Delimiter()); + } + + protected int consumeKeyword$28() throws Exception { + return consumeKeyword(getRule().ele1KeywordSemicolon(), null, false, false, getKeyword$28$Delimiter()); + } + + public BiListAssignmentElements getRule() { + return EpatchTestLanguageGrammarAccess.INSTANCE.prBiListAssignment(); + } + + protected EObject getGrammarElement() { + return getRule().getRule(); + } + + @Override + protected String getDefaultTypeName() { + return "ListAssignment"; + } + + public void setIdConsumer(XtextBuiltinIDConsumer idConsumer) { + this.idConsumer = idConsumer; + } + + public void setListAssignmentValueConsumer(EpatchTestLanguageListAssignmentValueConsumer listAssignmentValueConsumer) { + this.listAssignmentValueConsumer = listAssignmentValueConsumer; + } + + public ICharacterClass getKeyword$10$Delimiter() { + return keyword$10$Delimiter; + } + |

