| author | szarnekow | 2009-02-12 05:59:48 (EST) |
|---|---|---|
| committer | sefftinge | 2009-02-12 05:59:48 (EST) |
| commit | bd23dd64547bb30253cd4d33c4e8eba8eb846434 (patch) (side-by-side diff) | |
| tree | 5df84303fb9d655a46ff4b1839b7551cba658254 | |
| parent | 0220bb7e758c7c89cbd71a889e34a34de938a011 (diff) | |
| download | org.eclipse.xtext-bd23dd64547bb30253cd4d33c4e8eba8eb846434.zip org.eclipse.xtext-bd23dd64547bb30253cd4d33c4e8eba8eb846434.tar.gz org.eclipse.xtext-bd23dd64547bb30253cd4d33c4e8eba8eb846434.tar.bz2 | |
Fix: grammar inheritance does not work as expected (closes https://bugs.eclipse.org/bugs/show_bug.cgi?id=263651)
Some minor fixes
34 files changed, 1836 insertions, 754 deletions
diff --git a/devtools/org.eclipse.xtext.reference/src-gen/org/eclipse/xtext/reference/ReferenceGrammar.ecore b/devtools/org.eclipse.xtext.reference/src-gen/org/eclipse/xtext/reference/ReferenceGrammar.ecore index e9ccfbe..dfce531 100644 --- a/devtools/org.eclipse.xtext.reference/src-gen/org/eclipse/xtext/reference/ReferenceGrammar.ecore +++ b/devtools/org.eclipse.xtext.reference/src-gen/org/eclipse/xtext/reference/ReferenceGrammar.ecore @@ -16,12 +16,12 @@ </eStructuralFeatures> </eClassifiers> <eClassifiers xsi:type="ecore:EClass" name="Person"> - <eStructuralFeatures xsi:type="ecore:EAttribute" name="age"> - <eType xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EInt"/> - </eStructuralFeatures> <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="age"> + <eType xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EInt"/> + </eStructuralFeatures> </eClassifiers> <eClassifiers xsi:type="ecore:EClass" name="Kind" eSuperTypes="//Person"/> <eClassifiers xsi:type="ecore:EClass" name="Erwachsener" eSuperTypes="//Person"/> 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 1b4861b..00627f8 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/grammarinheritance/AbstractTestLanguage.xmi b/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/grammarinheritance/AbstractTestLanguage.xmi index c35ab4e..489270f 100644 --- a/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/grammarinheritance/AbstractTestLanguage.xmi +++ b/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/grammarinheritance/AbstractTestLanguage.xmi @@ -2,25 +2,25 @@ <xmi:XMI 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"> <xtext:Grammar abstract="true" name="org.eclipse.xtext.grammarinheritance.AbstractTestLanguage" superGrammar="/1"> <metamodelDeclarations xsi:type="xtext:ReferencedMetamodel" alias="mm"> - <ePackage href="classpath:/org/eclipse/xtext/grammarinheritance/ametamodel.ecore#/"/> + <ePackage href="http://www.eclipse.org/xtext/tests/grammarinheritance#/"/> </metamodelDeclarations> <metamodelDeclarations xsi:type="xtext:ReferencedMetamodel" alias="ecore"> <ePackage href="http://www.eclipse.org/emf/2002/Ecore#/"/> </metamodelDeclarations> <rules xsi:type="xtext:ParserRule" name="InheritedParserRule"> <type metamodel="/0/@metamodelDeclarations.0"> - <type xsi:type="ecore:EClass" href="classpath:/org/eclipse/xtext/grammarinheritance/ametamodel.ecore#//AType"/> + <type xsi:type="ecore:EClass" href="http://www.eclipse.org/xtext/tests/grammarinheritance#//AType"/> </type> <alternatives xsi:type="xtext:Group"> <abstractTokens xsi:type="xtext:Keyword" value="element"/> <abstractTokens xsi:type="xtext:Assignment" feature="name" operator="="> - <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.6"/> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.7"/> </abstractTokens> </alternatives> </rules> <rules xsi:type="xtext:ParserRule" name="AbstractCallOverridenParserRule"> <type metamodel="/0/@metamodelDeclarations.0"> - <type xsi:type="ecore:EClass" href="classpath:/org/eclipse/xtext/grammarinheritance/ametamodel.ecore#//AModel"/> + <type xsi:type="ecore:EClass" href="http://www.eclipse.org/xtext/tests/grammarinheritance#//AModel"/> </type> <alternatives xsi:type="xtext:Group"> <abstractTokens xsi:type="xtext:Keyword" value="overridemodel"/> @@ -31,34 +31,45 @@ </rules> <rules xsi:type="xtext:ParserRule" name="OverridableParserRule"> <type metamodel="/0/@metamodelDeclarations.0"> - <type xsi:type="ecore:EClass" href="classpath:/org/eclipse/xtext/grammarinheritance/ametamodel.ecore#//AType"/> + <type xsi:type="ecore:EClass" href="http://www.eclipse.org/xtext/tests/grammarinheritance#//AType"/> </type> <alternatives xsi:type="xtext:Group"> <abstractTokens xsi:type="xtext:Keyword" value="element"/> <abstractTokens xsi:type="xtext:Assignment" feature="name" operator="="> - <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.6"/> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.7"/> + </abstractTokens> + </alternatives> + </rules> + <rules xsi:type="xtext:ParserRule" name="OverridableParserRule2"> + <type metamodel="/0/@metamodelDeclarations.0"> + <type xsi:type="ecore:EClass" href="http://www.eclipse.org/xtext/tests/grammarinheritance#//AType"/> + </type> + <alternatives xsi:type="xtext:Group"> + <abstractTokens xsi:type="xtext:Keyword" value="other element"/> + <abstractTokens xsi:type="xtext:Assignment" feature="name" operator="="> + <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.2"/> </abstractTokens> </alternatives> </rules> <rules xsi:type="xtext:ParserRule" name="AbstractCallExtendedParserRule"> <type metamodel="/0/@metamodelDeclarations.0"> - <type xsi:type="ecore:EClass" href="classpath:/org/eclipse/xtext/grammarinheritance/ametamodel.ecore#//AModel"/> + <type xsi:type="ecore:EClass" href="http://www.eclipse.org/xtext/tests/grammarinheritance#//AModel"/> </type> <alternatives xsi:type="xtext:Group"> <abstractTokens xsi:type="xtext:Keyword" value="extendedmodel"/> <abstractTokens xsi:type="xtext:Assignment" cardinality="*" feature="elements" operator="+="> - <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.4"/> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.5"/> </abstractTokens> </alternatives> </rules> <rules xsi:type="xtext:ParserRule" name="ExtendableParserRule"> <type metamodel="/0/@metamodelDeclarations.0"> - <type xsi:type="ecore:EClass" href="classpath:/org/eclipse/xtext/grammarinheritance/ametamodel.ecore#//AType"/> + <type xsi:type="ecore:EClass" href="http://www.eclipse.org/xtext/tests/grammarinheritance#//AType"/> </type> <alternatives xsi:type="xtext:Group"> <abstractTokens xsi:type="xtext:Keyword" value="element"/> <abstractTokens xsi:type="xtext:Assignment" feature="name" operator="="> - <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.6"/> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.7"/> </abstractTokens> </alternatives> </rules> diff --git a/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi b/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi index 6125c2a..89126bc 100644 --- a/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi +++ b/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi @@ -5,7 +5,7 @@ <ePackage href="http://holla#/"/> </metamodelDeclarations> <metamodelDeclarations xsi:type="xtext:ReferencedMetamodel" alias="mm"> - <ePackage href="classpath:/org/eclipse/xtext/grammarinheritance/ametamodel.ecore#/"/> + <ePackage href="http://www.eclipse.org/xtext/tests/grammarinheritance#/"/> </metamodelDeclarations> <rules xsi:type="xtext:ParserRule" name="RootRule"> <type metamodel="/0/@metamodelDeclarations.0"> @@ -13,10 +13,13 @@ </type> <alternatives xsi:type="xtext:Alternatives"> <groups xsi:type="xtext:Alternatives"> - <groups xsi:type="xtext:RuleCall" rule="/0/@rules.1"/> - <groups xsi:type="xtext:RuleCall" rule="/0/@rules.3"/> + <groups xsi:type="xtext:Alternatives"> + <groups xsi:type="xtext:RuleCall" rule="/0/@rules.1"/> + <groups xsi:type="xtext:RuleCall" rule="/0/@rules.3"/> + </groups> + <groups xsi:type="xtext:RuleCall" rule="/0/@rules.9"/> </groups> - <groups xsi:type="xtext:RuleCall" rule="/0/@rules.8"/> + <groups xsi:type="xtext:RuleCall" rule="/0/@rules.4"/> </alternatives> </rules> <rules xsi:type="xtext:ParserRule" name="ConcreteParserRule"> @@ -28,7 +31,7 @@ <abstractTokens xsi:type="xtext:Group"> <abstractTokens xsi:type="xtext:Keyword" value="model"/> <abstractTokens xsi:type="xtext:Assignment" feature="magicNumber" operator="="> - <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.5"/> + <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.6"/> </abstractTokens> </abstractTokens> <abstractTokens xsi:type="xtext:Keyword" value=":"/> @@ -40,12 +43,12 @@ </rules> <rules xsi:type="xtext:ParserRule" name="OverridableParserRule"> <type metamodel="/0/@metamodelDeclarations.1"> - <type xsi:type="ecore:EClass" href="classpath:/org/eclipse/xtext/grammarinheritance/ametamodel.ecore#//AType"/> + <type xsi:type="ecore:EClass" href="http://www.eclipse.org/xtext/tests/grammarinheritance#//AType"/> </type> <alternatives xsi:type="xtext:Group"> <abstractTokens xsi:type="xtext:Keyword" value="overriddenelement"/> <abstractTokens xsi:type="xtext:Assignment" feature="name" operator="="> - <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.6"/> + <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.7"/> </abstractTokens> </alternatives> </rules> @@ -57,16 +60,35 @@ <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.1"/> </alternatives> </rules> + <rules xsi:type="xtext:ParserRule" name="OverridableParserRule2"> + <type metamodel="/0/@metamodelDeclarations.0"> + <type xsi:type="ecore:EClass" href="http://holla#//AType2"/> + </type> + <alternatives xsi:type="xtext:Group"> + <abstractTokens xsi:type="xtext:Group"> + <abstractTokens xsi:type="xtext:Group"> + <abstractTokens xsi:type="xtext:Keyword" value="overridden other element"/> + <abstractTokens xsi:type="xtext:Assignment" feature="name" operator="="> + <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.7"/> + </abstractTokens> + </abstractTokens> + <abstractTokens xsi:type="xtext:Keyword" value="-"/> + </abstractTokens> + <abstractTokens xsi:type="xtext:Assignment" feature="age" operator="="> + <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.1"/> + </abstractTokens> + </alternatives> + </rules> <rules xsi:type="xtext:ParserRule" name="ExtendableParserRule"> <type metamodel="/0/@metamodelDeclarations.1"> - <type xsi:type="ecore:EClass" href="classpath:/org/eclipse/xtext/grammarinheritance/ametamodel.ecore#//AType"/> + <type xsi:type="ecore:EClass" href="http://www.eclipse.org/xtext/tests/grammarinheritance#//AType"/> </type> <alternatives xsi:type="xtext:Alternatives"> <groups xsi:type="xtext:Alternatives"> - <groups xsi:type="xtext:RuleCall" rule="/0/@rules.5"/> <groups xsi:type="xtext:RuleCall" rule="/0/@rules.6"/> + <groups xsi:type="xtext:RuleCall" rule="/0/@rules.7"/> </groups> - <groups xsi:type="xtext:RuleCall" rule="/0/@rules.7"/> + <groups xsi:type="xtext:RuleCall" rule="/0/@rules.8"/> </alternatives> </rules> <rules xsi:type="xtext:ParserRule" name="Subrule1"> @@ -77,11 +99,11 @@ <abstractTokens xsi:type="xtext:Group"> <abstractTokens xsi:type="xtext:Keyword" value="subrule1"/> <abstractTokens xsi:type="xtext:Assignment" feature="name" operator="="> - <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.6"/> + <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.7"/> </abstractTokens> </abstractTokens> <abstractTokens xsi:type="xtext:Assignment" feature="sub1" operator="="> - <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.6"/> + <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.7"/> </abstractTokens> </alternatives> </rules> @@ -93,7 +115,7 @@ <abstractTokens xsi:type="xtext:Group"> <abstractTokens xsi:type="xtext:Keyword" value="subrule3"/> <abstractTokens xsi:type="xtext:Assignment" feature="name" operator="="> - <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.6"/> + <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.7"/> </abstractTokens> </abstractTokens> <abstractTokens xsi:type="xtext:Assignment" feature="sub2" operator="="> @@ -109,7 +131,7 @@ <abstractTokens xsi:type="xtext:Group"> <abstractTokens xsi:type="xtext:Keyword" value="subrule3"/> <abstractTokens xsi:type="xtext:Assignment" feature="name" operator="="> - <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.6"/> + <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.7"/> </abstractTokens> </abstractTokens> <abstractTokens xsi:type="xtext:Assignment" feature="sub1" operator="="> @@ -122,31 +144,31 @@ <type xsi:type="ecore:EClass" href="http://holla#//CallExtendedParserRule"/> </type> <alternatives xsi:type="xtext:Assignment" feature="call" operator="="> - <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.3"/> + <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.4"/> </alternatives> </rules> </xtext:Grammar> <xtext:Grammar abstract="true" name="org.eclipse.xtext.grammarinheritance.AbstractTestLanguage" superGrammar="/2"> <metamodelDeclarations xsi:type="xtext:ReferencedMetamodel" alias="mm"> - <ePackage href="classpath:/org/eclipse/xtext/grammarinheritance/ametamodel.ecore#/"/> + <ePackage href="http://www.eclipse.org/xtext/tests/grammarinheritance#/"/> </metamodelDeclarations> <metamodelDeclarations xsi:type="xtext:ReferencedMetamodel" alias="ecore"> <ePackage href="http://www.eclipse.org/emf/2002/Ecore#/"/> </metamodelDeclarations> <rules xsi:type="xtext:ParserRule" name="InheritedParserRule"> <type metamodel="/1/@metamodelDeclarations.0"> - <type xsi:type="ecore:EClass" href="classpath:/org/eclipse/xtext/grammarinheritance/ametamodel.ecore#//AType"/> + <type xsi:type="ecore:EClass" href="http://www.eclipse.org/xtext/tests/grammarinheritance#//AType"/> </type> <alternatives xsi:type="xtext:Group"> <abstractTokens xsi:type="xtext:Keyword" value="element"/> <abstractTokens xsi:type="xtext:Assignment" feature="name" operator="="> - <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.6"/> + <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.7"/> </abstractTokens> </alternatives> </rules> <rules xsi:type="xtext:ParserRule" name="AbstractCallOverridenParserRule"> <type metamodel="/1/@metamodelDeclarations.0"> - <type xsi:type="ecore:EClass" href="classpath:/org/eclipse/xtext/grammarinheritance/ametamodel.ecore#//AModel"/> + <type xsi:type="ecore:EClass" href="http://www.eclipse.org/xtext/tests/grammarinheritance#//AModel"/> </type> <alternatives xsi:type="xtext:Group"> <abstractTokens xsi:type="xtext:Keyword" value="overridemodel"/> @@ -157,34 +179,45 @@ </rules> <rules xsi:type="xtext:ParserRule" name="OverridableParserRule"> <type metamodel="/1/@metamodelDeclarations.0"> - <type xsi:type="ecore:EClass" href="classpath:/org/eclipse/xtext/grammarinheritance/ametamodel.ecore#//AType"/> + <type xsi:type="ecore:EClass" href="http://www.eclipse.org/xtext/tests/grammarinheritance#//AType"/> </type> <alternatives xsi:type="xtext:Group"> <abstractTokens xsi:type="xtext:Keyword" value="element"/> <abstractTokens xsi:type="xtext:Assignment" feature="name" operator="="> - <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.6"/> + <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.7"/> + </abstractTokens> + </alternatives> + </rules> + <rules xsi:type="xtext:ParserRule" name="OverridableParserRule2"> + <type metamodel="/1/@metamodelDeclarations.0"> + <type xsi:type="ecore:EClass" href="http://www.eclipse.org/xtext/tests/grammarinheritance#//AType"/> + </type> + <alternatives xsi:type="xtext:Group"> + <abstractTokens xsi:type="xtext:Keyword" value="other element"/> + <abstractTokens xsi:type="xtext:Assignment" feature="name" operator="="> + <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.2"/> </abstractTokens> </alternatives> </rules> <rules xsi:type="xtext:ParserRule" name="AbstractCallExtendedParserRule"> <type metamodel="/1/@metamodelDeclarations.0"> - <type xsi:type="ecore:EClass" href="classpath:/org/eclipse/xtext/grammarinheritance/ametamodel.ecore#//AModel"/> + <type xsi:type="ecore:EClass" href="http://www.eclipse.org/xtext/tests/grammarinheritance#//AModel"/> </type> <alternatives xsi:type="xtext:Group"> <abstractTokens xsi:type="xtext:Keyword" value="extendedmodel"/> <abstractTokens xsi:type="xtext:Assignment" cardinality="*" feature="elements" operator="+="> - <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.4"/> + <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.5"/> </abstractTokens> </alternatives> </rules> <rules xsi:type="xtext:ParserRule" name="ExtendableParserRule"> <type metamodel="/1/@metamodelDeclarations.0"> - <type xsi:type="ecore:EClass" href="classpath:/org/eclipse/xtext/grammarinheritance/ametamodel.ecore#//AType"/> + <type xsi:type="ecore:EClass" href="http://www.eclipse.org/xtext/tests/grammarinheritance#//AType"/> </type> <alternatives xsi:type="xtext:Group"> <abstractTokens xsi:type="xtext:Keyword" value="element"/> <abstractTokens xsi:type="xtext:Assignment" feature="name" operator="="> - <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.6"/> + <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.7"/> </abstractTokens> </alternatives> </rules> diff --git a/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/grammarinheritance/foo.ecore b/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/grammarinheritance/foo.ecore index 7125bfb..bb95ec3 100644 --- a/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/grammarinheritance/foo.ecore +++ b/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/grammarinheritance/foo.ecore @@ -6,35 +6,42 @@ <eType xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EDouble"/> </eStructuralFeatures> <eStructuralFeatures xsi:type="ecore:EReference" name="elements" upperBound="-1" containment="true"> - <eType xsi:type="ecore:EClass" href="classpath:/org/eclipse/xtext/grammarinheritance/ametamodel.ecore#//AType"/> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/xtext/tests/grammarinheritance#//AType"/> </eStructuralFeatures> </eClassifiers> <eClassifiers xsi:type="ecore:EClass" name="CallOverridenParserRule" eSuperTypes="//RootRule"> <eStructuralFeatures xsi:type="ecore:EReference" name="call" containment="true"> - <eType xsi:type="ecore:EClass" href="classpath:/org/eclipse/xtext/grammarinheritance/ametamodel.ecore#//AModel"/> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/xtext/tests/grammarinheritance#//AModel"/> + </eStructuralFeatures> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="AType2"> + <eSuperTypes href="#//RootRule"/> + <eSuperTypes href="http://www.eclipse.org/xtext/tests/grammarinheritance#//AType"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="age"> + <eType xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EInt"/> </eStructuralFeatures> </eClassifiers> <eClassifiers xsi:type="ecore:EClass" name="Subrule1"> - <eSuperTypes href="classpath:/org/eclipse/xtext/grammarinheritance/ametamodel.ecore#//AType"/> + <eSuperTypes href="http://www.eclipse.org/xtext/tests/grammarinheritance#//AType"/> <eStructuralFeatures xsi:type="ecore:EAttribute" name="sub1"> <eType xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/> </eStructuralFeatures> </eClassifiers> <eClassifiers xsi:type="ecore:EClass" name="Subrule2"> - <eSuperTypes href="classpath:/org/eclipse/xtext/grammarinheritance/ametamodel.ecore#//AType"/> + <eSuperTypes href="http://www.eclipse.org/xtext/tests/grammarinheritance#//AType"/> <eStructuralFeatures xsi:type="ecore:EAttribute" name="sub2"> <eType xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/> </eStructuralFeatures> </eClassifiers> <eClassifiers xsi:type="ecore:EClass" name="Subrule3"> - <eSuperTypes href="classpath:/org/eclipse/xtext/grammarinheritance/ametamodel.ecore#//AType"/> + <eSuperTypes href="http://www.eclipse.org/xtext/tests/grammarinheritance#//AType"/> <eStructuralFeatures xsi:type="ecore:EAttribute" name="sub1"> <eType xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EInt"/> </eStructuralFeatures> </eClassifiers> <eClassifiers xsi:type="ecore:EClass" name="CallExtendedParserRule" eSuperTypes="//RootRule"> <eStructuralFeatures xsi:type="ecore:EReference" name="call" containment="true"> - <eType xsi:type="ecore:EClass" href="classpath:/org/eclipse/xtext/grammarinheritance/ametamodel.ecore#//AModel"/> + <eType xsi:type="ecore:EClass" href="http://www.eclipse.org/xtext/tests/grammarinheritance#//AModel"/> </eStructuralFeatures> </eClassifiers> </ecore:EPackage> diff --git a/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g b/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g index 03cc6d0..33efcb1 100644 --- a/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g +++ b/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g @@ -78,9 +78,9 @@ ruleRootRule returns [EObject current=null] } @after { resetLookahead(); }: -(( +((( { - currentNode=createCompositeNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.0/@alternatives/@groups.0/@groups.0" /* xtext::RuleCall */, currentNode); + currentNode=createCompositeNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.0/@alternatives/@groups.0/@groups.0/@groups.0" /* xtext::RuleCall */, currentNode); } this_ConcreteParserRule=ruleConcreteParserRule { @@ -90,7 +90,7 @@ ruleRootRule returns [EObject current=null] | { - currentNode=createCompositeNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.0/@alternatives/@groups.0/@groups.1" /* xtext::RuleCall */, currentNode); + currentNode=createCompositeNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.0/@alternatives/@groups.0/@groups.0/@groups.1" /* xtext::RuleCall */, currentNode); } this_CallOverridenParserRule=ruleCallOverridenParserRule { @@ -100,13 +100,23 @@ ruleRootRule returns [EObject current=null] ) | { - currentNode=createCompositeNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.0/@alternatives/@groups.1" /* xtext::RuleCall */, currentNode); + currentNode=createCompositeNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.0/@alternatives/@groups.0/@groups.1" /* xtext::RuleCall */, currentNode); } this_CallExtendedParserRule=ruleCallExtendedParserRule { $current = $this_CallExtendedParserRule.current; currentNode = currentNode.getParent(); } +) + | + { + currentNode=createCompositeNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.0/@alternatives/@groups.1" /* xtext::RuleCall */, currentNode); + } + this_OverridableParserRule2=ruleOverridableParserRule2 + { + $current = $this_OverridableParserRule2.current; + currentNode = currentNode.getParent(); + } ); @@ -275,9 +285,79 @@ ruleCallOverridenParserRule returns [EObject current=null] +// Entry rule entryRuleOverridableParserRule2 +entryRuleOverridableParserRule2 returns [EObject current=null] : + { currentNode = createCompositeNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.4" /* xtext::ParserRule */, currentNode); } + iv_ruleOverridableParserRule2=ruleOverridableParserRule2 + { $current=$iv_ruleOverridableParserRule2.current; } + EOF +; + +// Rule OverridableParserRule2 +ruleOverridableParserRule2 returns [EObject current=null] + @init { EObject temp=null; setCurrentLookahead(); resetLookahead(); + } + @after { resetLookahead(); + }: +((('overridden other element' + { + createLeafNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.4/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0" /* xtext::Keyword */, null); + } +( + + lv_name=RULE_ID + { + createLeafNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.4/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1/@terminal" /* xtext::RuleCall */, "name"); + } + + { + if ($current==null) { + $current = factory.create("AType2"); + associateNodeWithAstElement(currentNode, $current); + } + + try { + factory.set($current, "name", lv_name, "ID", currentNode); + } catch (ValueConverterException vce) { + handleValueConverterException(vce); + } + } + +))'-' + { + createLeafNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.4/@alternatives/@abstractTokens.0/@abstractTokens.1" /* xtext::Keyword */, null); + } +)( + + lv_age=RULE_INT + { + createLeafNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.4/@alternatives/@abstractTokens.1/@terminal" /* xtext::RuleCall */, "age"); + } + + { + if ($current==null) { + $current = factory.create("AType2"); + associateNodeWithAstElement(currentNode, $current); + } + + try { + factory.set($current, "age", lv_age, "INT", currentNode); + } catch (ValueConverterException vce) { + handleValueConverterException(vce); + } + } + +)); + + + + + + + // Entry rule entryRuleExtendableParserRule entryRuleExtendableParserRule returns [EObject current=null] : - { currentNode = createCompositeNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.4" /* xtext::ParserRule */, currentNode); } + { currentNode = createCompositeNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.5" /* xtext::ParserRule */, currentNode); } iv_ruleExtendableParserRule=ruleExtendableParserRule { $current=$iv_ruleExtendableParserRule.current; } EOF @@ -291,7 +371,7 @@ ruleExtendableParserRule returns [EObject current=null] }: (( { - currentNode=createCompositeNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.4/@alternatives/@groups.0/@groups.0" /* xtext::RuleCall */, currentNode); + currentNode=createCompositeNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.5/@alternatives/@groups.0/@groups.0" /* xtext::RuleCall */, currentNode); } this_Subrule1=ruleSubrule1 { @@ -301,7 +381,7 @@ ruleExtendableParserRule returns [EObject current=null] | { - currentNode=createCompositeNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.4/@alternatives/@groups.0/@groups.1" /* xtext::RuleCall */, currentNode); + currentNode=createCompositeNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.5/@alternatives/@groups.0/@groups.1" /* xtext::RuleCall */, currentNode); } this_Subrule2=ruleSubrule2 { @@ -311,7 +391,7 @@ ruleExtendableParserRule returns [EObject current=null] ) | { - currentNode=createCompositeNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.4/@alternatives/@groups.1" /* xtext::RuleCall */, currentNode); + currentNode=createCompositeNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.5/@alternatives/@groups.1" /* xtext::RuleCall */, currentNode); } this_Subrule3=ruleSubrule3 { @@ -328,7 +408,7 @@ ruleExtendableParserRule returns [EObject current=null] // Entry rule entryRuleSubrule1 entryRuleSubrule1 returns [EObject current=null] : - { currentNode = createCompositeNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.5" /* xtext::ParserRule */, currentNode); } + { currentNode = createCompositeNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.6" /* xtext::ParserRule */, currentNode); } iv_ruleSubrule1=ruleSubrule1 { $current=$iv_ruleSubrule1.current; } EOF @@ -342,13 +422,13 @@ ruleSubrule1 returns [EObject current=null] }: (('subrule1' { - createLeafNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.5/@alternatives/@abstractTokens.0/@abstractTokens.0" /* xtext::Keyword */, null); + createLeafNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.6/@alternatives/@abstractTokens.0/@abstractTokens.0" /* xtext::Keyword */, null); } ( lv_name=RULE_ID { - createLeafNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.5/@alternatives/@abstractTokens.0/@abstractTokens.1/@terminal" /* xtext::RuleCall */, "name"); + createLeafNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.6/@alternatives/@abstractTokens.0/@abstractTokens.1/@terminal" /* xtext::RuleCall */, "name"); } { @@ -368,7 +448,7 @@ ruleSubrule1 returns [EObject current=null] lv_sub1=RULE_ID { - createLeafNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.5/@alternatives/@abstractTokens.1/@terminal" /* xtext::RuleCall */, "sub1"); + createLeafNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.6/@alternatives/@abstractTokens.1/@terminal" /* xtext::RuleCall */, "sub1"); } { @@ -394,7 +474,7 @@ ruleSubrule1 returns [EObject current=null] // Entry rule entryRuleSubrule2 entryRuleSubrule2 returns [EObject current=null] : - { currentNode = createCompositeNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.6" /* xtext::ParserRule */, currentNode); } + { currentNode = createCompositeNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.7" /* xtext::ParserRule */, currentNode); } iv_ruleSubrule2=ruleSubrule2 { $current=$iv_ruleSubrule2.current; } EOF @@ -408,13 +488,13 @@ ruleSubrule2 returns [EObject current=null] }: (('subrule3' { - createLeafNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.6/@alternatives/@abstractTokens.0/@abstractTokens.0" /* xtext::Keyword */, null); + createLeafNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.7/@alternatives/@abstractTokens.0/@abstractTokens.0" /* xtext::Keyword */, null); } ( lv_name=RULE_ID { - createLeafNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.6/@alternatives/@abstractTokens.0/@abstractTokens.1/@terminal" /* xtext::RuleCall */, "name"); + createLeafNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.7/@alternatives/@abstractTokens.0/@abstractTokens.1/@terminal" /* xtext::RuleCall */, "name"); } { @@ -434,7 +514,7 @@ ruleSubrule2 returns [EObject current=null] lv_sub2=RULE_STRING { - createLeafNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.6/@alternatives/@abstractTokens.1/@terminal" /* xtext::RuleCall */, "sub2"); + createLeafNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.7/@alternatives/@abstractTokens.1/@terminal" /* xtext::RuleCall */, "sub2"); } { @@ -460,7 +540,7 @@ ruleSubrule2 returns [EObject current=null] // Entry rule entryRuleSubrule3 entryRuleSubrule3 returns [EObject current=null] : - { currentNode = createCompositeNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.7" /* xtext::ParserRule */, currentNode); } + { currentNode = createCompositeNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.8" /* xtext::ParserRule */, currentNode); } iv_ruleSubrule3=ruleSubrule3 { $current=$iv_ruleSubrule3.current; } EOF @@ -474,13 +554,13 @@ ruleSubrule3 returns [EObject current=null] }: (('subrule3' { - createLeafNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.7/@alternatives/@abstractTokens.0/@abstractTokens.0" /* xtext::Keyword */, null); + createLeafNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.8/@alternatives/@abstractTokens.0/@abstractTokens.0" /* xtext::Keyword */, null); } ( lv_name=RULE_ID { - createLeafNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.7/@alternatives/@abstractTokens.0/@abstractTokens.1/@terminal" /* xtext::RuleCall */, "name"); + createLeafNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.8/@alternatives/@abstractTokens.0/@abstractTokens.1/@terminal" /* xtext::RuleCall */, "name"); } { @@ -500,7 +580,7 @@ ruleSubrule3 returns [EObject current=null] lv_sub1=RULE_INT { - createLeafNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.7/@alternatives/@abstractTokens.1/@terminal" /* xtext::RuleCall */, "sub1"); + createLeafNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.8/@alternatives/@abstractTokens.1/@terminal" /* xtext::RuleCall */, "sub1"); } { @@ -526,7 +606,7 @@ ruleSubrule3 returns [EObject current=null] // Entry rule entryRuleCallExtendedParserRule entryRuleCallExtendedParserRule returns [EObject current=null] : - { currentNode = createCompositeNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.8" /* xtext::ParserRule */, currentNode); } + { currentNode = createCompositeNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.9" /* xtext::ParserRule */, currentNode); } iv_ruleCallExtendedParserRule=ruleCallExtendedParserRule { $current=$iv_ruleCallExtendedParserRule.current; } EOF @@ -542,7 +622,7 @@ ruleCallExtendedParserRule returns [EObject current=null] { - currentNode=createCompositeNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.8/@alternatives/@terminal" /* xtext::RuleCall */, currentNode); + currentNode=createCompositeNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.9/@alternatives/@terminal" /* xtext::RuleCall */, currentNode); } lv_call=ruleAbstractCallExtendedParserRule { @@ -662,7 +742,7 @@ ruleAbstractCallOverridenParserRule returns [EObject current=null] // Entry rule entryRuleAbstractCallExtendedParserRule entryRuleAbstractCallExtendedParserRule returns [EObject current=null] : - { currentNode = createCompositeNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/1/@rules.3" /* xtext::ParserRule */, currentNode); } + { currentNode = createCompositeNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/1/@rules.4" /* xtext::ParserRule */, currentNode); } iv_ruleAbstractCallExtendedParserRule=ruleAbstractCallExtendedParserRule { $current=$iv_ruleAbstractCallExtendedParserRule.current; } EOF @@ -676,13 +756,13 @@ ruleAbstractCallExtendedParserRule returns [EObject current=null] }: ('extendedmodel' { - createLeafNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/1/@rules.3/@alternatives/@abstractTokens.0" /* xtext::Keyword */, null); + createLeafNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/1/@rules.4/@alternatives/@abstractTokens.0" /* xtext::Keyword */, null); } ( { - currentNode=createCompositeNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/1/@rules.3/@alternatives/@abstractTokens.1/@terminal" /* xtext::RuleCall */, currentNode); + currentNode=createCompositeNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/1/@rules.4/@alternatives/@abstractTokens.1/@terminal" /* xtext::RuleCall */, currentNode); } lv_elements=ruleExtendableParserRule { @@ -731,6 +811,8 @@ ruleAbstractCallExtendedParserRule returns [EObject current=null] + + RULE_REAL : RULE_INT '.' RULE_INT; RULE_ID : ('^')?('a'..'z'|'A'..'Z'|'ö'|'ä'|'ü'|'_') ('a'..'z'|'A'..'Z'|'_'|'0'..'9')*; diff --git a/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.tokens b/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.tokens index 4c8ace5..ec4b8c5 100644 --- a/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.tokens +++ b/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.tokens @@ -1,16 +1,18 @@ RULE_ML_COMMENT=8 RULE_ID=5 RULE_WS=10 -RULE_INT=7 -RULE_STRING=6 +RULE_INT=6 +RULE_STRING=7 RULE_REAL=4 RULE_ANY_OTHER=11 RULE_SL_COMMENT=9 -'extendedmodel'=19 -'subrule1'=15 +'extendedmodel'=21 +'overridden other element'=15 +'subrule1'=17 ':'=13 -'element'=17 +'element'=19 'overriddenelement'=14 +'-'=16 'model'=12 -'overridemodel'=18 -'subrule3'=16 +'overridemodel'=20 +'subrule3'=18 diff --git a/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguageLexer.java b/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguageLexer.java index 760c2e1..1cc4d7d 100644 --- a/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguageLexer.java +++ b/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguageLexer.java @@ -11,20 +11,22 @@ import java.util.List; import java.util.ArrayList; public class InternalConcreteTestLanguageLexer 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 RULE_ID=5; - public static final int RULE_STRING=6; + public static final int RULE_STRING=7; public static final int T12=12; public static final int RULE_REAL=4; public static final int T13=13; + public static final int T20=20; public static final int T18=18; public static final int RULE_WS=10; public static final int T15=15; - public static final int RULE_INT=7; + public static final int RULE_INT=6; public static final int EOF=-1; public static final int T17=17; - public static final int Tokens=20; + public static final int Tokens=22; public static final int RULE_ANY_OTHER=11; public static final int T16=16; public static final int RULE_SL_COMMENT=9; @@ -95,10 +97,10 @@ public class InternalConcreteTestLanguageLexer extends Lexer { public final void mT15() throws RecognitionException { try { int _type = T15; - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:13:5: ( 'subrule1' ) - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:13:7: 'subrule1' + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:13:5: ( 'overridden other element' ) + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:13:7: 'overridden other element' { - match("subrule1"); + match("overridden other element"); } @@ -114,11 +116,10 @@ public class InternalConcreteTestLanguageLexer extends Lexer { public final void mT16() throws RecognitionException { try { int _type = T16; - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:14:5: ( 'subrule3' ) - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:14:7: 'subrule3' + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:14:5: ( '-' ) + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:14:7: '-' { - match("subrule3"); - + match('-'); } @@ -133,10 +134,10 @@ public class InternalConcreteTestLanguageLexer extends Lexer { public final void mT17() throws RecognitionException { try { int _type = T17; - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:15:5: ( 'element' ) - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:15:7: 'element' + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:15:5: ( 'subrule1' ) + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:15:7: 'subrule1' { - match("element"); + match("subrule1"); } @@ -152,10 +153,10 @@ public class InternalConcreteTestLanguageLexer extends Lexer { public final void mT18() throws RecognitionException { try { int _type = T18; - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:16:5: ( 'overridemodel' ) - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:16:7: 'overridemodel' + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:16:5: ( 'subrule3' ) + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:16:7: 'subrule3' { - match("overridemodel"); + match("subrule3"); } @@ -171,10 +172,10 @@ public class InternalConcreteTestLanguageLexer extends Lexer { public final void mT19() throws RecognitionException { try { int _type = T19; - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:17:5: ( 'extendedmodel' ) - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:17:7: 'extendedmodel' + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:17:5: ( 'element' ) + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:17:7: 'element' { - match("extendedmodel"); + match("element"); } @@ -186,12 +187,50 @@ public class InternalConcreteTestLanguageLexer extends Lexer { } // $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/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:18:5: ( 'overridemodel' ) + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:18:7: 'overridemodel' + { + match("overridemodel"); + + + } + + 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/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:19:5: ( 'extendedmodel' ) + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:19:7: 'extendedmodel' + { + match("extendedmodel"); + + + } + + this.type = _type; + } + finally { + } + } + // $ANTLR end T21 + // $ANTLR start RULE_REAL public final void mRULE_REAL() throws RecognitionException { try { int _type = RULE_REAL; - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:734:11: ( RULE_INT '.' RULE_INT ) - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:734:13: RULE_INT '.' RULE_INT + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:816:11: ( RULE_INT '.' RULE_INT ) + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:816:13: RULE_INT '.' RULE_INT { mRULE_INT(); match('.'); @@ -210,10 +249,10 @@ public class InternalConcreteTestLanguageLexer extends Lexer { public final void mRULE_ID() throws RecognitionException { try { int _type = RULE_ID; - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:736:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | 'ö' | 'ä' | 'ü' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* ) - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:736:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | 'ö' | 'ä' | 'ü' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:818:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | 'ö' | 'ä' | 'ü' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* ) + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:818:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | 'ö' | 'ä' | 'ü' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* { - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:736:11: ( '^' )? + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:818:11: ( '^' )? int alt1=2; int LA1_0 = input.LA(1); @@ -222,7 +261,7 @@ public class InternalConcreteTestLanguageLexer extends Lexer { } switch (alt1) { case 1 : - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:736:12: '^' + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:818:12: '^' { match('^'); @@ -241,7 +280,7 @@ public class InternalConcreteTestLanguageLexer extends Lexer { recover(mse); throw mse; } - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:736:53: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:818:53: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* loop2: do { int alt2=2; @@ -289,10 +328,10 @@ public class InternalConcreteTestLanguageLexer extends Lexer { public final void mRULE_INT() throws RecognitionException { try { int _type = RULE_INT; - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:738:10: ( ( '0' .. '9' )+ ) - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:738:12: ( '0' .. '9' )+ + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:820:10: ( ( '0' .. '9' )+ ) + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:820:12: ( '0' .. '9' )+ { - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:738:12: ( '0' .. '9' )+ + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:820:12: ( '0' .. '9' )+ int cnt3=0; loop3: do { @@ -306,7 +345,7 @@ public class InternalConcreteTestLanguageLexer extends Lexer { switch (alt3) { case 1 : - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:738:13: '0' .. '9' + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:820:13: '0' .. '9' { matchRange('0','9'); @@ -336,7 +375,7 @@ public class InternalConcreteTestLanguageLexer extends Lexer { public final void mRULE_STRING() throws RecognitionException { try { int _type = RULE_STRING; - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:740:13: ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' ) | ~ ( '\\\\' | '\"' ) )* '\"' | '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' ) | ~ ( '\\\\' | '\\'' ) )* '\\'' ) + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:822:13: ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' ) | ~ ( '\\\\' | '\"' ) )* '\"' | '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' ) | ~ ( '\\\\' | '\\'' ) )* '\\'' ) int alt6=2; int LA6_0 = input.LA(1); @@ -348,16 +387,16 @@ public class InternalConcreteTestLanguageLexer extends Lexer { } else { NoViableAltException nvae = - new NoViableAltException("740:1: RULE_STRING : ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' ) | ~ ( '\\\\' | '\"' ) )* '\"' | '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' ) | ~ ( '\\\\' | '\\'' ) )* '\\'' );", 6, 0, input); + new NoViableAltException("822:1: RULE_STRING : ( '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' ) | ~ ( '\\\\' | '\"' ) )* '\"' | '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' ) | ~ ( '\\\\' | '\\'' ) )* '\\'' );", 6, 0, input); throw nvae; } switch (alt6) { case 1 : - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:741:6: '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' ) | ~ ( '\\\\' | '\"' ) )* '\"' + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:823:6: '\"' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' ) | ~ ( '\\\\' | '\"' ) )* '\"' { match('\"'); - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:741:10: ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' ) | ~ ( '\\\\' | '\"' ) )* + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:823:10: ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' ) | ~ ( '\\\\' | '\"' ) )* loop4: do { int alt4=3; @@ -373,7 +412,7 @@ public class InternalConcreteTestLanguageLexer extends Lexer { switch (alt4) { case 1 : - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:741:12: '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' ) + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:823:12: '\\\\' ( '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' ) { @@ -390,7 +429,7 @@ public class InternalConcreteTestLanguageLexer extends Lexer { } break; case 2 : - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:741:56: ~ ( '\\\\' | '\"' ) + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:823:56: ~ ( '\\\\' | '\"' ) { if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFE') ) { input.consume(); @@ -416,10 +455,10 @@ public class InternalConcreteTestLanguageLexer extends Lexer { } break; case 2 : - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:742:15: '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' ) | ~ ( '\\\\' | '\\'' ) )* '\\'' + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:824:15: '\\'' ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' ) | ~ ( '\\\\' | '\\'' ) )* '\\'' { match('\''); - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:742:20: ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' ) | ~ ( '\\\\' | '\\'' ) )* + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:824:20: ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' ) | ~ ( '\\\\' | '\\'' ) )* loop5: do { int alt5=3; @@ -435,7 +474,7 @@ public class InternalConcreteTestLanguageLexer extends Lexer { switch (alt5) { case 1 : - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:742:22: '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' ) + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:824:22: '\\\\' ( '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' ) { @@ -452,7 +491,7 @@ public class InternalConcreteTestLanguageLexer extends Lexer { } break; case 2 : - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:742:66: ~ ( '\\\\' | '\\'' ) + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:824:66: ~ ( '\\\\' | '\\'' ) { if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFE') ) { input.consume(); @@ -490,12 +529,12 @@ public class InternalConcreteTestLanguageLexer extends Lexer { public final void mRULE_ML_COMMENT() throws RecognitionException { try { int _type = RULE_ML_COMMENT; - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:745:17: ( '/*' ( options {greedy=false; } : . )* '*/' ) - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:745:19: '/*' ( options {greedy=false; } : . )* '*/' + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:827:17: ( '/*' ( options {greedy=false; } : . )* '*/' ) + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:827:19: '/*' ( options {greedy=false; } : . )* '*/' { match("/*"); - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:745:24: ( options {greedy=false; } : . )* + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:827:24: ( options {greedy=false; } : . )* loop7: do { int alt7=2; @@ -520,7 +559,7 @@ public class InternalConcreteTestLanguageLexer extends Lexer { switch (alt7) { case 1 : - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:745:52: . + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:827:52: . { matchAny(); @@ -548,12 +587,12 @@ public class InternalConcreteTestLanguageLexer extends Lexer { public final void mRULE_SL_COMMENT() throws RecognitionException { try { int _type = RULE_SL_COMMENT; - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:747:17: ( '//' (~ ( '\\n' | '\\r' ) )* ( ( '\\r' )? '\\n' )? ) - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:747:19: '//' (~ ( '\\n' | '\\r' ) )* ( ( '\\r' )? '\\n' )? + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:829:17: ( '//' (~ ( '\\n' | '\\r' ) )* ( ( '\\r' )? '\\n' )? ) + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:829:19: '//' (~ ( '\\n' | '\\r' ) )* ( ( '\\r' )? '\\n' )? { match("//"); - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:747:24: (~ ( '\\n' | '\\r' ) )* + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:829:24: (~ ( '\\n' | '\\r' ) )* loop8: do { int alt8=2; @@ -566,7 +605,7 @@ public class InternalConcreteTestLanguageLexer extends Lexer { switch (alt8) { case 1 : - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:747:24: ~ ( '\\n' | '\\r' ) + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:829: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(); @@ -587,7 +626,7 @@ public class InternalConcreteTestLanguageLexer extends Lexer { } } while (true); - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:747:38: ( ( '\\r' )? '\\n' )? + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:829:38: ( ( '\\r' )? '\\n' )? int alt10=2; int LA10_0 = input.LA(1); @@ -596,9 +635,9 @@ public class InternalConcreteTestLanguageLexer extends Lexer { } switch (alt10) { case 1 : - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:747:39: ( '\\r' )? '\\n' + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:829:39: ( '\\r' )? '\\n' { - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:747:39: ( '\\r' )? + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:829:39: ( '\\r' )? int alt9=2; int LA9_0 = input.LA(1); @@ -607,7 +646,7 @@ public class InternalConcreteTestLanguageLexer extends Lexer { } switch (alt9) { case 1 : - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:747:39: '\\r' + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:829:39: '\\r' { match('\r'); @@ -637,10 +676,10 @@ public class InternalConcreteTestLanguageLexer extends Lexer { public final void mRULE_WS() throws RecognitionException { try { int _type = RULE_WS; - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:749:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ ) - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:749:11: ( ' ' | '\\t' | '\\r' | '\\n' )+ + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:831:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ ) + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:831:11: ( ' ' | '\\t' | '\\r' | '\\n' )+ { - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:749:11: ( ' ' | '\\t' | '\\r' | '\\n' )+ + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:831:11: ( ' ' | '\\t' | '\\r' | '\\n' )+ int cnt11=0; loop11: do { @@ -693,8 +732,8 @@ public class InternalConcreteTestLanguageLexer extends Lexer { public final void mRULE_ANY_OTHER() throws RecognitionException { try { int _type = RULE_ANY_OTHER; - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:751:16: ( . ) - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:751:18: . + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:833:16: ( . ) + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:833:18: . { matchAny(); @@ -708,8 +747,8 @@ public class InternalConcreteTestLanguageLexer extends Lexer { // $ANTLR end RULE_ANY_OTHER public void mTokens() throws RecognitionException { - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:1:8: ( T12 | T13 | T14 | T15 | T16 | T17 | T18 | T19 | RULE_REAL | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER ) - int alt12=16; + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:1:8: ( T12 | T13 | T14 | T15 | T16 | T17 | T18 | T19 | T20 | T21 | RULE_REAL | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER ) + int alt12=18; alt12 = dfa12.predict(input); switch (alt12) { case 1 : @@ -769,56 +808,70 @@ public class InternalConcreteTestLanguageLexer extends Lexer { } break; case 9 : - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:1:42: RULE_REAL + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:1:42: T20 { - mRULE_REAL(); + mT20(); } break; case 10 : - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:1:52: RULE_ID + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:1:46: T21 { - mRULE_ID(); + mT21(); } break; case 11 : - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:1:60: RULE_INT + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:1:50: RULE_REAL { - mRULE_INT(); + mRULE_REAL(); } break; case 12 : - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:1:69: RULE_STRING + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:1:60: RULE_ID { - mRULE_STRING(); + mRULE_ID(); } break; case 13 : - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:1:81: RULE_ML_COMMENT + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:1:68: RULE_INT { - mRULE_ML_COMMENT(); + mRULE_INT(); } break; case 14 : - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:1:97: RULE_SL_COMMENT + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:1:77: RULE_STRING { - mRULE_SL_COMMENT(); + mRULE_STRING(); } break; case 15 : - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:1:113: RULE_WS + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:1:89: RULE_ML_COMMENT { - mRULE_WS(); + mRULE_ML_COMMENT(); } break; case 16 : - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:1:121: RULE_ANY_OTHER + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:1:105: RULE_SL_COMMENT + { + mRULE_SL_COMMENT(); + + } + break; + case 17 : + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:1:121: RULE_WS + { + mRULE_WS(); + + } + break; + case 18 : + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:1:129: RULE_ANY_OTHER { mRULE_ANY_OTHER(); @@ -832,69 +885,70 @@ public class InternalConcreteTestLanguageLexer extends Lexer { protected DFA12 dfa12 = new DFA12(this); static final String DFA12_eotS = - "\1\uffff\1\17\1\uffff\3\17\1\25\1\15\1\uffff\3\15\2\uffff\1\17\2"+ - "\uffff\4\17\1\uffff\1\25\5\uffff\12\17\1\53\4\17\1\uffff\6\17\1"+ - "\70\3\17\1\74\1\75\1\uffff\3\17\2\uffff\12\17\1\113\1\17\1\115\1"+ - "\uffff\1\17\1\uffff\2\17\1\121\1\uffff"; + "\1\uffff\1\20\1\uffff\1\20\1\uffff\2\20\1\27\1\16\1\uffff\3\16\2"+ + "\uffff\1\20\2\uffff\1\20\1\uffff\3\20\1\uffff\1\27\5\uffff\12\20"+ + "\1\55\4\20\1\uffff\7\20\1\73\2\20\1\76\1\77\1\20\1\uffff\2\20\2"+ + "\uffff\4\20\1\uffff\7\20\1\117\1\120\1\20\2\uffff\2\20\1\124\1\uffff"; static final String DFA12_eofS = - "\122\uffff"; + "\125\uffff"; static final String DFA12_minS = - "\1\0\1\157\1\uffff\1\166\1\165\1\154\1\56\1\101\1\uffff\2\0\1\52"+ - "\2\uffff\1\144\2\uffff\1\145\1\142\1\145\1\164\1\uffff\1\56\5\uffff"+ - "\1\145\2\162\1\155\1\145\1\154\1\162\1\165\1\145\1\156\1\60\1\151"+ - "\1\154\1\156\1\144\1\uffff\1\144\1\145\1\164\1\145\1\144\1\61\1"+ - "\60\1\144\1\155\1\145\2\60\1\uffff\1\155\1\157\1\156\2\uffff\1\157"+ - "\1\144\1\145\1\144\1\145\1\154\1\145\1\154\1\145\1\154\1\60\1\155"+ - "\1\60\1\uffff\1\145\1\uffff\1\156\1\164\1\60\1\uffff"; + "\1\0\1\157\1\uffff\1\166\1\uffff\1\165\1\154\1\56\1\101\1\uffff"+ + "\2\0\1\52\2\uffff\1\144\2\uffff\1\145\1\uffff\1\142\1\164\1\145"+ + "\1\uffff\1\56\5\uffff\1\145\2\162\1\145\1\155\1\154\1\162\1\165"+ + "\1\156\1\145\1\60\1\151\1\154\1\144\1\156\1\uffff\1\144\2\145\1"+ + "\164\1\144\1\61\1\144\1\60\1\145\1\155\2\60\1\155\1\uffff\1\156"+ + "\1\157\2\uffff\1\157\1\40\2\144\1\uffff\1\154\3\145\2\154\1\155"+ + "\2\60\1\145\2\uffff\1\156\1\164\1\60\1\uffff"; static final String DFA12_maxS = - "\1\ufffe\1\157\1\uffff\1\166\1\165\1\170\1\71\1\u00fc\1\uffff\2"+ - "\ufffe\1\57\2\uffff\1\144\2\uffff\1\145\1\142\1\145\1\164\1\uffff"+ - "\1\71\5\uffff\1\145\2\162\1\155\1\145\1\154\1\162\1\165\1\145\1"+ - "\156\1\172\1\151\1\154\1\156\1\144\1\uffff\1\144\1\145\1\164\2\145"+ - "\1\63\1\172\1\144\1\155\1\145\2\172\1\uffff\1\155\1\157\1\156\2"+ - "\uffff\1\157\1\144\1\145\1\144\1\145\1\154\1\145\1\154\1\145\1\154"+ - "\1\172\1\155\1\172\1\uffff\1\145\1\uffff\1\156\1\164\1\172\1\uffff"; + "\1\ufffe\1\157\1\uffff\1\166\1\uffff\1\165\1\170\1\71\1\u00fc\1"+ + "\uffff\2\ufffe\1\57\2\uffff\1\144\2\uffff\1\145\1\uffff\1\142\1"+ + "\164\1\145\1\uffff\1\71\5\uffff\1\145\2\162\1\145\1\155\1\154\1"+ + "\162\1\165\1\156\1\145\1\172\1\151\1\154\1\144\1\156\1\uffff\1\144"+ + "\2\145\1\164\1\145\1\63\1\144\1\172\1\145\1\155\2\172\1\155\1\uffff"+ + "\1\156\1\157\2\uffff\1\157\1\145\2\144\1\uffff\1\154\3\145\2\154"+ + "\1\155\2\172\1\145\2\uffff\1\156\1\164\1\172\1\uffff"; static final String DFA12_acceptS = - "\2\uffff\1\2\5\uffff\1\12\3\uffff\1\17\1\20\1\uffff\1\12\1\2\4\uffff"+ - "\1\13\1\uffff\1\11\1\14\1\15\1\16\1\17\17\uffff\1\1\14\uffff\1\6"+ - "\3\uffff\1\4\1\5\15\uffff\1\7\1\uffff\1\10\3\uffff\1\3"; + "\2\uffff\1\2\1\uffff\1\5\4\uffff\1\14\3\uffff\1\21\1\22\1\uffff"+ + "\1\14\1\2\1\uffff\1\5\3\uffff\1\15\1\uffff\1\13\1\16\1\17\1\20\1"+ + "\21\17\uffff\1\1\15\uffff\1\10\2\uffff\1\6\1\7\4\uffff\1\4\12\uffff"+ + "\1\11\1\12\3\uffff\1\3"; static final String DFA12_specialS = - "\122\uffff}>"; + "\125\uffff}>"; static final String[] DFA12_transitionS = { - "\11\15\2\14\2\15\1\14\22\15\1\14\1\15\1\11\4\15\1\12\7\15\1"+ - "\13\12\6\1\2\6\15\32\10\3\15\1\7\1\10\1\15\4\10\1\5\7\10\1\1"+ - "\1\10\1\3\3\10\1\4\7\10\151\15\1\10\21\15\1\10\5\15\1\10\uff02"+ - "\15", - "\1\16", + "\11\16\2\15\2\16\1\15\22\16\1\15\1\16\1\12\4\16\1\13\5\16\1"+ + "\4\1\16\1\14\12\7\1\2\6\16\32\11\3\16\1\10\1\11\1\16\4\11\1"+ + "\6\7\11\1\1\1\11\1\3\3\11\1\5\7\11\151\16\1\11\21\16\1\11\5"+ + "\16\1\11\uff02\16", + "\1\17", "", - "\1\21", "\1\22", - "\1\23\13\uffff\1\24", - "\1\27\1\uffff\12\26", - "\32\17\4\uffff\1\17\1\uffff\32\17\151\uffff\1\17\21\uffff\1"+ - "\17\5\uffff\1\17", - "", - "\uffff\30", - "\uffff\30", - "\1\31\4\uffff\1\32", "", + "\1\24", + "\1\26\13\uffff\1\25", + "\1\31\1\uffff\12\30", + "\32\20\4\uffff\1\20\1\uffff\32\20\151\uffff\1\20\21\uffff\1"+ + "\20\5\uffff\1\20", "", - "\1\34", + "\uffff\32", + "\uffff\32", + "\1\33\4\uffff\1\34", "", "", - "\1\35", "\1\36", + "", + "", "\1\37", + "", "\1\40", + "\1\41", + "\1\42", "", - "\1\27\1\uffff\12\26", + "\1\31\1\uffff\12\30", "", "", "", "", "", - "\1\41", - "\1\42", "\1\43", "\1\44", "\1\45", @@ -903,49 +957,52 @@ public class InternalConcreteTestLanguageLexer extends Lexer { "\1\50", "\1\51", "\1\52", - "\12\17\7\uffff\32\17\4\uffff\1\17\1\uffff\32\17", + "\1\53", "\1\54", - "\1\55", + "\12\20\7\uffff\32\20\4\uffff\1\20\1\uffff\32\20", "\1\56", "\1\57", - "", "\1\60", "\1\61", + "", "\1\62", "\1\63", - "\1\65\1\64", - "\1\66\1\uffff\1\67", - "\12\17\7\uffff\32\17\4\uffff\1\17\1\uffff\32\17", - "\1\71", + "\1\64", + "\1\65", + "\1\66\1\67", + "\1\70\1\uffff\1\71", "\1\72", - "\1\73", - "\12\17\7\uffff\32\17\4\uffff\1\17\1\uffff\32\17", - "\12\17\7\uffff\32\17\4\uffff\1\17\1\uffff\32\17", - "", - "\1\76", - "\1\77", + "\12\20\7\uffff\32\20\4\uffff\1\20\1\uffff\32\20", + "\1\74", + "\1\75", + "\12\20\7\uffff\32\20\4\uffff\1\20\1\uffff\32\20", + "\12\20\7\uffff\32\20\4\uffff\1\20\1\uffff\32\20", "\1\100", "", - "", "\1\101", "\1\102", + "", + "", "\1\103", - "\1\104", - "\1\105", + "\1\104\104\uffff\1\105", "\1\106", "\1\107", + "", "\1\110", "\1\111", "\1\112", - "\12\17\7\uffff\32\17\4\uffff\1\17\1\uffff\32\17", + "\1\113", "\1\114", - "\12\17\7\uffff\32\17\4\uffff\1\17\1\uffff\32\17", - "", + "\1\115", "\1\116", + "\12\20\7\uffff\32\20\4\uffff\1\20\1\uffff\32\20", + "\12\20\7\uffff\32\20\4\uffff\1\20\1\uffff\32\20", + "\1\121", + "", "", - "\1\117", - "\1\120", - "\12\17\7\uffff\32\17\4\uffff\1\17\1\uffff\32\17", + "\1\122", + "\1\123", + "\12\20\7\uffff\32\20\4\uffff\1\20\1\uffff\32\20", "" }; @@ -979,7 +1036,7 @@ public class InternalConcreteTestLanguageLexer extends Lexer { this.transition = DFA12_transition; } public String getDescription() { - return "1:1: Tokens : ( T12 | T13 | T14 | T15 | T16 | T17 | T18 | T19 | RULE_REAL | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );"; + return "1:1: Tokens : ( T12 | T13 | T14 | T15 | T16 | T17 | T18 | T19 | T20 | T21 | RULE_REAL | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );"; } } diff --git a/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguageParser.java b/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguageParser.java index 8414556..2c2e6bc 100644 --- a/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguageParser.java +++ b/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguageParser.java @@ -22,14 +22,14 @@ import java.util.ArrayList; public class InternalConcreteTestLanguageParser extends AbstractInternalAntlrParser { public static final String[] tokenNames = new String[] { - "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_REAL", "RULE_ID", "RULE_STRING", "RULE_INT", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'model'", "':'", "'overriddenelement'", "'subrule1'", "'subrule3'", "'element'", "'overridemodel'", "'extendedmodel'" + "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_REAL", "RULE_ID", "RULE_INT", "RULE_STRING", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'model'", "':'", "'overriddenelement'", "'overridden other element'", "'-'", "'subrule1'", "'subrule3'", "'element'", "'overridemodel'", "'extendedmodel'" }; public static final int RULE_ML_COMMENT=8; public static final int RULE_ID=5; 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=6; + public static final int RULE_INT=6; + public static final int RULE_STRING=7; public static final int RULE_REAL=4; public static final int RULE_ANY_OTHER=11; public static final int RULE_SL_COMMENT=9; @@ -99,7 +99,7 @@ public class InternalConcreteTestLanguageParser extends AbstractInternalAntlrPar // $ANTLR start ruleRootRule - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:76:1: ruleRootRule returns [EObject current=null] : ( (this_ConcreteParserRule= ruleConcreteParserRule | this_CallOverridenParserRule= ruleCallOverridenParserRule ) | this_CallExtendedParserRule= ruleCallExtendedParserRule ) ; + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:76:1: ruleRootRule returns [EObject current=null] : ( ( (this_ConcreteParserRule= ruleConcreteParserRule | this_CallOverridenParserRule= ruleCallOverridenParserRule ) | this_CallExtendedParserRule= ruleCallExtendedParserRule ) | this_OverridableParserRule2= ruleOverridableParserRule2 ) ; public final EObject ruleRootRule() throws RecognitionException { EObject current = null; @@ -109,79 +109,124 @@ public class InternalConcreteTestLanguageParser extends AbstractInternalAntlrPar EObject this_CallExtendedParserRule = null; + EObject this_OverridableParserRule2 = null; + EObject temp=null; setCurrentLookahead(); resetLookahead(); try { - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:80:6: ( ( (this_ConcreteParserRule= ruleConcreteParserRule | this_CallOverridenParserRule= ruleCallOverridenParserRule ) | this_CallExtendedParserRule= ruleCallExtendedParserRule ) ) - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:81:1: ( (this_ConcreteParserRule= ruleConcreteParserRule | this_CallOverridenParserRule= ruleCallOverridenParserRule ) | this_CallExtendedParserRule= ruleCallExtendedParserRule ) + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:80:6: ( ( ( (this_ConcreteParserRule= ruleConcreteParserRule | this_CallOverridenParserRule= ruleCallOverridenParserRule ) | this_CallExtendedParserRule= ruleCallExtendedParserRule ) | this_OverridableParserRule2= ruleOverridableParserRule2 ) ) + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:81:1: ( ( (this_ConcreteParserRule= ruleConcreteParserRule | this_CallOverridenParserRule= ruleCallOverridenParserRule ) | this_CallExtendedParserRule= ruleCallExtendedParserRule ) | this_OverridableParserRule2= ruleOverridableParserRule2 ) { - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:81:1: ( (this_ConcreteParserRule= ruleConcreteParserRule | this_CallOverridenParserRule= ruleCallOverridenParserRule ) | this_CallExtendedParserRule= ruleCallExtendedParserRule ) - int alt2=2; - int LA2_0 = input.LA(1); + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:81:1: ( ( (this_ConcreteParserRule= ruleConcreteParserRule | this_CallOverridenParserRule= ruleCallOverridenParserRule ) | this_CallExtendedParserRule= ruleCallExtendedParserRule ) | this_OverridableParserRule2= ruleOverridableParserRule2 ) + int alt3=2; + int LA3_0 = input.LA(1); - if ( (LA2_0==12||LA2_0==18) ) { - alt2=1; + if ( (LA3_0==12||(LA3_0>=20 && LA3_0<=21)) ) { + alt3=1; } - else if ( (LA2_0==19) ) { - alt2=2; + else if ( (LA3_0==15) ) { + alt3=2; } else { NoViableAltException nvae = - new NoViableAltException("81:1: ( (this_ConcreteParserRule= ruleConcreteParserRule | this_CallOverridenParserRule= ruleCallOverridenParserRule ) | this_CallExtendedParserRule= ruleCallExtendedParserRule )", 2, 0, input); + new NoViableAltException("81:1: ( ( (this_ConcreteParserRule= ruleConcreteParserRule | this_CallOverridenParserRule= ruleCallOverridenParserRule ) | this_CallExtendedParserRule= ruleCallExtendedParserRule ) | this_OverridableParserRule2= ruleOverridableParserRule2 )", 3, 0, input); throw nvae; } - switch (alt2) { + switch (alt3) { case 1 : - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:81:2: (this_ConcreteParserRule= ruleConcreteParserRule | this_CallOverridenParserRule= ruleCallOverridenParserRule ) + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:81:2: ( (this_ConcreteParserRule= ruleConcreteParserRule | this_CallOverridenParserRule= ruleCallOverridenParserRule ) | this_CallExtendedParserRule= ruleCallExtendedParserRule ) { - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:81:2: (this_ConcreteParserRule= ruleConcreteParserRule | this_CallOverridenParserRule= ruleCallOverridenParserRule ) - int alt1=2; - int LA1_0 = input.LA(1); + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:81:2: ( (this_ConcreteParserRule= ruleConcreteParserRule | this_CallOverridenParserRule= ruleCallOverridenParserRule ) | this_CallExtendedParserRule= ruleCallExtendedParserRule ) + int alt2=2; + int LA2_0 = input.LA(1); - if ( (LA1_0==12) ) { - alt1=1; + if ( (LA2_0==12||LA2_0==20) ) { + alt2=1; } - else if ( (LA1_0==18) ) { - alt1=2; + else if ( (LA2_0==21) ) { + alt2=2; } else { NoViableAltException nvae = - new NoViableAltException("81:2: (this_ConcreteParserRule= ruleConcreteParserRule | this_CallOverridenParserRule= ruleCallOverridenParserRule )", 1, 0, input); + new NoViableAltException("81:2: ( (this_ConcreteParserRule= ruleConcreteParserRule | this_CallOverridenParserRule= ruleCallOverridenParserRule ) | this_CallExtendedParserRule= ruleCallExtendedParserRule )", 2, 0, input); throw nvae; } - switch (alt1) { + switch (alt2) { case 1 : - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:82:5: this_ConcreteParserRule= ruleConcreteParserRule + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:81:3: (this_ConcreteParserRule= ruleConcreteParserRule | this_CallOverridenParserRule= ruleCallOverridenParserRule ) { - - currentNode=createCompositeNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.0/@alternatives/@groups.0/@groups.0" /* xtext::RuleCall */, currentNode); - - pushFollow(FOLLOW_ruleConcreteParserRule_in_ruleRootRule130); - this_ConcreteParserRule=ruleConcreteParserRule(); - _fsp--; + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:81:3: (this_ConcreteParserRule= ruleConcreteParserRule | this_CallOverridenParserRule= ruleCallOverridenParserRule ) + int alt1=2; + int LA1_0 = input.LA(1); + + if ( (LA1_0==12) ) { + alt1=1; + } + else if ( (LA1_0==20) ) { + alt1=2; + } + else { + NoViableAltException nvae = + new NoViableAltException("81:3: (this_ConcreteParserRule= ruleConcreteParserRule | this_CallOverridenParserRule= ruleCallOverridenParserRule )", 1, 0, input); + + throw nvae; + } + switch (alt1) { + case 1 : + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:82:5: this_ConcreteParserRule= ruleConcreteParserRule + { + + currentNode=createCompositeNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.0/@alternatives/@groups.0/@groups.0/@groups.0" /* xtext::RuleCall */, currentNode); + + pushFollow(FOLLOW_ruleConcreteParserRule_in_ruleRootRule131); + this_ConcreteParserRule=ruleConcreteParserRule(); + _fsp--; + + + current = this_ConcreteParserRule; + currentNode = currentNode.getParent(); + + + } + break; + case 2 : + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:92:5: this_CallOverridenParserRule= ruleCallOverridenParserRule + { + + currentNode=createCompositeNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.0/@alternatives/@groups.0/@groups.0/@groups.1" /* xtext::RuleCall */, currentNode); + + pushFollow(FOLLOW_ruleCallOverridenParserRule_in_ruleRootRule158); + this_CallOverridenParserRule=ruleCallOverridenParserRule(); + _fsp--; + + + current = this_CallOverridenParserRule; + currentNode = currentNode.getParent(); + + + } + break; + + } - - current = this_ConcreteParserRule; - currentNode = currentNode.getParent(); - } break; case 2 : - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:92:5: this_CallOverridenParserRule= ruleCallOverridenParserRule + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:102:5: this_CallExtendedParserRule= ruleCallExtendedParserRule { currentNode=createCompositeNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.0/@alternatives/@groups.0/@groups.1" /* xtext::RuleCall */, currentNode); - pushFollow(FOLLOW_ruleCallOverridenParserRule_in_ruleRootRule157); - this_CallOverridenParserRule=ruleCallOverridenParserRule(); + pushFollow(FOLLOW_ruleCallExtendedParserRule_in_ruleRootRule186); + this_CallExtendedParserRule=ruleCallExtendedParserRule(); _fsp--; - current = this_CallOverridenParserRule; + current = this_CallExtendedParserRule; currentNode = currentNode.getParent(); @@ -194,17 +239,17 @@ public class InternalConcreteTestLanguageParser extends AbstractInternalAntlrPar } break; case 2 : - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:102:5: this_CallExtendedParserRule= ruleCallExtendedParserRule + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:112:5: this_OverridableParserRule2= ruleOverridableParserRule2 { currentNode=createCompositeNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.0/@alternatives/@groups.1" /* xtext::RuleCall */, currentNode); - pushFollow(FOLLOW_ruleCallExtendedParserRule_in_ruleRootRule185); - this_CallExtendedParserRule=ruleCallExtendedParserRule(); + pushFollow(FOLLOW_ruleOverridableParserRule2_in_ruleRootRule214); + this_OverridableParserRule2=ruleOverridableParserRule2(); _fsp--; - current = this_CallExtendedParserRule; + current = this_OverridableParserRule2; currentNode = currentNode.getParent(); @@ -232,7 +277,7 @@ public class InternalConcreteTestLanguageParser extends AbstractInternalAntlrPar // $ANTLR start entryRuleConcreteParserRule - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:119:1: entryRuleConcreteParserRule returns [EObject current=null] : iv_ruleConcreteParserRule= ruleConcreteParserRule EOF ; + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:129:1: entryRuleConcreteParserRule returns [EObject current=null] : iv_ruleConcreteParserRule= ruleConcreteParserRule EOF ; public final EObject entryRuleConcreteParserRule() throws RecognitionException { EObject current = null; @@ -240,16 +285,16 @@ public class InternalConcreteTestLanguageParser extends AbstractInternalAntlrPar try { - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:119:60: (iv_ruleConcreteParserRule= ruleConcreteParserRule EOF ) - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:120:2: iv_ruleConcreteParserRule= ruleConcreteParserRule EOF + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:129:60: (iv_ruleConcreteParserRule= ruleConcreteParserRule EOF ) + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:130:2: iv_ruleConcreteParserRule= ruleConcreteParserRule EOF { currentNode = createCompositeNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.1" /* xtext::ParserRule */, currentNode); - pushFollow(FOLLOW_ruleConcreteParserRule_in_entryRuleConcreteParserRule219); + pushFollow(FOLLOW_ruleConcreteParserRule_in_entryRuleConcreteParserRule248); iv_ruleConcreteParserRule=ruleConcreteParserRule(); _fsp--; current =iv_ruleConcreteParserRule; - match(input,EOF,FOLLOW_EOF_in_entryRuleConcreteParserRule229); + match(input,EOF,FOLLOW_EOF_in_entryRuleConcreteParserRule258); } @@ -267,7 +312,7 @@ public class InternalConcreteTestLanguageParser extends AbstractInternalAntlrPar // $ANTLR start ruleConcreteParserRule - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:127:1: ruleConcreteParserRule returns [EObject current=null] : ( ( ( 'model' (lv_magicNumber= RULE_REAL ) ) ':' ) (lv_elements= ruleInheritedParserRule )* ) ; + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:137:1: ruleConcreteParserRule returns [EObject current=null] : ( ( ( 'model' (lv_magicNumber= RULE_REAL ) ) ':' ) (lv_elements= ruleInheritedParserRule )* ) ; public final EObject ruleConcreteParserRule() throws RecognitionException { EObject current = null; @@ -278,27 +323,27 @@ public class InternalConcreteTestLanguageParser extends AbstractInternalAntlrPar EObject temp=null; setCurrentLookahead(); resetLookahead(); try { - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:131:6: ( ( ( ( 'model' (lv_magicNumber= RULE_REAL ) ) ':' ) (lv_elements= ruleInheritedParserRule )* ) ) - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:132:1: ( ( ( 'model' (lv_magicNumber= RULE_REAL ) ) ':' ) (lv_elements= ruleInheritedParserRule )* ) + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:141:6: ( ( ( ( 'model' (lv_magicNumber= RULE_REAL ) ) ':' ) (lv_elements= ruleInheritedParserRule )* ) ) + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:142:1: ( ( ( 'model' (lv_magicNumber= RULE_REAL ) ) ':' ) (lv_elements= ruleInheritedParserRule )* ) { - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:132:1: ( ( ( 'model' (lv_magicNumber= RULE_REAL ) ) ':' ) (lv_elements= ruleInheritedParserRule )* ) - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:132:2: ( ( 'model' (lv_magicNumber= RULE_REAL ) ) ':' ) (lv_elements= ruleInheritedParserRule )* + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:142:1: ( ( ( 'model' (lv_magicNumber= RULE_REAL ) ) ':' ) (lv_elements= ruleInheritedParserRule )* ) + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:142:2: ( ( 'model' (lv_magicNumber= RULE_REAL ) ) ':' ) (lv_elements= ruleInheritedParserRule )* { - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:132:2: ( ( 'model' (lv_magicNumber= RULE_REAL ) ) ':' ) - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:132:3: ( 'model' (lv_magicNumber= RULE_REAL ) ) ':' + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:142:2: ( ( 'model' (lv_magicNumber= RULE_REAL ) ) ':' ) + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:142:3: ( 'model' (lv_magicNumber= RULE_REAL ) ) ':' { - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:132:3: ( 'model' (lv_magicNumber= RULE_REAL ) ) - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:132:4: 'model' (lv_magicNumber= RULE_REAL ) + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:142:3: ( 'model' (lv_magicNumber= RULE_REAL ) ) + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:142:4: 'model' (lv_magicNumber= RULE_REAL ) { - match(input,12,FOLLOW_12_in_ruleConcreteParserRule265); + match(input,12,FOLLOW_12_in_ruleConcreteParserRule294); createLeafNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.1/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0" /* xtext::Keyword */, null); - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:136:1: (lv_magicNumber= RULE_REAL ) - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:138:6: lv_magicNumber= RULE_REAL + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:146:1: (lv_magicNumber= RULE_REAL ) + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:148:6: lv_magicNumber= RULE_REAL { lv_magicNumber=(Token)input.LT(1); - match(input,RULE_REAL,FOLLOW_RULE_REAL_in_ruleConcreteParserRule286); + match(input,RULE_REAL,FOLLOW_RULE_REAL_in_ruleConcreteParserRule315); createLeafNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.1/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1/@terminal" /* xtext::RuleCall */, "magicNumber"); @@ -320,32 +365,32 @@ public class InternalConcreteTestLanguageParser extends AbstractInternalAntlrPar } - match(input,13,FOLLOW_13_in_ruleConcreteParserRule307); + match(input,13,FOLLOW_13_in_ruleConcreteParserRule336); createLeafNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.1/@alternatives/@abstractTokens.0/@abstractTokens.1" /* xtext::Keyword */, null); } - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:160:2: (lv_elements= ruleInheritedParserRule )* - loop3: + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:170:2: (lv_elements= ruleInheritedParserRule )* + loop4: do { - int alt3=2; - int LA3_0 = input.LA(1); + int alt4=2; + int LA4_0 = input.LA(1); - if ( (LA3_0==17) ) { - alt3=1; + if ( (LA4_0==19) ) { + alt4=1; } - switch (alt3) { + switch (alt4) { case 1 : - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:163:6: lv_elements= ruleInheritedParserRule + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:173:6: lv_elements= ruleInheritedParserRule { currentNode=createCompositeNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.1/@alternatives/@abstractTokens.1/@terminal" /* xtext::RuleCall */, currentNode); - pushFollow(FOLLOW_ruleInheritedParserRule_in_ruleConcreteParserRule342); + pushFollow(FOLLOW_ruleInheritedParserRule_in_ruleConcreteParserRule371); lv_elements=ruleInheritedParserRule(); _fsp--; @@ -367,7 +412,7 @@ public class InternalConcreteTestLanguageParser extends AbstractInternalAntlrPar break; default : - break loop3; + break loop4; } } while (true); @@ -393,7 +438,7 @@ public class InternalConcreteTestLanguageParser extends AbstractInternalAntlrPar // $ANTLR start entryRuleOverridableParserRule - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:190:1: entryRuleOverridableParserRule returns [EObject current=null] : iv_ruleOverridableParserRule= ruleOverridableParserRule EOF ; + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:200:1: entryRuleOverridableParserRule returns [EObject current=null] : iv_ruleOverridableParserRule= ruleOverridableParserRule EOF ; public final EObject entryRuleOverridableParserRule() throws RecognitionException { EObject current = null; @@ -401,16 +446,16 @@ public class InternalConcreteTestLanguageParser extends AbstractInternalAntlrPar try { - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:190:63: (iv_ruleOverridableParserRule= ruleOverridableParserRule EOF ) - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:191:2: iv_ruleOverridableParserRule= ruleOverridableParserRule EOF + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:200:63: (iv_ruleOverridableParserRule= ruleOverridableParserRule EOF ) + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:201:2: iv_ruleOverridableParserRule= ruleOverridableParserRule EOF { currentNode = createCompositeNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.2" /* xtext::ParserRule */, currentNode); - pushFollow(FOLLOW_ruleOverridableParserRule_in_entryRuleOverridableParserRule382); + pushFollow(FOLLOW_ruleOverridableParserRule_in_entryRuleOverridableParserRule411); iv_ruleOverridableParserRule=ruleOverridableParserRule(); _fsp--; current =iv_ruleOverridableParserRule; - match(input,EOF,FOLLOW_EOF_in_entryRuleOverridableParserRule392); + match(input,EOF,FOLLOW_EOF_in_entryRuleOverridableParserRule421); } @@ -428,7 +473,7 @@ public class InternalConcreteTestLanguageParser extends AbstractInternalAntlrPar // $ANTLR start ruleOverridableParserRule - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:198:1: ruleOverridableParserRule returns [EObject current=null] : ( 'overriddenelement' (lv_name= RULE_ID ) ) ; + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:208:1: ruleOverridableParserRule returns [EObject current=null] : ( 'overriddenelement' (lv_name= RULE_ID ) ) ; public final EObject ruleOverridableParserRule() throws RecognitionException { EObject current = null; @@ -437,21 +482,21 @@ public class InternalConcreteTestLanguageParser extends AbstractInternalAntlrPar EObject temp=null; setCurrentLookahead(); resetLookahead(); try { - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:202:6: ( ( 'overriddenelement' (lv_name= RULE_ID ) ) ) - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:203:1: ( 'overriddenelement' (lv_name= RULE_ID ) ) + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:212:6: ( ( 'overriddenelement' (lv_name= RULE_ID ) ) ) + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:213:1: ( 'overriddenelement' (lv_name= RULE_ID ) ) { - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:203:1: ( 'overriddenelement' (lv_name= RULE_ID ) ) - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:203:2: 'overriddenelement' (lv_name= RULE_ID ) + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:213:1: ( 'overriddenelement' (lv_name= RULE_ID ) ) + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:213:2: 'overriddenelement' (lv_name= RULE_ID ) { - match(input,14,FOLLOW_14_in_ruleOverridableParserRule426); + match(input,14,FOLLOW_14_in_ruleOverridableParserRule455); createLeafNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.2/@alternatives/@abstractTokens.0" /* xtext::Keyword */, null); - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:207:1: (lv_name= RULE_ID ) - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:209:6: lv_name= RULE_ID + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:217:1: (lv_name= RULE_ID ) + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:219:6: lv_name= RULE_ID { lv_name=(Token)input.LT(1); - match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleOverridableParserRule447); + match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleOverridableParserRule476); createLeafNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.2/@alternatives/@abstractTokens.1/@terminal" /* xtext::RuleCall */, "name"); @@ -492,7 +537,7 @@ public class InternalConcreteTestLanguageParser extends AbstractInternalAntlrPar // $ANTLR start entryRuleCallOverridenParserRule - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:236:1: entryRuleCallOverridenParserRule returns [EObject current=null] : iv_ruleCallOverridenParserRule= ruleCallOverridenParserRule EOF ; + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:246:1: entryRuleCallOverridenParserRule returns [EObject current=null] : iv_ruleCallOverridenParserRule= ruleCallOverridenParserRule EOF ; public final EObject entryRuleCallOverridenParserRule() throws RecognitionException { EObject current = null; @@ -500,16 +545,16 @@ public class InternalConcreteTestLanguageParser extends AbstractInternalAntlrPar try { - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:236:65: (iv_ruleCallOverridenParserRule= ruleCallOverridenParserRule EOF ) - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:237:2: iv_ruleCallOverridenParserRule= ruleCallOverridenParserRule EOF + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:246:65: (iv_ruleCallOverridenParserRule= ruleCallOverridenParserRule EOF ) + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:247:2: iv_ruleCallOverridenParserRule= ruleCallOverridenParserRule EOF { currentNode = createCompositeNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.3" /* xtext::ParserRule */, currentNode); - pushFollow(FOLLOW_ruleCallOverridenParserRule_in_entryRuleCallOverridenParserRule493); + pushFollow(FOLLOW_ruleCallOverridenParserRule_in_entryRuleCallOverridenParserRule522); iv_ruleCallOverridenParserRule=ruleCallOverridenParserRule(); _fsp--; current =iv_ruleCallOverridenParserRule; - match(input,EOF,FOLLOW_EOF_in_entryRuleCallOverridenParserRule503); + match(input,EOF,FOLLOW_EOF_in_entryRuleCallOverridenParserRule532); } @@ -527,7 +572,7 @@ public class InternalConcreteTestLanguageParser extends AbstractInternalAntlrPar // $ANTLR start ruleCallOverridenParserRule - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:244:1: ruleCallOverridenParserRule returns [EObject current=null] : (lv_call= ruleAbstractCallOverridenParserRule ) ; + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:254:1: ruleCallOverridenParserRule returns [EObject current=null] : (lv_call= ruleAbstractCallOverridenParserRule ) ; public final EObject ruleCallOverridenParserRule() throws RecognitionException { EObject current = null; @@ -537,16 +582,16 @@ public class InternalConcreteTestLanguageParser extends AbstractInternalAntlrPar EObject temp=null; setCurrentLookahead(); resetLookahead(); try { - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:248:6: ( (lv_call= ruleAbstractCallOverridenParserRule ) ) - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:249:1: (lv_call= ruleAbstractCallOverridenParserRule ) + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:258:6: ( (lv_call= ruleAbstractCallOverridenParserRule ) ) + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:259:1: (lv_call= ruleAbstractCallOverridenParserRule ) { - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:249:1: (lv_call= ruleAbstractCallOverridenParserRule ) - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:252:6: lv_call= ruleAbstractCallOverridenParserRule + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:259:1: (lv_call= ruleAbstractCallOverridenParserRule ) + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:262:6: lv_call= ruleAbstractCallOverridenParserRule { currentNode=createCompositeNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.3/@alternatives/@terminal" /* xtext::RuleCall */, currentNode); - pushFollow(FOLLOW_ruleAbstractCallOverridenParserRule_in_ruleCallOverridenParserRule561); + pushFollow(FOLLOW_ruleAbstractCallOverridenParserRule_in_ruleCallOverridenParserRule590); lv_call=ruleAbstractCallOverridenParserRule(); _fsp--; @@ -584,8 +629,147 @@ public class InternalConcreteTestLanguageParser extends AbstractInternalAntlrPar // $ANTLR end ruleCallOverridenParserRule + // $ANTLR start entryRuleOverridableParserRule2 + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:289:1: entryRuleOverridableParserRule2 returns [EObject current=null] : iv_ruleOverridableParserRule2= ruleOverridableParserRule2 EOF ; + public final EObject entryRuleOverridableParserRule2() throws RecognitionException { + EObject current = null; + + EObject iv_ruleOverridableParserRule2 = null; + + + try { + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:289:64: (iv_ruleOverridableParserRule2= ruleOverridableParserRule2 EOF ) + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:290:2: iv_ruleOverridableParserRule2= ruleOverridableParserRule2 EOF + { + currentNode = createCompositeNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.4" /* xtext::ParserRule */, currentNode); + pushFollow(FOLLOW_ruleOverridableParserRule2_in_entryRuleOverridableParserRule2628); + iv_ruleOverridableParserRule2=ruleOverridableParserRule2(); + _fsp--; + + current =iv_ruleOverridableParserRule2; + match(input,EOF,FOLLOW_EOF_in_entryRuleOverridableParserRule2638); + + } + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end entryRuleOverridableParserRule2 + + + // $ANTLR start ruleOverridableParserRule2 + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:297:1: ruleOverridableParserRule2 returns [EObject current=null] : ( ( ( 'overridden other element' (lv_name= RULE_ID ) ) '-' ) (lv_age= RULE_INT ) ) ; + public final EObject ruleOverridableParserRule2() throws RecognitionException { + EObject current = null; + + Token lv_name=null; + Token lv_age=null; + + EObject temp=null; setCurrentLookahead(); resetLookahead(); + + try { + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:301:6: ( ( ( ( 'overridden other element' (lv_name= RULE_ID ) ) '-' ) (lv_age= RULE_INT ) ) ) + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:302:1: ( ( ( 'overridden other element' (lv_name= RULE_ID ) ) '-' ) (lv_age= RULE_INT ) ) + { + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:302:1: ( ( ( 'overridden other element' (lv_name= RULE_ID ) ) '-' ) (lv_age= RULE_INT ) ) + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:302:2: ( ( 'overridden other element' (lv_name= RULE_ID ) ) '-' ) (lv_age= RULE_INT ) + { + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:302:2: ( ( 'overridden other element' (lv_name= RULE_ID ) ) '-' ) + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:302:3: ( 'overridden other element' (lv_name= RULE_ID ) ) '-' + { + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:302:3: ( 'overridden other element' (lv_name= RULE_ID ) ) + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:302:4: 'overridden other element' (lv_name= RULE_ID ) + { + match(input,15,FOLLOW_15_in_ruleOverridableParserRule2674); + + createLeafNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.4/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.0" /* xtext::Keyword */, null); + + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:306:1: (lv_name= RULE_ID ) + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:308:6: lv_name= RULE_ID + { + lv_name=(Token)input.LT(1); + match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleOverridableParserRule2695); + + createLeafNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.4/@alternatives/@abstractTokens.0/@abstractTokens.0/@abstractTokens.1/@terminal" /* xtext::RuleCall */, "name"); + + + if (current==null) { + current = factory.create("AType2"); + associateNodeWithAstElement(currentNode, current); + } + + try { + factory.set(current, "name", lv_name, "ID", currentNode); + } catch (ValueConverterException vce) { + handleValueConverterException(vce); + } + + + } + + + } + + match(input,16,FOLLOW_16_in_ruleOverridableParserRule2716); + + createLeafNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.4/@alternatives/@abstractTokens.0/@abstractTokens.1" /* xtext::Keyword */, null); + + + } + + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:330:2: (lv_age= RULE_INT ) + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:332:6: lv_age= RULE_INT + { + lv_age=(Token)input.LT(1); + match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleOverridableParserRule2738); + + createLeafNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.4/@alternatives/@abstractTokens.1/@terminal" /* xtext::RuleCall */, "age"); + + + if (current==null) { + current = factory.create("AType2"); + associateNodeWithAstElement(currentNode, current); + } + + try { + factory.set(current, "age", lv_age, "INT", currentNode); + } catch (ValueConverterException vce) { + handleValueConverterException(vce); + } + + + } + + + } + + + } + + resetLookahead(); + + } + + catch (RecognitionException re) { + recover(input,re); + appendSkippedTokens(); + } + finally { + } + return current; + } + // $ANTLR end ruleOverridableParserRule2 + + // $ANTLR start entryRuleExtendableParserRule - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:279:1: entryRuleExtendableParserRule returns [EObject current=null] : iv_ruleExtendableParserRule= ruleExtendableParserRule EOF ; + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:359:1: entryRuleExtendableParserRule returns [EObject current=null] : iv_ruleExtendableParserRule= ruleExtendableParserRule EOF ; public final EObject entryRuleExtendableParserRule() throws RecognitionException { EObject current = null; @@ -593,16 +777,16 @@ public class InternalConcreteTestLanguageParser extends AbstractInternalAntlrPar try { - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:279:62: (iv_ruleExtendableParserRule= ruleExtendableParserRule EOF ) - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:280:2: iv_ruleExtendableParserRule= ruleExtendableParserRule EOF + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:359:62: (iv_ruleExtendableParserRule= ruleExtendableParserRule EOF ) + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:360:2: iv_ruleExtendableParserRule= ruleExtendableParserRule EOF { - currentNode = createCompositeNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.4" /* xtext::ParserRule */, currentNode); - pushFollow(FOLLOW_ruleExtendableParserRule_in_entryRuleExtendableParserRule599); + currentNode = createCompositeNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.5" /* xtext::ParserRule */, currentNode); + pushFollow(FOLLOW_ruleExtendableParserRule_in_entryRuleExtendableParserRule784); iv_ruleExtendableParserRule=ruleExtendableParserRule(); _fsp--; current =iv_ruleExtendableParserRule; - match(input,EOF,FOLLOW_EOF_in_entryRuleExtendableParserRule609); + match(input,EOF,FOLLOW_EOF_in_entryRuleExtendableParserRule794); } @@ -620,7 +804,7 @@ public class InternalConcreteTestLanguageParser extends AbstractInternalAntlrPar // $ANTLR start ruleExtendableParserRule - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:287:1: ruleExtendableParserRule returns [EObject current=null] : ( (this_Subrule1= ruleSubrule1 | this_Subrule2= ruleSubrule2 ) | this_Subrule3= ruleSubrule3 ) ; + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:367:1: ruleExtendableParserRule returns [EObject current=null] : ( (this_Subrule1= ruleSubrule1 | this_Subrule2= ruleSubrule2 ) | this_Subrule3= ruleSubrule3 ) ; public final EObject ruleExtendableParserRule() throws RecognitionException { EObject current = null; @@ -634,76 +818,76 @@ public class InternalConcreteTestLanguageParser extends AbstractInternalAntlrPar EObject temp=null; setCurrentLookahead(); resetLookahead(); try { - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:291:6: ( ( (this_Subrule1= ruleSubrule1 | this_Subrule2= ruleSubrule2 ) | this_Subrule3= ruleSubrule3 ) ) - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:292:1: ( (this_Subrule1= ruleSubrule1 | this_Subrule2= ruleSubrule2 ) | this_Subrule3= ruleSubrule3 ) + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:371:6: ( ( (this_Subrule1= ruleSubrule1 | this_Subrule2= ruleSubrule2 ) | this_Subrule3= ruleSubrule3 ) ) + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:372:1: ( (this_Subrule1= ruleSubrule1 | this_Subrule2= ruleSubrule2 ) | this_Subrule3= ruleSubrule3 ) { - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:292:1: ( (this_Subrule1= ruleSubrule1 | this_Subrule2= ruleSubrule2 ) | this_Subrule3= ruleSubrule3 ) - int alt5=2; - int LA5_0 = input.LA(1); + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:372:1: ( (this_Subrule1= ruleSubrule1 | this_Subrule2= ruleSubrule2 ) | this_Subrule3= ruleSubrule3 ) + int alt6=2; + int LA6_0 = input.LA(1); - if ( (LA5_0==15) ) { - alt5=1; + if ( (LA6_0==17) ) { + alt6=1; } - else if ( (LA5_0==16) ) { - int LA5_2 = input.LA(2); + else if ( (LA6_0==18) ) { + int LA6_2 = input.LA(2); - if ( (LA5_2==RULE_ID) ) { - int LA5_3 = input.LA(3); + if ( (LA6_2==RULE_ID) ) { + int LA6_3 = input.LA(3); - if ( (LA5_3==RULE_STRING) ) { - alt5=1; + if ( (LA6_3==RULE_INT) ) { + alt6=2; } - else if ( (LA5_3==RULE_INT) ) { - alt5=2; + else if ( (LA6_3==RULE_STRING) ) { + alt6=1; } else { NoViableAltException nvae = - new NoViableAltException("292:1: ( (this_Subrule1= ruleSubrule1 | this_Subrule2= ruleSubrule2 ) | this_Subrule3= ruleSubrule3 )", 5, 3, input); + new NoViableAltException("372:1: ( (this_Subrule1= ruleSubrule1 | this_Subrule2= ruleSubrule2 ) | this_Subrule3= ruleSubrule3 )", 6, 3, input); throw nvae; } } else { NoViableAltException nvae = - new NoViableAltException("292:1: ( (this_Subrule1= ruleSubrule1 | this_Subrule2= ruleSubrule2 ) | this_Subrule3= ruleSubrule3 )", 5, 2, input); + new NoViableAltException("372:1: ( (this_Subrule1= ruleSubrule1 | this_Subrule2= ruleSubrule2 ) | this_Subrule3= ruleSubrule3 )", 6, 2, input); throw nvae; } } else { NoViableAltException nvae = - new NoViableAltException("292:1: ( (this_Subrule1= ruleSubrule1 | this_Subrule2= ruleSubrule2 ) | this_Subrule3= ruleSubrule3 )", 5, 0, input); + new NoViableAltException("372:1: ( (this_Subrule1= ruleSubrule1 | this_Subrule2= ruleSubrule2 ) | this_Subrule3= ruleSubrule3 )", 6, 0, input); throw nvae; } - switch (alt5) { + switch (alt6) { case 1 : - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:292:2: (this_Subrule1= ruleSubrule1 | this_Subrule2= ruleSubrule2 ) + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:372:2: (this_Subrule1= ruleSubrule1 | this_Subrule2= ruleSubrule2 ) { - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:292:2: (this_Subrule1= ruleSubrule1 | this_Subrule2= ruleSubrule2 ) - int alt4=2; - int LA4_0 = input.LA(1); + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:372:2: (this_Subrule1= ruleSubrule1 | this_Subrule2= ruleSubrule2 ) + int alt5=2; + int LA5_0 = input.LA(1); - if ( (LA4_0==15) ) { - alt4=1; + if ( (LA5_0==17) ) { + alt5=1; } - else if ( (LA4_0==16) ) { - alt4=2; + else if ( (LA5_0==18) ) { + alt5=2; } else { NoViableAltException nvae = - new NoViableAltException("292:2: (this_Subrule1= ruleSubrule1 | this_Subrule2= ruleSubrule2 )", 4, 0, input); + new NoViableAltException("372:2: (this_Subrule1= ruleSubrule1 | this_Subrule2= ruleSubrule2 )", 5, 0, input); throw nvae; } - switch (alt4) { + switch (alt5) { case 1 : - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:293:5: this_Subrule1= ruleSubrule1 + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:373:5: this_Subrule1= ruleSubrule1 { - currentNode=createCompositeNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.4/@alternatives/@groups.0/@groups.0" /* xtext::RuleCall */, currentNode); + currentNode=createCompositeNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.5/@alternatives/@groups.0/@groups.0" /* xtext::RuleCall */, currentNode); - pushFollow(FOLLOW_ruleSubrule1_in_ruleExtendableParserRule657); + pushFollow(FOLLOW_ruleSubrule1_in_ruleExtendableParserRule842); this_Subrule1=ruleSubrule1(); _fsp--; @@ -715,12 +899,12 @@ public class InternalConcreteTestLanguageParser extends AbstractInternalAntlrPar } break; case 2 : - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:303:5: this_Subrule2= ruleSubrule2 + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:383:5: this_Subrule2= ruleSubrule2 { - currentNode=createCompositeNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.4/@alternatives/@groups.0/@groups.1" /* xtext::RuleCall */, currentNode); + currentNode=createCompositeNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.5/@alternatives/@groups.0/@groups.1" /* xtext::RuleCall */, currentNode); - pushFollow(FOLLOW_ruleSubrule2_in_ruleExtendableParserRule684); + pushFollow(FOLLOW_ruleSubrule2_in_ruleExtendableParserRule869); this_Subrule2=ruleSubrule2(); _fsp--; @@ -738,12 +922,12 @@ public class InternalConcreteTestLanguageParser extends AbstractInternalAntlrPar } break; case 2 : - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:313:5: this_Subrule3= ruleSubrule3 + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:393:5: this_Subrule3= ruleSubrule3 { - currentNode=createCompositeNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.4/@alternatives/@groups.1" /* xtext::RuleCall */, currentNode); + currentNode=createCompositeNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.5/@alternatives/@groups.1" /* xtext::RuleCall */, currentNode); - pushFollow(FOLLOW_ruleSubrule3_in_ruleExtendableParserRule712); + pushFollow(FOLLOW_ruleSubrule3_in_ruleExtendableParserRule897); this_Subrule3=ruleSubrule3(); _fsp--; @@ -776,7 +960,7 @@ public class InternalConcreteTestLanguageParser extends AbstractInternalAntlrPar // $ANTLR start entryRuleSubrule1 - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:330:1: entryRuleSubrule1 returns [EObject current=null] : iv_ruleSubrule1= ruleSubrule1 EOF ; + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:410:1: entryRuleSubrule1 returns [EObject current=null] : iv_ruleSubrule1= ruleSubrule1 EOF ; public final EObject entryRuleSubrule1() throws RecognitionException { EObject current = null; @@ -784,16 +968,16 @@ public class InternalConcreteTestLanguageParser extends AbstractInternalAntlrPar try { - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:330:50: (iv_ruleSubrule1= ruleSubrule1 EOF ) - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:331:2: iv_ruleSubrule1= ruleSubrule1 EOF + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:410:50: (iv_ruleSubrule1= ruleSubrule1 EOF ) + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:411:2: iv_ruleSubrule1= ruleSubrule1 EOF { - currentNode = createCompositeNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.5" /* xtext::ParserRule */, currentNode); - pushFollow(FOLLOW_ruleSubrule1_in_entryRuleSubrule1746); + currentNode = createCompositeNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.6" /* xtext::ParserRule */, currentNode); + pushFollow(FOLLOW_ruleSubrule1_in_entryRuleSubrule1931); iv_ruleSubrule1=ruleSubrule1(); _fsp--; current =iv_ruleSubrule1; - match(input,EOF,FOLLOW_EOF_in_entryRuleSubrule1756); + match(input,EOF,FOLLOW_EOF_in_entryRuleSubrule1941); } @@ -811,7 +995,7 @@ public class InternalConcreteTestLanguageParser extends AbstractInternalAntlrPar // $ANTLR start ruleSubrule1 - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:338:1: ruleSubrule1 returns [EObject current=null] : ( ( 'subrule1' (lv_name= RULE_ID ) ) (lv_sub1= RULE_ID ) ) ; + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:418:1: ruleSubrule1 returns [EObject current=null] : ( ( 'subrule1' (lv_name= RULE_ID ) ) (lv_sub1= RULE_ID ) ) ; public final EObject ruleSubrule1() throws RecognitionException { EObject current = null; @@ -821,26 +1005,26 @@ public class InternalConcreteTestLanguageParser extends AbstractInternalAntlrPar EObject temp=null; setCurrentLookahead(); resetLookahead(); try { - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:342:6: ( ( ( 'subrule1' (lv_name= RULE_ID ) ) (lv_sub1= RULE_ID ) ) ) - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:343:1: ( ( 'subrule1' (lv_name= RULE_ID ) ) (lv_sub1= RULE_ID ) ) + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:422:6: ( ( ( 'subrule1' (lv_name= RULE_ID ) ) (lv_sub1= RULE_ID ) ) ) + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:423:1: ( ( 'subrule1' (lv_name= RULE_ID ) ) (lv_sub1= RULE_ID ) ) { - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:343:1: ( ( 'subrule1' (lv_name= RULE_ID ) ) (lv_sub1= RULE_ID ) ) - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:343:2: ( 'subrule1' (lv_name= RULE_ID ) ) (lv_sub1= RULE_ID ) + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:423:1: ( ( 'subrule1' (lv_name= RULE_ID ) ) (lv_sub1= RULE_ID ) ) + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:423:2: ( 'subrule1' (lv_name= RULE_ID ) ) (lv_sub1= RULE_ID ) { - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:343:2: ( 'subrule1' (lv_name= RULE_ID ) ) - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:343:3: 'subrule1' (lv_name= RULE_ID ) + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:423:2: ( 'subrule1' (lv_name= RULE_ID ) ) + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:423:3: 'subrule1' (lv_name= RULE_ID ) { - match(input,15,FOLLOW_15_in_ruleSubrule1791); + match(input,17,FOLLOW_17_in_ruleSubrule1976); - createLeafNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.5/@alternatives/@abstractTokens.0/@abstractTokens.0" /* xtext::Keyword */, null); + createLeafNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.6/@alternatives/@abstractTokens.0/@abstractTokens.0" /* xtext::Keyword */, null); - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:347:1: (lv_name= RULE_ID ) - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:349:6: lv_name= RULE_ID + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:427:1: (lv_name= RULE_ID ) + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:429:6: lv_name= RULE_ID { lv_name=(Token)input.LT(1); - match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleSubrule1812); + match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleSubrule1997); - createLeafNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.5/@alternatives/@abstractTokens.0/@abstractTokens.1/@terminal" /* xtext::RuleCall */, "name"); + createLeafNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.6/@alternatives/@abstractTokens.0/@abstractTokens.1/@terminal" /* xtext::RuleCall */, "name"); if (current==null) { @@ -860,13 +1044,13 @@ public class InternalConcreteTestLanguageParser extends AbstractInternalAntlrPar } - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:367:3: (lv_sub1= RULE_ID ) - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:369:6: lv_sub1= RULE_ID + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:447:3: (lv_sub1= RULE_ID ) + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:449:6: lv_sub1= RULE_ID { lv_sub1=(Token)input.LT(1); - match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleSubrule1845); + match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleSubrule11030); - createLeafNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.5/@alternatives/@abstractTokens.1/@terminal" /* xtext::RuleCall */, "sub1"); + createLeafNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.6/@alternatives/@abstractTokens.1/@terminal" /* xtext::RuleCall */, "sub1"); if (current==null) { @@ -905,7 +1089,7 @@ public class InternalConcreteTestLanguageParser extends AbstractInternalAntlrPar // $ANTLR start entryRuleSubrule2 - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:396:1: entryRuleSubrule2 returns [EObject current=null] : iv_ruleSubrule2= ruleSubrule2 EOF ; + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:476:1: entryRuleSubrule2 returns [EObject current=null] : iv_ruleSubrule2= ruleSubrule2 EOF ; public final EObject entryRuleSubrule2() throws RecognitionException { EObject current = null; @@ -913,16 +1097,16 @@ public class InternalConcreteTestLanguageParser extends AbstractInternalAntlrPar try { - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:396:50: (iv_ruleSubrule2= ruleSubrule2 EOF ) - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:397:2: iv_ruleSubrule2= ruleSubrule2 EOF + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:476:50: (iv_ruleSubrule2= ruleSubrule2 EOF ) + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:477:2: iv_ruleSubrule2= ruleSubrule2 EOF { - currentNode = createCompositeNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.6" /* xtext::ParserRule */, currentNode); - pushFollow(FOLLOW_ruleSubrule2_in_entryRuleSubrule2891); + currentNode = createCompositeNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.7" /* xtext::ParserRule */, currentNode); + pushFollow(FOLLOW_ruleSubrule2_in_entryRuleSubrule21076); iv_ruleSubrule2=ruleSubrule2(); _fsp--; current =iv_ruleSubrule2; - match(input,EOF,FOLLOW_EOF_in_entryRuleSubrule2901); + match(input,EOF,FOLLOW_EOF_in_entryRuleSubrule21086); } @@ -940,7 +1124,7 @@ public class InternalConcreteTestLanguageParser extends AbstractInternalAntlrPar // $ANTLR start ruleSubrule2 - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:404:1: ruleSubrule2 returns [EObject current=null] : ( ( 'subrule3' (lv_name= RULE_ID ) ) (lv_sub2= RULE_STRING ) ) ; + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:484:1: ruleSubrule2 returns [EObject current=null] : ( ( 'subrule3' (lv_name= RULE_ID ) ) (lv_sub2= RULE_STRING ) ) ; public final EObject ruleSubrule2() throws RecognitionException { EObject current = null; @@ -950,26 +1134,26 @@ public class InternalConcreteTestLanguageParser extends AbstractInternalAntlrPar EObject temp=null; setCurrentLookahead(); resetLookahead(); try { - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:408:6: ( ( ( 'subrule3' (lv_name= RULE_ID ) ) (lv_sub2= RULE_STRING ) ) ) - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:409:1: ( ( 'subrule3' (lv_name= RULE_ID ) ) (lv_sub2= RULE_STRING ) ) + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:488:6: ( ( ( 'subrule3' (lv_name= RULE_ID ) ) (lv_sub2= RULE_STRING ) ) ) + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:489:1: ( ( 'subrule3' (lv_name= RULE_ID ) ) (lv_sub2= RULE_STRING ) ) { - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:409:1: ( ( 'subrule3' (lv_name= RULE_ID ) ) (lv_sub2= RULE_STRING ) ) - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:409:2: ( 'subrule3' (lv_name= RULE_ID ) ) (lv_sub2= RULE_STRING ) + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:489:1: ( ( 'subrule3' (lv_name= RULE_ID ) ) (lv_sub2= RULE_STRING ) ) + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:489:2: ( 'subrule3' (lv_name= RULE_ID ) ) (lv_sub2= RULE_STRING ) { - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:409:2: ( 'subrule3' (lv_name= RULE_ID ) ) - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:409:3: 'subrule3' (lv_name= RULE_ID ) + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:489:2: ( 'subrule3' (lv_name= RULE_ID ) ) + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:489:3: 'subrule3' (lv_name= RULE_ID ) { - match(input,16,FOLLOW_16_in_ruleSubrule2936); + match(input,18,FOLLOW_18_in_ruleSubrule21121); - createLeafNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.6/@alternatives/@abstractTokens.0/@abstractTokens.0" /* xtext::Keyword */, null); + createLeafNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.7/@alternatives/@abstractTokens.0/@abstractTokens.0" /* xtext::Keyword */, null); - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:413:1: (lv_name= RULE_ID ) - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:415:6: lv_name= RULE_ID + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:493:1: (lv_name= RULE_ID ) + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:495:6: lv_name= RULE_ID { lv_name=(Token)input.LT(1); - match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleSubrule2957); + match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleSubrule21142); - createLeafNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.6/@alternatives/@abstractTokens.0/@abstractTokens.1/@terminal" /* xtext::RuleCall */, "name"); + createLeafNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.7/@alternatives/@abstractTokens.0/@abstractTokens.1/@terminal" /* xtext::RuleCall */, "name"); if (current==null) { @@ -989,13 +1173,13 @@ public class InternalConcreteTestLanguageParser extends AbstractInternalAntlrPar } - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:433:3: (lv_sub2= RULE_STRING ) - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:435:6: lv_sub2= RULE_STRING + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:513:3: (lv_sub2= RULE_STRING ) + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:515:6: lv_sub2= RULE_STRING { lv_sub2=(Token)input.LT(1); - match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleSubrule2990); + match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleSubrule21175); - createLeafNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.6/@alternatives/@abstractTokens.1/@terminal" /* xtext::RuleCall */, "sub2"); + createLeafNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.7/@alternatives/@abstractTokens.1/@terminal" /* xtext::RuleCall */, "sub2"); if (current==null) { @@ -1034,7 +1218,7 @@ public class InternalConcreteTestLanguageParser extends AbstractInternalAntlrPar // $ANTLR start entryRuleSubrule3 - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:462:1: entryRuleSubrule3 returns [EObject current=null] : iv_ruleSubrule3= ruleSubrule3 EOF ; + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:542:1: entryRuleSubrule3 returns [EObject current=null] : iv_ruleSubrule3= ruleSubrule3 EOF ; public final EObject entryRuleSubrule3() throws RecognitionException { EObject current = null; @@ -1042,16 +1226,16 @@ public class InternalConcreteTestLanguageParser extends AbstractInternalAntlrPar try { - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:462:50: (iv_ruleSubrule3= ruleSubrule3 EOF ) - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:463:2: iv_ruleSubrule3= ruleSubrule3 EOF + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:542:50: (iv_ruleSubrule3= ruleSubrule3 EOF ) + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:543:2: iv_ruleSubrule3= ruleSubrule3 EOF { - currentNode = createCompositeNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.7" /* xtext::ParserRule */, currentNode); - pushFollow(FOLLOW_ruleSubrule3_in_entryRuleSubrule31036); + currentNode = createCompositeNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.8" /* xtext::ParserRule */, currentNode); + pushFollow(FOLLOW_ruleSubrule3_in_entryRuleSubrule31221); iv_ruleSubrule3=ruleSubrule3(); _fsp--; current =iv_ruleSubrule3; - match(input,EOF,FOLLOW_EOF_in_entryRuleSubrule31046); + match(input,EOF,FOLLOW_EOF_in_entryRuleSubrule31231); } @@ -1069,7 +1253,7 @@ public class InternalConcreteTestLanguageParser extends AbstractInternalAntlrPar // $ANTLR start ruleSubrule3 - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:470:1: ruleSubrule3 returns [EObject current=null] : ( ( 'subrule3' (lv_name= RULE_ID ) ) (lv_sub1= RULE_INT ) ) ; + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:550:1: ruleSubrule3 returns [EObject current=null] : ( ( 'subrule3' (lv_name= RULE_ID ) ) (lv_sub1= RULE_INT ) ) ; public final EObject ruleSubrule3() throws RecognitionException { EObject current = null; @@ -1079,26 +1263,26 @@ public class InternalConcreteTestLanguageParser extends AbstractInternalAntlrPar EObject temp=null; setCurrentLookahead(); resetLookahead(); try { - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:474:6: ( ( ( 'subrule3' (lv_name= RULE_ID ) ) (lv_sub1= RULE_INT ) ) ) - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:475:1: ( ( 'subrule3' (lv_name= RULE_ID ) ) (lv_sub1= RULE_INT ) ) + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:554:6: ( ( ( 'subrule3' (lv_name= RULE_ID ) ) (lv_sub1= RULE_INT ) ) ) + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:555:1: ( ( 'subrule3' (lv_name= RULE_ID ) ) (lv_sub1= RULE_INT ) ) { - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:475:1: ( ( 'subrule3' (lv_name= RULE_ID ) ) (lv_sub1= RULE_INT ) ) - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:475:2: ( 'subrule3' (lv_name= RULE_ID ) ) (lv_sub1= RULE_INT ) + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:555:1: ( ( 'subrule3' (lv_name= RULE_ID ) ) (lv_sub1= RULE_INT ) ) + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:555:2: ( 'subrule3' (lv_name= RULE_ID ) ) (lv_sub1= RULE_INT ) { - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:475:2: ( 'subrule3' (lv_name= RULE_ID ) ) - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:475:3: 'subrule3' (lv_name= RULE_ID ) + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:555:2: ( 'subrule3' (lv_name= RULE_ID ) ) + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:555:3: 'subrule3' (lv_name= RULE_ID ) { - match(input,16,FOLLOW_16_in_ruleSubrule31081); + match(input,18,FOLLOW_18_in_ruleSubrule31266); - createLeafNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.7/@alternatives/@abstractTokens.0/@abstractTokens.0" /* xtext::Keyword */, null); + createLeafNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.8/@alternatives/@abstractTokens.0/@abstractTokens.0" /* xtext::Keyword */, null); - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:479:1: (lv_name= RULE_ID ) - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:481:6: lv_name= RULE_ID + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:559:1: (lv_name= RULE_ID ) + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:561:6: lv_name= RULE_ID { lv_name=(Token)input.LT(1); - match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleSubrule31102); + match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleSubrule31287); - createLeafNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.7/@alternatives/@abstractTokens.0/@abstractTokens.1/@terminal" /* xtext::RuleCall */, "name"); + createLeafNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.8/@alternatives/@abstractTokens.0/@abstractTokens.1/@terminal" /* xtext::RuleCall */, "name"); if (current==null) { @@ -1118,13 +1302,13 @@ public class InternalConcreteTestLanguageParser extends AbstractInternalAntlrPar } - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:499:3: (lv_sub1= RULE_INT ) - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:501:6: lv_sub1= RULE_INT + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:579:3: (lv_sub1= RULE_INT ) + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:581:6: lv_sub1= RULE_INT { lv_sub1=(Token)input.LT(1); - match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleSubrule31135); + match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleSubrule31320); - createLeafNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.7/@alternatives/@abstractTokens.1/@terminal" /* xtext::RuleCall */, "sub1"); + createLeafNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.8/@alternatives/@abstractTokens.1/@terminal" /* xtext::RuleCall */, "sub1"); if (current==null) { @@ -1163,7 +1347,7 @@ public class InternalConcreteTestLanguageParser extends AbstractInternalAntlrPar // $ANTLR start entryRuleCallExtendedParserRule - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:528:1: entryRuleCallExtendedParserRule returns [EObject current=null] : iv_ruleCallExtendedParserRule= ruleCallExtendedParserRule EOF ; + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:608:1: entryRuleCallExtendedParserRule returns [EObject current=null] : iv_ruleCallExtendedParserRule= ruleCallExtendedParserRule EOF ; public final EObject entryRuleCallExtendedParserRule() throws RecognitionException { EObject current = null; @@ -1171,16 +1355,16 @@ public class InternalConcreteTestLanguageParser extends AbstractInternalAntlrPar try { - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:528:64: (iv_ruleCallExtendedParserRule= ruleCallExtendedParserRule EOF ) - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:529:2: iv_ruleCallExtendedParserRule= ruleCallExtendedParserRule EOF + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:608:64: (iv_ruleCallExtendedParserRule= ruleCallExtendedParserRule EOF ) + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:609:2: iv_ruleCallExtendedParserRule= ruleCallExtendedParserRule EOF { - currentNode = createCompositeNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.8" /* xtext::ParserRule */, currentNode); - pushFollow(FOLLOW_ruleCallExtendedParserRule_in_entryRuleCallExtendedParserRule1181); + currentNode = createCompositeNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.9" /* xtext::ParserRule */, currentNode); + pushFollow(FOLLOW_ruleCallExtendedParserRule_in_entryRuleCallExtendedParserRule1366); iv_ruleCallExtendedParserRule=ruleCallExtendedParserRule(); _fsp--; current =iv_ruleCallExtendedParserRule; - match(input,EOF,FOLLOW_EOF_in_entryRuleCallExtendedParserRule1191); + match(input,EOF,FOLLOW_EOF_in_entryRuleCallExtendedParserRule1376); } @@ -1198,7 +1382,7 @@ public class InternalConcreteTestLanguageParser extends AbstractInternalAntlrPar // $ANTLR start ruleCallExtendedParserRule - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:536:1: ruleCallExtendedParserRule returns [EObject current=null] : (lv_call= ruleAbstractCallExtendedParserRule ) ; + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:616:1: ruleCallExtendedParserRule returns [EObject current=null] : (lv_call= ruleAbstractCallExtendedParserRule ) ; public final EObject ruleCallExtendedParserRule() throws RecognitionException { EObject current = null; @@ -1208,16 +1392,16 @@ public class InternalConcreteTestLanguageParser extends AbstractInternalAntlrPar EObject temp=null; setCurrentLookahead(); resetLookahead(); try { - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:540:6: ( (lv_call= ruleAbstractCallExtendedParserRule ) ) - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:541:1: (lv_call= ruleAbstractCallExtendedParserRule ) + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:620:6: ( (lv_call= ruleAbstractCallExtendedParserRule ) ) + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:621:1: (lv_call= ruleAbstractCallExtendedParserRule ) { - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:541:1: (lv_call= ruleAbstractCallExtendedParserRule ) - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:544:6: lv_call= ruleAbstractCallExtendedParserRule + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:621:1: (lv_call= ruleAbstractCallExtendedParserRule ) + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:624:6: lv_call= ruleAbstractCallExtendedParserRule { - currentNode=createCompositeNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.8/@alternatives/@terminal" /* xtext::RuleCall */, currentNode); + currentNode=createCompositeNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/0/@rules.9/@alternatives/@terminal" /* xtext::RuleCall */, currentNode); - pushFollow(FOLLOW_ruleAbstractCallExtendedParserRule_in_ruleCallExtendedParserRule1249); + pushFollow(FOLLOW_ruleAbstractCallExtendedParserRule_in_ruleCallExtendedParserRule1434); lv_call=ruleAbstractCallExtendedParserRule(); _fsp--; @@ -1256,7 +1440,7 @@ public class InternalConcreteTestLanguageParser extends AbstractInternalAntlrPar // $ANTLR start entryRuleInheritedParserRule - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:571:1: entryRuleInheritedParserRule returns [EObject current=null] : iv_ruleInheritedParserRule= ruleInheritedParserRule EOF ; + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:651:1: entryRuleInheritedParserRule returns [EObject current=null] : iv_ruleInheritedParserRule= ruleInheritedParserRule EOF ; public final EObject entryRuleInheritedParserRule() throws RecognitionException { EObject current = null; @@ -1264,16 +1448,16 @@ public class InternalConcreteTestLanguageParser extends AbstractInternalAntlrPar try { - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:571:61: (iv_ruleInheritedParserRule= ruleInheritedParserRule EOF ) - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:572:2: iv_ruleInheritedParserRule= ruleInheritedParserRule EOF + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:651:61: (iv_ruleInheritedParserRule= ruleInheritedParserRule EOF ) + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:652:2: iv_ruleInheritedParserRule= ruleInheritedParserRule EOF { currentNode = createCompositeNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/1/@rules.0" /* xtext::ParserRule */, currentNode); - pushFollow(FOLLOW_ruleInheritedParserRule_in_entryRuleInheritedParserRule1287); + pushFollow(FOLLOW_ruleInheritedParserRule_in_entryRuleInheritedParserRule1472); iv_ruleInheritedParserRule=ruleInheritedParserRule(); _fsp--; current =iv_ruleInheritedParserRule; - match(input,EOF,FOLLOW_EOF_in_entryRuleInheritedParserRule1297); + match(input,EOF,FOLLOW_EOF_in_entryRuleInheritedParserRule1482); } @@ -1291,7 +1475,7 @@ public class InternalConcreteTestLanguageParser extends AbstractInternalAntlrPar // $ANTLR start ruleInheritedParserRule - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:579:1: ruleInheritedParserRule returns [EObject current=null] : ( 'element' (lv_name= RULE_ID ) ) ; + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:659:1: ruleInheritedParserRule returns [EObject current=null] : ( 'element' (lv_name= RULE_ID ) ) ; public final EObject ruleInheritedParserRule() throws RecognitionException { EObject current = null; @@ -1300,21 +1484,21 @@ public class InternalConcreteTestLanguageParser extends AbstractInternalAntlrPar EObject temp=null; setCurrentLookahead(); resetLookahead(); try { - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:583:6: ( ( 'element' (lv_name= RULE_ID ) ) ) - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:584:1: ( 'element' (lv_name= RULE_ID ) ) + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:663:6: ( ( 'element' (lv_name= RULE_ID ) ) ) + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:664:1: ( 'element' (lv_name= RULE_ID ) ) { - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:584:1: ( 'element' (lv_name= RULE_ID ) ) - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:584:2: 'element' (lv_name= RULE_ID ) + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:664:1: ( 'element' (lv_name= RULE_ID ) ) + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:664:2: 'element' (lv_name= RULE_ID ) { - match(input,17,FOLLOW_17_in_ruleInheritedParserRule1331); + match(input,19,FOLLOW_19_in_ruleInheritedParserRule1516); createLeafNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/1/@rules.0/@alternatives/@abstractTokens.0" /* xtext::Keyword */, null); - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:588:1: (lv_name= RULE_ID ) - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:590:6: lv_name= RULE_ID + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:668:1: (lv_name= RULE_ID ) + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:670:6: lv_name= RULE_ID { lv_name=(Token)input.LT(1); - match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleInheritedParserRule1352); + match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleInheritedParserRule1537); createLeafNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/1/@rules.0/@alternatives/@abstractTokens.1/@terminal" /* xtext::RuleCall */, "name"); @@ -1355,7 +1539,7 @@ public class InternalConcreteTestLanguageParser extends AbstractInternalAntlrPar // $ANTLR start entryRuleAbstractCallOverridenParserRule - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:617:1: entryRuleAbstractCallOverridenParserRule returns [EObject current=null] : iv_ruleAbstractCallOverridenParserRule= ruleAbstractCallOverridenParserRule EOF ; + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:697:1: entryRuleAbstractCallOverridenParserRule returns [EObject current=null] : iv_ruleAbstractCallOverridenParserRule= ruleAbstractCallOverridenParserRule EOF ; public final EObject entryRuleAbstractCallOverridenParserRule() throws RecognitionException { EObject current = null; @@ -1363,16 +1547,16 @@ public class InternalConcreteTestLanguageParser extends AbstractInternalAntlrPar try { - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:617:73: (iv_ruleAbstractCallOverridenParserRule= ruleAbstractCallOverridenParserRule EOF ) - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:618:2: iv_ruleAbstractCallOverridenParserRule= ruleAbstractCallOverridenParserRule EOF + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:697:73: (iv_ruleAbstractCallOverridenParserRule= ruleAbstractCallOverridenParserRule EOF ) + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:698:2: iv_ruleAbstractCallOverridenParserRule= ruleAbstractCallOverridenParserRule EOF { currentNode = createCompositeNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/1/@rules.1" /* xtext::ParserRule */, currentNode); - pushFollow(FOLLOW_ruleAbstractCallOverridenParserRule_in_entryRuleAbstractCallOverridenParserRule1398); + pushFollow(FOLLOW_ruleAbstractCallOverridenParserRule_in_entryRuleAbstractCallOverridenParserRule1583); iv_ruleAbstractCallOverridenParserRule=ruleAbstractCallOverridenParserRule(); _fsp--; current =iv_ruleAbstractCallOverridenParserRule; - match(input,EOF,FOLLOW_EOF_in_entryRuleAbstractCallOverridenParserRule1408); + match(input,EOF,FOLLOW_EOF_in_entryRuleAbstractCallOverridenParserRule1593); } @@ -1390,7 +1574,7 @@ public class InternalConcreteTestLanguageParser extends AbstractInternalAntlrPar // $ANTLR start ruleAbstractCallOverridenParserRule - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:625:1: ruleAbstractCallOverridenParserRule returns [EObject current=null] : ( 'overridemodel' (lv_elements= ruleOverridableParserRule )* ) ; + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:705:1: ruleAbstractCallOverridenParserRule returns [EObject current=null] : ( 'overridemodel' (lv_elements= ruleOverridableParserRule )* ) ; public final EObject ruleAbstractCallOverridenParserRule() throws RecognitionException { EObject current = null; @@ -1400,35 +1584,35 @@ public class InternalConcreteTestLanguageParser extends AbstractInternalAntlrPar EObject temp=null; setCurrentLookahead(); resetLookahead(); try { - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:629:6: ( ( 'overridemodel' (lv_elements= ruleOverridableParserRule )* ) ) - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:630:1: ( 'overridemodel' (lv_elements= ruleOverridableParserRule )* ) + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:709:6: ( ( 'overridemodel' (lv_elements= ruleOverridableParserRule )* ) ) + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:710:1: ( 'overridemodel' (lv_elements= ruleOverridableParserRule )* ) { - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:630:1: ( 'overridemodel' (lv_elements= ruleOverridableParserRule )* ) - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:630:2: 'overridemodel' (lv_elements= ruleOverridableParserRule )* + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:710:1: ( 'overridemodel' (lv_elements= ruleOverridableParserRule )* ) + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:710:2: 'overridemodel' (lv_elements= ruleOverridableParserRule )* { - match(input,18,FOLLOW_18_in_ruleAbstractCallOverridenParserRule1442); + match(input,20,FOLLOW_20_in_ruleAbstractCallOverridenParserRule1627); createLeafNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/1/@rules.1/@alternatives/@abstractTokens.0" /* xtext::Keyword */, null); - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:634:1: (lv_elements= ruleOverridableParserRule )* - loop6: + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:714:1: (lv_elements= ruleOverridableParserRule )* + loop7: do { - int alt6=2; - int LA6_0 = input.LA(1); + int alt7=2; + int LA7_0 = input.LA(1); - if ( (LA6_0==14) ) { - alt6=1; + if ( (LA7_0==14) ) { + alt7=1; } - switch (alt6) { + switch (alt7) { case 1 : - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:637:6: lv_elements= ruleOverridableParserRule + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:717:6: lv_elements= ruleOverridableParserRule { currentNode=createCompositeNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/1/@rules.1/@alternatives/@abstractTokens.1/@terminal" /* xtext::RuleCall */, currentNode); - pushFollow(FOLLOW_ruleOverridableParserRule_in_ruleAbstractCallOverridenParserRule1476); + pushFollow(FOLLOW_ruleOverridableParserRule_in_ruleAbstractCallOverridenParserRule1661); lv_elements=ruleOverridableParserRule(); _fsp--; @@ -1450,7 +1634,7 @@ public class InternalConcreteTestLanguageParser extends AbstractInternalAntlrPar break; default : - break loop6; + break loop7; } } while (true); @@ -1476,7 +1660,7 @@ public class InternalConcreteTestLanguageParser extends AbstractInternalAntlrPar // $ANTLR start entryRuleAbstractCallExtendedParserRule - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:664:1: entryRuleAbstractCallExtendedParserRule returns [EObject current=null] : iv_ruleAbstractCallExtendedParserRule= ruleAbstractCallExtendedParserRule EOF ; + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:744:1: entryRuleAbstractCallExtendedParserRule returns [EObject current=null] : iv_ruleAbstractCallExtendedParserRule= ruleAbstractCallExtendedParserRule EOF ; public final EObject entryRuleAbstractCallExtendedParserRule() throws RecognitionException { EObject current = null; @@ -1484,16 +1668,16 @@ public class InternalConcreteTestLanguageParser extends AbstractInternalAntlrPar try { - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:664:72: (iv_ruleAbstractCallExtendedParserRule= ruleAbstractCallExtendedParserRule EOF ) - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:665:2: iv_ruleAbstractCallExtendedParserRule= ruleAbstractCallExtendedParserRule EOF + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:744:72: (iv_ruleAbstractCallExtendedParserRule= ruleAbstractCallExtendedParserRule EOF ) + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:745:2: iv_ruleAbstractCallExtendedParserRule= ruleAbstractCallExtendedParserRule EOF { - currentNode = createCompositeNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/1/@rules.3" /* xtext::ParserRule */, currentNode); - pushFollow(FOLLOW_ruleAbstractCallExtendedParserRule_in_entryRuleAbstractCallExtendedParserRule1516); + currentNode = createCompositeNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/1/@rules.4" /* xtext::ParserRule */, currentNode); + pushFollow(FOLLOW_ruleAbstractCallExtendedParserRule_in_entryRuleAbstractCallExtendedParserRule1701); iv_ruleAbstractCallExtendedParserRule=ruleAbstractCallExtendedParserRule(); _fsp--; current =iv_ruleAbstractCallExtendedParserRule; - match(input,EOF,FOLLOW_EOF_in_entryRuleAbstractCallExtendedParserRule1526); + match(input,EOF,FOLLOW_EOF_in_entryRuleAbstractCallExtendedParserRule1711); } @@ -1511,7 +1695,7 @@ public class InternalConcreteTestLanguageParser extends AbstractInternalAntlrPar // $ANTLR start ruleAbstractCallExtendedParserRule - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:672:1: ruleAbstractCallExtendedParserRule returns [EObject current=null] : ( 'extendedmodel' (lv_elements= ruleExtendableParserRule )* ) ; + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:752:1: ruleAbstractCallExtendedParserRule returns [EObject current=null] : ( 'extendedmodel' (lv_elements= ruleExtendableParserRule )* ) ; public final EObject ruleAbstractCallExtendedParserRule() throws RecognitionException { EObject current = null; @@ -1521,35 +1705,35 @@ public class InternalConcreteTestLanguageParser extends AbstractInternalAntlrPar EObject temp=null; setCurrentLookahead(); resetLookahead(); try { - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:676:6: ( ( 'extendedmodel' (lv_elements= ruleExtendableParserRule )* ) ) - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:677:1: ( 'extendedmodel' (lv_elements= ruleExtendableParserRule )* ) + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:756:6: ( ( 'extendedmodel' (lv_elements= ruleExtendableParserRule )* ) ) + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:757:1: ( 'extendedmodel' (lv_elements= ruleExtendableParserRule )* ) { - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:677:1: ( 'extendedmodel' (lv_elements= ruleExtendableParserRule )* ) - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:677:2: 'extendedmodel' (lv_elements= ruleExtendableParserRule )* + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:757:1: ( 'extendedmodel' (lv_elements= ruleExtendableParserRule )* ) + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:757:2: 'extendedmodel' (lv_elements= ruleExtendableParserRule )* { - match(input,19,FOLLOW_19_in_ruleAbstractCallExtendedParserRule1560); + match(input,21,FOLLOW_21_in_ruleAbstractCallExtendedParserRule1745); - createLeafNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/1/@rules.3/@alternatives/@abstractTokens.0" /* xtext::Keyword */, null); + createLeafNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/1/@rules.4/@alternatives/@abstractTokens.0" /* xtext::Keyword */, null); - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:681:1: (lv_elements= ruleExtendableParserRule )* - loop7: + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:761:1: (lv_elements= ruleExtendableParserRule )* + loop8: do { - int alt7=2; - int LA7_0 = input.LA(1); + int alt8=2; + int LA8_0 = input.LA(1); - if ( ((LA7_0>=15 && LA7_0<=16)) ) { - alt7=1; + if ( ((LA8_0>=17 && LA8_0<=18)) ) { + alt8=1; } - switch (alt7) { + switch (alt8) { case 1 : - // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:684:6: lv_elements= ruleExtendableParserRule + // ../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g:764:6: lv_elements= ruleExtendableParserRule { - currentNode=createCompositeNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/1/@rules.3/@alternatives/@abstractTokens.1/@terminal" /* xtext::RuleCall */, currentNode); + currentNode=createCompositeNode("classpath:/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi#/1/@rules.4/@alternatives/@abstractTokens.1/@terminal" /* xtext::RuleCall */, currentNode); - pushFollow(FOLLOW_ruleExtendableParserRule_in_ruleAbstractCallExtendedParserRule1594); + pushFollow(FOLLOW_ruleExtendableParserRule_in_ruleAbstractCallExtendedParserRule1779); lv_elements=ruleExtendableParserRule(); _fsp--; @@ -1571,7 +1755,7 @@ public class InternalConcreteTestLanguageParser extends AbstractInternalAntlrPar break; default : - break loop7; + break loop8; } } while (true); @@ -1600,56 +1784,63 @@ public class InternalConcreteTestLanguageParser extends AbstractInternalAntlrPar public static final BitSet FOLLOW_ruleRootRule_in_entryRuleRootRule72 = new BitSet(new long[]{0x0000000000000000L}); public static final BitSet FOLLOW_EOF_in_entryRuleRootRule82 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ruleConcreteParserRule_in_ruleRootRule130 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ruleCallOverridenParserRule_in_ruleRootRule157 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ruleCallExtendedParserRule_in_ruleRootRule185 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ruleConcreteParserRule_in_entryRuleConcreteParserRule219 = new BitSet(new long[]{0x0000000000000000L}); - public static final BitSet FOLLOW_EOF_in_entryRuleConcreteParserRule229 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_12_in_ruleConcreteParserRule265 = new BitSet(new long[]{0x0000000000000010L}); - public static final BitSet FOLLOW_RULE_REAL_in_ruleConcreteParserRule286 = new BitSet(new long[]{0x0000000000002000L}); - public static final BitSet FOLLOW_13_in_ruleConcreteParserRule307 = new BitSet(new long[]{0x0000000000020002L}); - public static final BitSet FOLLOW_ruleInheritedParserRule_in_ruleConcreteParserRule342 = new BitSet(new long[]{0x0000000000020002L}); - public static final BitSet FOLLOW_ruleOverridableParserRule_in_entryRuleOverridableParserRule382 = new BitSet(new long[]{0x0000000000000000L}); - public static final BitSet FOLLOW_EOF_in_entryRuleOverridableParserRule392 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_14_in_ruleOverridableParserRule426 = new BitSet(new long[]{0x0000000000000020L}); - public static final BitSet FOLLOW_RULE_ID_in_ruleOverridableParserRule447 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ruleCallOverridenParserRule_in_entryRuleCallOverridenParserRule493 = new BitSet(new long[]{0x0000000000000000L}); - public static final BitSet FOLLOW_EOF_in_entryRuleCallOverridenParserRule503 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ruleAbstractCallOverridenParserRule_in_ruleCallOverridenParserRule561 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ruleExtendableParserRule_in_entryRuleExtendableParserRule599 = new BitSet(new long[]{0x0000000000000000L}); - public static final BitSet FOLLOW_EOF_in_entryRuleExtendableParserRule609 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ruleSubrule1_in_ruleExtendableParserRule657 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ruleSubrule2_in_ruleExtendableParserRule684 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ruleSubrule3_in_ruleExtendableParserRule712 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ruleSubrule1_in_entryRuleSubrule1746 = new BitSet(new long[]{0x0000000000000000L}); - public static final BitSet FOLLOW_EOF_in_entryRuleSubrule1756 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_15_in_ruleSubrule1791 = new BitSet(new long[]{0x0000000000000020L}); - public static final BitSet FOLLOW_RULE_ID_in_ruleSubrule1812 = new BitSet(new long[]{0x0000000000000020L}); - public static final BitSet FOLLOW_RULE_ID_in_ruleSubrule1845 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ruleSubrule2_in_entryRuleSubrule2891 = new BitSet(new long[]{0x0000000000000000L}); - public static final BitSet FOLLOW_EOF_in_entryRuleSubrule2901 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_16_in_ruleSubrule2936 = new BitSet(new long[]{0x0000000000000020L}); - public static final BitSet FOLLOW_RULE_ID_in_ruleSubrule2957 = new BitSet(new long[]{0x0000000000000040L}); - public static final BitSet FOLLOW_RULE_STRING_in_ruleSubrule2990 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ruleSubrule3_in_entryRuleSubrule31036 = new BitSet(new long[]{0x0000000000000000L}); - public static final BitSet FOLLOW_EOF_in_entryRuleSubrule31046 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_16_in_ruleSubrule31081 = new BitSet(new long[]{0x0000000000000020L}); - public static final BitSet FOLLOW_RULE_ID_in_ruleSubrule31102 = new BitSet(new long[]{0x0000000000000080L}); - public static final BitSet FOLLOW_RULE_INT_in_ruleSubrule31135 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ruleCallExtendedParserRule_in_entryRuleCallExtendedParserRule1181 = new BitSet(new long[]{0x0000000000000000L}); - public static final BitSet FOLLOW_EOF_in_entryRuleCallExtendedParserRule1191 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ruleAbstractCallExtendedParserRule_in_ruleCallExtendedParserRule1249 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ruleInheritedParserRule_in_entryRuleInheritedParserRule1287 = new BitSet(new long[]{0x0000000000000000L}); - public static final BitSet FOLLOW_EOF_in_entryRuleInheritedParserRule1297 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_17_in_ruleInheritedParserRule1331 = new BitSet(new long[]{0x0000000000000020L}); - public static final BitSet FOLLOW_RULE_ID_in_ruleInheritedParserRule1352 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_ruleAbstractCallOverridenParserRule_in_entryRuleAbstractCallOverridenParserRule1398 = new BitSet(new long[]{0x0000000000000000L}); - public static final BitSet FOLLOW_EOF_in_entryRuleAbstractCallOverridenParserRule1408 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_18_in_ruleAbstractCallOverridenParserRule1442 = new BitSet(new long[]{0x0000000000004002L}); - public static final BitSet FOLLOW_ruleOverridableParserRule_in_ruleAbstractCallOverridenParserRule1476 = new BitSet(new long[]{0x0000000000004002L}); - public static final BitSet FOLLOW_ruleAbstractCallExtendedParserRule_in_entryRuleAbstractCallExtendedParserRule1516 = new BitSet(new long[]{0x0000000000000000L}); - public static final BitSet FOLLOW_EOF_in_entryRuleAbstractCallExtendedParserRule1526 = new BitSet(new long[]{0x0000000000000002L}); - public static final BitSet FOLLOW_19_in_ruleAbstractCallExtendedParserRule1560 = new BitSet(new long[]{0x0000000000018002L}); - public static final BitSet FOLLOW_ruleExtendableParserRule_in_ruleAbstractCallExtendedParserRule1594 = new BitSet(new long[]{0x0000000000018002L}); + public static final BitSet FOLLOW_ruleConcreteParserRule_in_ruleRootRule131 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ruleCallOverridenParserRule_in_ruleRootRule158 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ruleCallExtendedParserRule_in_ruleRootRule186 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ruleOverridableParserRule2_in_ruleRootRule214 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ruleConcreteParserRule_in_entryRuleConcreteParserRule248 = new BitSet(new long[]{0x0000000000000000L}); + public static final BitSet FOLLOW_EOF_in_entryRuleConcreteParserRule258 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_12_in_ruleConcreteParserRule294 = new BitSet(new long[]{0x0000000000000010L}); + public static final BitSet FOLLOW_RULE_REAL_in_ruleConcreteParserRule315 = new BitSet(new long[]{0x0000000000002000L}); + public static final BitSet FOLLOW_13_in_ruleConcreteParserRule336 = new BitSet(new long[]{0x0000000000080002L}); + public static final BitSet FOLLOW_ruleInheritedParserRule_in_ruleConcreteParserRule371 = new BitSet(new long[]{0x0000000000080002L}); + public static final BitSet FOLLOW_ruleOverridableParserRule_in_entryRuleOverridableParserRule411 = new BitSet(new long[]{0x0000000000000000L}); + public static final BitSet FOLLOW_EOF_in_entryRuleOverridableParserRule421 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_14_in_ruleOverridableParserRule455 = new BitSet(new long[]{0x0000000000000020L}); + public static final BitSet FOLLOW_RULE_ID_in_ruleOverridableParserRule476 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ruleCallOverridenParserRule_in_entryRuleCallOverridenParserRule522 = new BitSet(new long[]{0x0000000000000000L}); + public static final BitSet FOLLOW_EOF_in_entryRuleCallOverridenParserRule532 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ruleAbstractCallOverridenParserRule_in_ruleCallOverridenParserRule590 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ruleOverridableParserRule2_in_entryRuleOverridableParserRule2628 = new BitSet(new long[]{0x0000000000000000L}); + public static final BitSet FOLLOW_EOF_in_entryRuleOverridableParserRule2638 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_15_in_ruleOverridableParserRule2674 = new BitSet(new long[]{0x0000000000000020L}); + public static final BitSet FOLLOW_RULE_ID_in_ruleOverridableParserRule2695 = new BitSet(new long[]{0x0000000000010000L}); + public static final BitSet FOLLOW_16_in_ruleOverridableParserRule2716 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_RULE_INT_in_ruleOverridableParserRule2738 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ruleExtendableParserRule_in_entryRuleExtendableParserRule784 = new BitSet(new long[]{0x0000000000000000L}); + public static final BitSet FOLLOW_EOF_in_entryRuleExtendableParserRule794 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ruleSubrule1_in_ruleExtendableParserRule842 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ruleSubrule2_in_ruleExtendableParserRule869 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ruleSubrule3_in_ruleExtendableParserRule897 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ruleSubrule1_in_entryRuleSubrule1931 = new BitSet(new long[]{0x0000000000000000L}); + public static final BitSet FOLLOW_EOF_in_entryRuleSubrule1941 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_17_in_ruleSubrule1976 = new BitSet(new long[]{0x0000000000000020L}); + public static final BitSet FOLLOW_RULE_ID_in_ruleSubrule1997 = new BitSet(new long[]{0x0000000000000020L}); + public static final BitSet FOLLOW_RULE_ID_in_ruleSubrule11030 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ruleSubrule2_in_entryRuleSubrule21076 = new BitSet(new long[]{0x0000000000000000L}); + public static final BitSet FOLLOW_EOF_in_entryRuleSubrule21086 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_18_in_ruleSubrule21121 = new BitSet(new long[]{0x0000000000000020L}); + public static final BitSet FOLLOW_RULE_ID_in_ruleSubrule21142 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_RULE_STRING_in_ruleSubrule21175 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ruleSubrule3_in_entryRuleSubrule31221 = new BitSet(new long[]{0x0000000000000000L}); + public static final BitSet FOLLOW_EOF_in_entryRuleSubrule31231 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_18_in_ruleSubrule31266 = new BitSet(new long[]{0x0000000000000020L}); + public static final BitSet FOLLOW_RULE_ID_in_ruleSubrule31287 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_RULE_INT_in_ruleSubrule31320 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ruleCallExtendedParserRule_in_entryRuleCallExtendedParserRule1366 = new BitSet(new long[]{0x0000000000000000L}); + public static final BitSet FOLLOW_EOF_in_entryRuleCallExtendedParserRule1376 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ruleAbstractCallExtendedParserRule_in_ruleCallExtendedParserRule1434 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ruleInheritedParserRule_in_entryRuleInheritedParserRule1472 = new BitSet(new long[]{0x0000000000000000L}); + public static final BitSet FOLLOW_EOF_in_entryRuleInheritedParserRule1482 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_19_in_ruleInheritedParserRule1516 = new BitSet(new long[]{0x0000000000000020L}); + public static final BitSet FOLLOW_RULE_ID_in_ruleInheritedParserRule1537 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ruleAbstractCallOverridenParserRule_in_entryRuleAbstractCallOverridenParserRule1583 = new BitSet(new long[]{0x0000000000000000L}); + public static final BitSet FOLLOW_EOF_in_entryRuleAbstractCallOverridenParserRule1593 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_20_in_ruleAbstractCallOverridenParserRule1627 = new BitSet(new long[]{0x0000000000004002L}); + public static final BitSet FOLLOW_ruleOverridableParserRule_in_ruleAbstractCallOverridenParserRule1661 = new BitSet(new long[]{0x0000000000004002L}); + public static final BitSet FOLLOW_ruleAbstractCallExtendedParserRule_in_entryRuleAbstractCallExtendedParserRule1701 = new BitSet(new long[]{0x0000000000000000L}); + public static final BitSet FOLLOW_EOF_in_entryRuleAbstractCallExtendedParserRule1711 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_21_in_ruleAbstractCallExtendedParserRule1745 = new BitSet(new long[]{0x0000000000060002L}); + public static final BitSet FOLLOW_ruleExtendableParserRule_in_ruleAbstractCallExtendedParserRule1779 = new BitSet(new long[]{0x0000000000060002L}); }
\ No newline at end of file diff --git a/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage__.g b/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage__.g index 7dc1cad..d705b6a 100644 --- a/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage__.g +++ b/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage__.g @@ -10,37 +10,39 @@ import org.eclipse.xtext.parser.antlr.Lexer; T12 : 'model' ; T13 : ':' ; T14 : 'overriddenelement' ; -T15 : 'subrule1' ; -T16 : 'subrule3' ; -T17 : 'element' ; -T18 : 'overridemodel' ; -T19 : 'extendedmodel' ; - -// $ANTLR src "../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g" 734 +T15 : 'overridden other element' ; +T16 : '-' ; +T17 : 'subrule1' ; +T18 : 'subrule3' ; +T19 : 'element' ; +T20 : 'overridemodel' ; +T21 : 'extendedmodel' ; + +// $ANTLR src "../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g" 816 RULE_REAL : RULE_INT '.' RULE_INT; -// $ANTLR src "../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g" 736 +// $ANTLR src "../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g" 818 RULE_ID : ('^')?('a'..'z'|'A'..'Z'|'ö'|'ä'|'ü'|'_') ('a'..'z'|'A'..'Z'|'_'|'0'..'9')*; -// $ANTLR src "../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g" 738 +// $ANTLR src "../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g" 820 RULE_INT : ('0'..'9')+; -// $ANTLR src "../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g" 740 +// $ANTLR src "../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g" 822 RULE_STRING : '"' ( '\\' ('b'|'t'|'n'|'f'|'r'|'\"'|'\''|'\\') | ~('\\'|'"') )* '"' | '\'' ( '\\' ('b'|'t'|'n'|'f'|'r'|'\"'|'\''|'\\') | ~('\\'|'\'') )* '\'' ; -// $ANTLR src "../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g" 745 +// $ANTLR src "../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g" 827 RULE_ML_COMMENT : '/*' ( options {greedy=false;} : . )* '*/'; -// $ANTLR src "../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g" 747 +// $ANTLR src "../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g" 829 RULE_SL_COMMENT : '//' ~('\n'|'\r')* ('\r'? '\n')?; -// $ANTLR src "../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g" 749 +// $ANTLR src "../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g" 831 RULE_WS : (' '|'\t'|'\r'|'\n')+; -// $ANTLR src "../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g" 751 +// $ANTLR src "../org.eclipse.xtext.generator.tests//src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g" 833 RULE_ANY_OTHER : .; diff --git a/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/grammarinheritance/parser/packrat/AbstractTestLanguageDelimiters.java b/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/grammarinheritance/parser/packrat/AbstractTestLanguageDelimiters.java index fe3b62d..7efa66c 100644 --- a/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/grammarinheritance/parser/packrat/AbstractTestLanguageDelimiters.java +++ b/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/grammarinheritance/parser/packrat/AbstractTestLanguageDelimiters.java @@ -23,6 +23,8 @@ public final class AbstractTestLanguageDelimiters { ); public static ISequenceMatcher ruleCall$7$Delimiter = new SetBasedKeywordMatcher( - "element", "overridemodel", "extendedmodel"); + "element", "overridemodel", "other element", "extendedmodel"); + + public static ISequenceMatcher ruleCall$25$Delimiter = ISequenceMatcher.Factory.nullMatcher(); } diff --git a/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/grammarinheritance/parser/packrat/AbstractTestLanguageParserConfiguration.java b/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/grammarinheritance/parser/packrat/AbstractTestLanguageParserConfiguration.java index d627dce..096ee67 100644 --- a/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/grammarinheritance/parser/packrat/AbstractTestLanguageParserConfiguration.java +++ b/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/grammarinheritance/parser/packrat/AbstractTestLanguageParserConfiguration.java @@ -12,6 +12,7 @@ import org.eclipse.xtext.builtin.parser.packrat.XtextBuiltinParserConfiguration; import org.eclipse.xtext.grammarinheritance.parser.packrat.consumers.AbstractTestLanguageInheritedParserRuleConsumer; import org.eclipse.xtext.grammarinheritance.parser.packrat.consumers.AbstractTestLanguageAbstractCallOverridenParserRuleConsumer; import org.eclipse.xtext.grammarinheritance.parser.packrat.consumers.AbstractTestLanguageOverridableParserRuleConsumer; +import org.eclipse.xtext.grammarinheritance.parser.packrat.consumers.AbstractTestLanguageOverridableParserRule2Consumer; import org.eclipse.xtext.grammarinheritance.parser.packrat.consumers.AbstractTestLanguageAbstractCallExtendedParserRuleConsumer; import org.eclipse.xtext.grammarinheritance.parser.packrat.consumers.AbstractTestLanguageExtendableParserRuleConsumer; import org.eclipse.xtext.grammarinheritance.parser.packrat.consumers.AbstractTestLanguageREALConsumer; @@ -31,6 +32,7 @@ public class AbstractTestLanguageParserConfiguration extends AbstractParserConfi private AbstractTestLanguageInheritedParserRuleConsumer inheritedParserRuleConsumer; private AbstractTestLanguageAbstractCallOverridenParserRuleConsumer abstractCallOverridenParserRuleConsumer; private AbstractTestLanguageOverridableParserRuleConsumer overridableParserRuleConsumer; + private AbstractTestLanguageOverridableParserRule2Consumer overridableParserRule2Consumer; private AbstractTestLanguageAbstractCallExtendedParserRuleConsumer abstractCallExtendedParserRuleConsumer; private AbstractTestLanguageExtendableParserRuleConsumer extendableParserRuleConsumer; private AbstractTestLanguageREALConsumer realConsumer; @@ -56,6 +58,9 @@ public class AbstractTestLanguageParserConfiguration extends AbstractParserConfi overridableParserRuleConsumer = new AbstractTestLanguageOverridableParserRuleConsumer( this, null ); + overridableParserRule2Consumer = new AbstractTestLanguageOverridableParserRule2Consumer( + this, null + ); abstractCallExtendedParserRuleConsumer = new AbstractTestLanguageAbstractCallExtendedParserRuleConsumer( this, null ); @@ -77,6 +82,8 @@ public class AbstractTestLanguageParserConfiguration extends AbstractParserConfi getOverridableParserRuleConsumer().setIdConsumer(getIdConsumer()); + getOverridableParserRule2Consumer().setStringConsumer(getStringConsumer()); + getAbstractCallExtendedParserRuleConsumer().setExtendableParserRuleConsumer(getExtendableParserRuleConsumer()); getExtendableParserRuleConsumer().setIdConsumer(getIdConsumer()); @@ -86,6 +93,8 @@ public class AbstractTestLanguageParserConfiguration extends AbstractParserConfi getAbstractCallOverridenParserRuleConsumer().setKeyword$2$Delimiter(AbstractTestLanguageDelimiters.keyword$5$Delimiter); getOverridableParserRuleConsumer().setKeyword$2$Delimiter(AbstractTestLanguageDelimiters.keyword$5$Delimiter); getOverridableParserRuleConsumer().setRuleCall$4$Delimiter(AbstractTestLanguageDelimiters.ruleCall$7$Delimiter); + getOverridableParserRule2Consumer().setKeyword$2$Delimiter(AbstractTestLanguageDelimiters.keyword$5$Delimiter); + getOverridableParserRule2Consumer().setRuleCall$4$Delimiter(AbstractTestLanguageDelimiters.ruleCall$25$Delimiter); getAbstractCallExtendedParserRuleConsumer().setKeyword$2$Delimiter(AbstractTestLanguageDelimiters.keyword$5$Delimiter); getExtendableParserRuleConsumer().setKeyword$2$Delimiter(AbstractTestLanguageDelimiters.keyword$5$Delimiter); getExtendableParserRuleConsumer().setRuleCall$4$Delimiter(AbstractTestLanguageDelimiters.ruleCall$7$Delimiter); @@ -108,6 +117,10 @@ public class AbstractTestLanguageParserConfiguration extends AbstractParserConfi return overridableParserRuleConsumer; } + public AbstractTestLanguageOverridableParserRule2Consumer getOverridableParserRule2Consumer() { + return overridableParserRule2Consumer; + } + public AbstractTestLanguageAbstractCallExtendedParserRuleConsumer getAbstractCallExtendedParserRuleConsumer() { return abstractCallExtendedParserRuleConsumer; } diff --git a/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/grammarinheritance/parser/packrat/ConcreteTestLanguageDelimiters.java b/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/grammarinheritance/parser/packrat/ConcreteTestLanguageDelimiters.java index 1db8398..526a6c0 100644 --- a/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/grammarinheritance/parser/packrat/ConcreteTestLanguageDelimiters.java +++ b/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/grammarinheritance/parser/packrat/ConcreteTestLanguageDelimiters.java @@ -15,18 +15,18 @@ public final class ConcreteTestLanguageDelimiters { } // TODO: remove hardcoded character class from template - public static ICharacterClass keyword$14$Delimiter = ICharacterClass.Factory.join( + public static ICharacterClass keyword$16$Delimiter = ICharacterClass.Factory.join( ICharacterClass.Factory.createRange('a', 'z'), ICharacterClass.Factory.createRange('A', 'Z'), ICharacterClass.Factory.create('_'), ICharacterClass.Factory.createRange('0', '9') ); - public static ICharacterClass keyword$17$Delimiter = ICharacterClass.Factory.nullClass(); + public static ICharacterClass keyword$19$Delimiter = ICharacterClass.Factory.nullClass(); - public static ISequenceMatcher ruleCall$16$Delimiter = ISequenceMatcher.Factory.nullMatcher(); + public static ISequenceMatcher ruleCall$18$Delimiter = ISequenceMatcher.Factory.nullMatcher(); - public static ISequenceMatcher ruleCall$25$Delimiter = new SetBasedKeywordMatcher( - "model", "overriddenelement", "subrule1", "subrule3"); + public static ISequenceMatcher ruleCall$27$Delimiter = new SetBasedKeywordMatcher( + "model", "overriddenelement", "overridden other element", "subrule1", "subrule3"); } diff --git a/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/grammarinheritance/parser/packrat/ConcreteTestLanguageParserConfiguration.java b/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/grammarinheritance/parser/packrat/ConcreteTestLanguageParserConfiguration.java index 7f46af2..a1c9def 100644 --- a/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/grammarinheritance/parser/packrat/ConcreteTestLanguageParserConfiguration.java +++ b/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/grammarinheritance/parser/packrat/ConcreteTestLanguageParserConfiguration.java @@ -13,6 +13,7 @@ import org.eclipse.xtext.grammarinheritance.parser.packrat.consumers.ConcreteTes import org.eclipse.xtext.grammarinheritance.parser.packrat.consumers.ConcreteTestLanguageConcreteParserRuleConsumer; import org.eclipse.xtext.grammarinheritance.parser.packrat.consumers.ConcreteTestLanguageOverridableParserRuleConsumer; import org.eclipse.xtext.grammarinheritance.parser.packrat.consumers.ConcreteTestLanguageCallOverridenParserRuleConsumer; +import org.eclipse.xtext.grammarinheritance.parser.packrat.consumers.ConcreteTestLanguageOverridableParserRule2Consumer; import org.eclipse.xtext.grammarinheritance.parser.packrat.consumers.ConcreteTestLanguageExtendableParserRuleConsumer; import org.eclipse.xtext.grammarinheritance.parser.packrat.consumers.ConcreteTestLanguageSubrule1Consumer; import org.eclipse.xtext.grammarinheritance.parser.packrat.consumers.ConcreteTestLanguageSubrule2Consumer; @@ -39,6 +40,7 @@ public class ConcreteTestLanguageParserConfiguration extends AbstractParserConfi private ConcreteTestLanguageConcreteParserRuleConsumer concreteParserRuleConsumer; private ConcreteTestLanguageOverridableParserRuleConsumer overridableParserRuleConsumer; private ConcreteTestLanguageCallOverridenParserRuleConsumer callOverridenParserRuleConsumer; + private ConcreteTestLanguageOverridableParserRule2Consumer overridableParserRule2Consumer; private ConcreteTestLanguageExtendableParserRuleConsumer extendableParserRuleConsumer; private ConcreteTestLanguageSubrule1Consumer subrule1Consumer; private ConcreteTestLanguageSubrule2Consumer subrule2Consumer; @@ -68,6 +70,9 @@ public class ConcreteTestLanguageParserConfiguration extends AbstractParserConfi callOverridenParserRuleConsumer = new ConcreteTestLanguageCallOverridenParserRuleConsumer( this, null ); + overridableParserRule2Consumer = new ConcreteTestLanguageOverridableParserRule2Consumer( + this, null + ); extendableParserRuleConsumer = new ConcreteTestLanguageExtendableParserRuleConsumer( this, null ); @@ -93,6 +98,7 @@ public class ConcreteTestLanguageParserConfiguration extends AbstractParserConfi getRootRuleConsumer().setCallExtendedParserRuleConsumer(getCallExtendedParserRuleConsumer()); getRootRuleConsumer().setCallOverridenParserRuleConsumer(getCallOverridenParserRuleConsumer()); getRootRuleConsumer().setConcreteParserRuleConsumer(getConcreteParserRuleConsumer()); + getRootRuleConsumer().setOverridableParserRule2Consumer(getOverridableParserRule2Consumer()); getConcreteParserRuleConsumer().setInheritedParserRuleConsumer(getInheritedParserRuleConsumer()); getConcreteParserRuleConsumer().setRealConsumer(getRealConsumer()); @@ -101,6 +107,9 @@ public class ConcreteTestLanguageParserConfiguration extends AbstractParserConfi getCallOverridenParserRuleConsumer().setAbstractCallOverridenParserRuleConsumer(getAbstractCallOverridenParserRuleConsumer()); + getOverridableParserRule2Consumer().setIdConsumer(getIdConsumer()); + getOverridableParserRule2Consumer().setIntConsumer(getIntConsumer()); + getExtendableParserRuleConsumer().setSubrule1Consumer(getSubrule1Consumer()); getExtendableParserRuleConsumer().setSubrule2Consumer(getSubrule2Consumer()); getExtendableParserRuleConsumer().setSubrule3Consumer(getSubrule3Consumer()); @@ -121,24 +130,28 @@ public class ConcreteTestLanguageParserConfiguration extends AbstractParserConfi getAbstractCallExtendedParserRuleConsumer().setExtendableParserRuleConsumer(getExtendableParserRuleConsumer()); - getConcreteParserRuleConsumer().setKeyword$4$Delimiter(ConcreteTestLanguageDelimiters.keyword$14$Delimiter); - getConcreteParserRuleConsumer().setKeyword$7$Delimiter(ConcreteTestLanguageDelimiters.keyword$17$Delimiter); - getConcreteParserRuleConsumer().setRuleCall$6$Delimiter(ConcreteTestLanguageDelimiters.ruleCall$16$Delimiter); - getOverridableParserRuleConsumer().setKeyword$2$Delimiter(ConcreteTestLanguageDelimiters.keyword$14$Delimiter); - getOverridableParserRuleConsumer().setRuleCall$4$Delimiter(ConcreteTestLanguageDelimiters.ruleCall$25$Delimiter); - getSubrule1Consumer().setKeyword$3$Delimiter(ConcreteTestLanguageDelimiters.keyword$14$Delimiter); - getSubrule1Consumer().setRuleCall$5$Delimiter(ConcreteTestLanguageDelimiters.ruleCall$25$Delimiter); - getSubrule1Consumer().setRuleCall$7$Delimiter(ConcreteTestLanguageDelimiters.ruleCall$25$Delimiter); - getSubrule2Consumer().setKeyword$3$Delimiter(ConcreteTestLanguageDelimiters.keyword$14$Delimiter); - getSubrule2Consumer().setRuleCall$5$Delimiter(ConcreteTestLanguageDelimiters.ruleCall$25$Delimiter); - getSubrule2Consumer().setRuleCall$7$Delimiter(ConcreteTestLanguageDelimiters.ruleCall$16$Delimiter); - getSubrule3Consumer().setKeyword$3$Delimiter(ConcreteTestLanguageDelimiters.keyword$14$Delimiter); - getSubrule3Consumer().setRuleCall$5$Delimiter(ConcreteTestLanguageDelimiters.ruleCall$25$Delimiter); - getSubrule3Consumer().setRuleCall$7$Delimiter(ConcreteTestLanguageDelimiters.ruleCall$16$Delimiter); - getInheritedParserRuleConsumer().setKeyword$2$Delimiter(ConcreteTestLanguageDelimiters.keyword$14$Delimiter); - getInheritedParserRuleConsumer().setRuleCall$4$Delimiter(ConcreteTestLanguageDelimiters.ruleCall$25$Delimiter); - getAbstractCallOverridenParserRuleConsumer().setKeyword$2$Delimiter(ConcreteTestLanguageDelimiters.keyword$14$Delimiter); - getAbstractCallExtendedParserRuleConsumer().setKeyword$2$Delimiter(ConcreteTestLanguageDelimiters.keyword$14$Delimiter); + getConcreteParserRuleConsumer().setKeyword$4$Delimiter(ConcreteTestLanguageDelimiters.keyword$16$Delimiter); + getConcreteParserRuleConsumer().setKeyword$7$Delimiter(ConcreteTestLanguageDelimiters.keyword$19$Delimiter); + getConcreteParserRuleConsumer().setRuleCall$6$Delimiter(ConcreteTestLanguageDelimiters.ruleCall$18$Delimiter); + getOverridableParserRuleConsumer().setKeyword$2$Delimiter(ConcreteTestLanguageDelimiters.keyword$16$Delimiter); + getOverridableParserRuleConsumer().setRuleCall$4$Delimiter(ConcreteTestLanguageDelimiters.ruleCall$27$Delimiter); + getOverridableParserRule2Consumer().setKeyword$4$Delimiter(ConcreteTestLanguageDelimiters.keyword$16$Delimiter); + getOverridableParserRule2Consumer().setKeyword$7$Delimiter(ConcreteTestLanguageDelimiters.keyword$19$Delimiter); + getOverridableParserRule2Consumer().setRuleCall$6$Delimiter(ConcreteTestLanguageDelimiters.ruleCall$27$Delimiter); + getOverridableParserRule2Consumer().setRuleCall$9$Delimiter(ConcreteTestLanguageDelimiters.ruleCall$18$Delimiter); + getSubrule1Consumer().setKeyword$3$Delimiter(ConcreteTestLanguageDelimiters.keyword$16$Delimiter); + getSubrule1Consumer().setRuleCall$5$Delimiter(ConcreteTestLanguageDelimiters.ruleCall$27$Delimiter); + getSubrule1Consumer().setRuleCall$7$Delimiter(ConcreteTestLanguageDelimiters.ruleCall$27$Delimiter); + getSubrule2Consumer().setKeyword$3$Delimiter(ConcreteTestLanguageDelimiters.keyword$16$Delimiter); + getSubrule2Consumer().setRuleCall$5$Delimiter(ConcreteTestLanguageDelimiters.ruleCall$27$Delimiter); + getSubrule2Consumer().setRuleCall$7$Delimiter(ConcreteTestLanguageDelimiters.ruleCall$18$Delimiter); + getSubrule3Consumer().setKeyword$3$Delimiter(ConcreteTestLanguageDelimiters.keyword$16$Delimiter); + getSubrule3Consumer().setRuleCall$5$Delimiter(ConcreteTestLanguageDelimiters.ruleCall$27$Delimiter); + getSubrule3Consumer().setRuleCall$7$Delimiter(ConcreteTestLanguageDelimiters.ruleCall$18$Delimiter); + getInheritedParserRuleConsumer().setKeyword$2$Delimiter(ConcreteTestLanguageDelimiters.keyword$16$Delimiter); + getInheritedParserRuleConsumer().setRuleCall$4$Delimiter(ConcreteTestLanguageDelimiters.ruleCall$27$Delimiter); + getAbstractCallOverridenParserRuleConsumer().setKeyword$2$Delimiter(ConcreteTestLanguageDelimiters.keyword$16$Delimiter); + getAbstractCallExtendedParserRuleConsumer().setKeyword$2$Delimiter(ConcreteTestLanguageDelimiters.keyword$16$Delimiter); } // TODO collect superGrammars transitive @@ -162,6 +175,10 @@ public class ConcreteTestLanguageParserConfiguration extends AbstractParserConfi return callOverridenParserRuleConsumer; } + public ConcreteTestLanguageOverridableParserRule2Consumer getOverridableParserRule2Consumer() { + return overridableParserRule2Consumer; + } + public ConcreteTestLanguageExtendableParserRuleConsumer getExtendableParserRuleConsumer() { return extendableParserRuleConsumer; } diff --git a/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/grammarinheritance/parser/packrat/consumers/AbstractTestLanguageOverridableParserRule2Consumer.java b/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/grammarinheritance/parser/packrat/consumers/AbstractTestLanguageOverridableParserRule2Consumer.java new file mode 100644 index 0000000..fa9931f --- a/dev/null +++ b/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/grammarinheritance/parser/packrat/consumers/AbstractTestLanguageOverridableParserRule2Consumer.java @@ -0,0 +1,124 @@ +/* +Generated with Xtext +*/ +package org.eclipse.xtext.grammarinheritance.parser.packrat.consumers; + +import org.eclipse.emf.ecore.EObject; +import org.eclipse.xtext.parser.packrat.IMarkerFactory.IMarker; +import org.eclipse.xtext.parser.packrat.consumers.ITerminalConsumer; +import org.eclipse.xtext.parser.packrat.consumers.INonTerminalConsumer; +import org.eclipse.xtext.parser.packrat.consumers.NonTerminalConsumer; +import org.eclipse.xtext.parser.packrat.consumers.INonTerminalConsumerConfiguration; +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.grammarinheritance.services.AbstractTestLanguageGrammarAccess; +import org.eclipse.xtext.grammarinheritance.services.AbstractTestLanguageGrammarAccess.OverridableParserRule2Elements; + +import org.eclipse.xtext.builtin.parser.packrat.consumers.XtextBuiltinSTRINGConsumer; + +@SuppressWarnings("unused") +public final class AbstractTestLanguageOverridableParserRule2Consumer extends NonTerminalConsumer { + + private ITerminalConsumer stringConsumer; + + private ICharacterClass keyword$2$Delimiter; + + private ISequenceMatcher ruleCall$4$Delimiter; + + public AbstractTestLanguageOverridableParserRule2Consumer(INonTerminalConsumerConfiguration configuration, ITerminalConsumer[] hiddenTokens) { + super(configuration, hiddenTokens); + keyword$2$Delimiter = ICharacterClass.Factory.nullClass(); + ruleCall$4$Delimiter = ISequenceMatcher.Factory.nullMatcher(); + } + + @Override + protected int doConsume(int entryPoint) throws Exception { + return consumeGroup$1(entryPoint); + } + + protected int consumeGroup$1(int entryPoint) throws Exception { + announceNextLevel(); + final IMarker marker = mark(); + int result = ConsumeResult.SUCCESS; + switch(entryPoint) { + case -1: // use fall through semantics of switch case + result = ConsumeResult.EMPTY_MATCH; + case 0: + announceNextStep(); + result = consumeKeyword$2(nextEntryPoint()); + if (result!=ConsumeResult.SUCCESS) { + error("Another token expected.", getRule().ele0KeywordOtherElement()); + marker.commit(); + announceLevelFinished(); + return result; + } + case 1: + announceNextStep(); + result = consumeAssignment$3(nextEntryPoint()); + if (result!=ConsumeResult.SUCCESS) { + error("Another token expected.", getRule().ele1AssignmentName()); + marker.commit(); + announceLevelFinished(); + return result; + } + } + marker.commit(); + announceLevelFinished(); + return result; + } + + protected int consumeKeyword$2(int entryPoint) throws Exception { + return consumeKeyword(getRule().ele0KeywordOtherElement(), null, false, false, getKeyword$2$Delimiter()); + } + + protected int consumeAssignment$3(int entryPoint) throws Exception { + int result = ConsumeResult.EMPTY_MATCH; + int tempResult; + announceNextLevel(); + tempResult = consumeTerminal(stringConsumer, "name", false, false, getRule().ele10LexerRuleCallSTRING(), getRuleCall$4$Delimiter()); + if (tempResult == ConsumeResult.SUCCESS) { + announceLevelFinished(); + return tempResult; + } + result = tempResult >= result ? tempResult : result; + announceLevelFinished(); + return result; + } + + public OverridableParserRule2Elements getRule() { + return AbstractTestLanguageGrammarAccess.INSTANCE.prOverridableParserRule2(); + } + + @Override + protected EObject getGrammarElement() { + return getRule().getRule(); + } + + @Override + protected String getDefaultTypeName() { + return "AType"; + } + + public void setStringConsumer(ITerminalConsumer stringConsumer) { + this.stringConsumer = stringConsumer; + } + + public ICharacterClass getKeyword$2$Delimiter() { + return keyword$2$Delimiter; + } + + public void setKeyword$2$Delimiter(ICharacterClass characterClass) { + keyword$2$Delimiter = characterClass != null ? characterClass : ICharacterClass.Factory.nullClass(); + } + + public ISequenceMatcher getRuleCall$4$Delimiter() { + return ruleCall$4$Delimiter; + } + + public void setRuleCall$4$Delimiter(ISequenceMatcher matcher) { + ruleCall$4$Delimiter = matcher != null ? matcher : ISequenceMatcher.Factory.nullMatcher(); + } + +} diff --git a/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/grammarinheritance/parser/packrat/consumers/ConcreteTestLanguageOverridableParserRule2Consumer.java b/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/grammarinheritance/parser/packrat/consumers/ConcreteTestLanguageOverridableParserRule2Consumer.java new file mode 100644 index 0000000..7e50580 --- a/dev/null +++ b/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/grammarinheritance/parser/packrat/consumers/ConcreteTestLanguageOverridableParserRule2Consumer.java @@ -0,0 +1,188 @@ +/* +Generated with Xtext +*/ +package org.eclipse.xtext.grammarinheritance.parser.packrat.consumers; + +import org.eclipse.emf.ecore.EObject; +import org.eclipse.xtext.parser.packrat.IMarkerFactory.IMarker; +import org.eclipse.xtext.parser.packrat.consumers.ITerminalConsumer; +import org.eclipse.xtext.parser.packrat.consumers.INonTerminalConsumer; +import org.eclipse.xtext.parser.packrat.consumers.NonTerminalConsumer; +import org.eclipse.xtext.parser.packrat.consumers.INonTerminalConsumerConfiguration; +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.grammarinheritance.services.ConcreteTestLanguageGrammarAccess; +import org.eclipse.xtext.grammarinheritance.services.ConcreteTestLanguageGrammarAccess.OverridableParserRule2Elements; + +import org.eclipse.xtext.grammarinheritance.parser.packrat.consumers.AbstractTestLanguageIDConsumer; +import org.eclipse.xtext.builtin.parser.packrat.consumers.XtextBuiltinINTConsumer; + +@SuppressWarnings("unused") +public final class ConcreteTestLanguageOverridableParserRule2Consumer extends NonTerminalConsumer { + + private ITerminalConsumer idConsumer; + private ITerminalConsumer intConsumer; + + private ICharacterClass keyword$4$Delimiter; + + private ICharacterClass keyword$7$Delimiter; + + private ISequenceMatcher ruleCall$6$Delimiter; + + private ISequenceMatcher ruleCall$9$Delimiter; + + public ConcreteTestLanguageOverridableParserRule2Consumer(INonTerminalConsumerConfiguration configuration, ITerminalConsumer[] hiddenTokens) { + super(configuration, hiddenTokens); + keyword$4$Delimiter = ICharacterClass.Factory.nullClass(); + keyword$7$Delimiter = ICharacterClass.Factory.nullClass(); + ruleCall$6$Delimiter = ISequenceMatcher.Factory.nullMatcher(); + ruleCall$9$Delimiter = ISequenceMatcher.Factory.nullMatcher(); + } + + @Override + protected int doConsume(int entryPoint) throws Exception { + return consumeGroup$1(entryPoint); + } + + protected int consumeGroup$1(int entryPoint) throws Exception { + announceNextLevel(); + final IMarker marker = mark(); + int result = ConsumeResult.SUCCESS; + switch(entryPoint) { + case -1: // use fall through semantics of switch case + result = ConsumeResult.EMPTY_MATCH; + case 0: + announceNextStep(); + result = consumeKeyword$4(nextEntryPoint()); + if (result!=ConsumeResult.SUCCESS) { + error("Another token expected.", getRule().ele000KeywordOverriddenOtherElement()); + marker.commit(); + announceLevelFinished(); + return result; + } + case 1: + announceNextStep(); + result = consumeAssignment$5(nextEntryPoint()); + if (result!=ConsumeResult.SUCCESS) { + error("Another token expected.", getRule().ele001AssignmentName()); + marker.commit(); + announceLevelFinished(); + return result; + } + case 2: + announceNextStep(); + result = consumeKeyword$7(nextEntryPoint()); + if (result!=ConsumeResult.SUCCESS) { + error("Another token expected.", getRule().ele01KeywordHyphenMinus()); + marker.commit(); + announceLevelFinished(); + return result; + } + case 3: + announceNextStep(); + result = consumeAssignment$8(nextEntryPoint()); + if (result!=ConsumeResult.SUCCESS) { + error("Another token expected.", getRule().ele1AssignmentAge()); + marker.commit(); + announceLevelFinished(); + return result; + } + } + marker.commit(); + announceLevelFinished(); + return result; + } + + protected int consumeKeyword$4(int entryPoint) throws Exception { + return consumeKeyword(getRule().ele000KeywordOverriddenOtherElement(), null, false, false, getKeyword$4$Delimiter()); + } + + protected int consumeAssignment$5(int entryPoint) throws Exception { + int result = ConsumeResult.EMPTY_MATCH; + int tempResult; + announceNextLevel(); + tempResult = consumeTerminal(idConsumer, "name", false, false, getRule().ele0010LexerRuleCallID(), getRuleCall$6$Delimiter()); + if (tempResult == ConsumeResult.SUCCESS) { + announceLevelFinished(); + return tempResult; + } + result = tempResult >= result ? tempResult : result; + announceLevelFinished(); + return result; + } + + protected int consumeKeyword$7(int entryPoint) throws Exception { + return consumeKeyword(getRule().ele01KeywordHyphenMinus(), null, false, false, getKeyword$7$Delimiter()); + } + + protected int consumeAssignment$8(int entryPoint) throws Exception { + int result = ConsumeResult.EMPTY_MATCH; + int tempResult; + announceNextLevel(); + tempResult = consumeTerminal(intConsumer, "age", false, false, getRule().ele10LexerRuleCallINT(), getRuleCall$9$Delimiter()); + if (tempResult == ConsumeResult.SUCCESS) { + announceLevelFinished(); + return tempResult; + } + result = tempResult >= result ? tempResult : result; + announceLevelFinished(); + return result; + } + + public OverridableParserRule2Elements getRule() { + return ConcreteTestLanguageGrammarAccess.INSTANCE.prOverridableParserRule2(); + } + + @Override + protected EObject getGrammarElement() { + return getRule().getRule(); + } + + @Override + protected String getDefaultTypeName() { + return "AType2"; + } + + public void setIdConsumer(ITerminalConsumer idConsumer) { + this.idConsumer = idConsumer; + } + + public void setIntConsumer(ITerminalConsumer intConsumer) { + this.intConsumer = intConsumer; + } + + public ICharacterClass getKeyword$4$Delimiter() { + return keyword$4$Delimiter; + } + + public void setKeyword$4$Delimiter(ICharacterClass characterClass) { + keyword$4$Delimiter = characterClass != null ? characterClass : ICharacterClass.Factory.nullClass(); + } + + public ICharacterClass getKeyword$7$Delimiter() { + return keyword$7$Delimiter; + } + + public void setKeyword$7$Delimiter(ICharacterClass characterClass) { + keyword$7$Delimiter = characterClass != null ? characterClass : ICharacterClass.Factory.nullClass(); + } + + public ISequenceMatcher getRuleCall$6$Delimiter() { + return ruleCall$6$Delimiter; + } + + public void setRuleCall$6$Delimiter(ISequenceMatcher matcher) { + ruleCall$6$Delimiter = matcher != null ? matcher : ISequenceMatcher.Factory.nullMatcher(); + } + + public ISequenceMatcher getRuleCall$9$Delimiter() { + return ruleCall$9$Delimiter; + } + + public void setRuleCall$9$Delimiter(ISequenceMatcher matcher) { + ruleCall$9$Delimiter = matcher != null ? matcher : ISequenceMatcher.Factory.nullMatcher(); + } + +} diff --git a/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/grammarinheritance/parser/packrat/consumers/ConcreteTestLanguageRootRuleConsumer.java b/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/grammarinheritance/parser/packrat/consumers/ConcreteTestLanguageRootRuleConsumer.java index c996e08..8068077 100644 --- a/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/grammarinheritance/parser/packrat/consumers/ConcreteTestLanguageRootRuleConsumer.java +++ b/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/grammarinheritance/parser/packrat/consumers/ConcreteTestLanguageRootRuleConsumer.java @@ -19,6 +19,7 @@ import org.eclipse.xtext.grammarinheritance.services.ConcreteTestLanguageGrammar import org.eclipse.xtext.grammarinheritance.parser.packrat.consumers.ConcreteTestLanguageCallExtendedParserRuleConsumer; import org.eclipse.xtext.grammarinheritance.parser.packrat.consumers.ConcreteTestLanguageCallOverridenParserRuleConsumer; import org.eclipse.xtext.grammarinheritance.parser.packrat.consumers.ConcreteTestLanguageConcreteParserRuleConsumer; +import org.eclipse.xtext.grammarinheritance.parser.packrat.consumers.ConcreteTestLanguageOverridableParserRule2Consumer; @SuppressWarnings("unused") public final class ConcreteTestLanguageRootRuleConsumer extends NonTerminalConsumer { @@ -26,6 +27,7 @@ public final class ConcreteTestLanguageRootRuleConsumer extends NonTerminalConsu private INonTerminalConsumer callExtendedParserRuleConsumer; private INonTerminalConsumer callOverridenParserRuleConsumer; private INonTerminalConsumer concreteParserRuleConsumer; + private INonTerminalConsumer overridableParserRule2Consumer; public ConcreteTestLanguageRootRuleConsumer(INonTerminalConsumerConfiguration configuration, ITerminalConsumer[] hiddenTokens) { super(configuration, hiddenTokens); @@ -43,33 +45,42 @@ public final class ConcreteTestLanguageRootRuleConsumer extends NonTerminalConsu result.reset(); case 0: result.nextAlternative(); - if (result.isAlternativeDone(consumeRuleCall$3(nextEntryPoint()))) { + if (result.isAlternativeDone(consumeRuleCall$4(nextEntryPoint()))) { return result.getResult(); } case 1: result.nextAlternative(); - if (result.isAlternativeDone(consumeRuleCall$4(nextEntryPoint()))) { + if (result.isAlternativeDone(consumeRuleCall$5(nextEntryPoint()))) { return result.getResult(); } case 2: result.nextAlternative(); - if (result.isAlternativeDone(consumeRuleCall$5(nextEntryPoint()))) { + if (result.isAlternativeDone(consumeRuleCall$6(nextEntryPoint()))) { + return result.getResult(); + } + case 3: + result.nextAlternative(); + if (result.isAlternativeDone(consumeRuleCall$7(nextEntryPoint()))) { return result.getResult(); } } return result.getResult(); } - protected int consumeRuleCall$3(int entryPoint) throws Exception { - return consumeNonTerminal(concreteParserRuleConsumer, null, false, false, false, getRule().ele00ParserRuleCallConcreteParserRule()); - } - protected int consumeRuleCall$4(int entryPoint) throws Exception { - return consumeNonTerminal(callOverridenParserRuleConsumer, null, false, false, false, getRule().ele01ParserRuleCallCallOverridenParserRule()); + return consumeNonTerminal(concreteParserRuleConsumer, null, false, false, false, getRule().ele000ParserRuleCallConcreteParserRule()); } protected int consumeRuleCall$5(int entryPoint) throws Exception { - return consumeNonTerminal(callExtendedParserRuleConsumer, null, false, false, false, getRule().ele1ParserRuleCallCallExtendedParserRule()); + return consumeNonTerminal(callOverridenParserRuleConsumer, null, false, false, false, getRule().ele001ParserRuleCallCallOverridenParserRule()); + } + + protected int consumeRuleCall$6(int entryPoint) throws Exception { + return consumeNonTerminal(callExtendedParserRuleConsumer, null, false, false, false, getRule().ele01ParserRuleCallCallExtendedParserRule()); + } + + protected int consumeRuleCall$7(int entryPoint) throws Exception { + return consumeNonTerminal(overridableParserRule2Consumer, null, false, false, false, getRule().ele1ParserRuleCallOverridableParserRule2()); } public RootRuleElements getRule() { @@ -98,4 +109,8 @@ public final class ConcreteTestLanguageRootRuleConsumer extends NonTerminalConsu this.concreteParserRuleConsumer = concreteParserRuleConsumer; } + public void setOverridableParserRule2Consumer(INonTerminalConsumer overridableParserRule2Consumer) { + this.overridableParserRule2Consumer = overridableParserRule2Consumer; + } + } diff --git a/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/grammarinheritance/parsetree/reconstr/ConcreteTestLanguageParseTreeConstructor.java b/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/grammarinheritance/parsetree/reconstr/ConcreteTestLanguageParseTreeConstructor.java index 2dd4d71..0a6af77 100644 --- a/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/grammarinheritance/parsetree/reconstr/ConcreteTestLanguageParseTreeConstructor.java +++ b/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/grammarinheritance/parsetree/reconstr/ConcreteTestLanguageParseTreeConstructor.java @@ -23,6 +23,7 @@ public class ConcreteTestLanguageParseTreeConstructor extends AbstractParseTreeC if(inst.isInstanceOf("ConcreteParserRule") && (s = new ConcreteParserRule_Group(inst, null).firstSolution()) != null && isConsumed(s,null)) return s; if(inst.isInstanceOf("AType") && (s = new OverridableParserRule_Group(inst, null).firstSolution()) != null && isConsumed(s,null)) return s; if(inst.isInstanceOf("CallOverridenParserRule") && (s = new CallOverridenParserRule_Assignment_call(inst, null).firstSolution()) != null && isConsumed(s,null)) return s; + if(inst.isInstanceOf("AType2") && (s = new OverridableParserRule2_Group(inst, null).firstSolution()) != null && isConsumed(s,null)) return s; if(inst.isInstanceOf("AType") && (s = new ExtendableParserRule_Alternatives(inst, null).firstSolution()) != null && isConsumed(s,null)) return s; if(inst.isInstanceOf("Subrule1") && (s = new Subrule1_Group(inst, null).firstSolution()) != null && isConsumed(s,null)) return s; if(inst.isInstanceOf("Subrule2") && (s = new Subrule2_Group(inst, null).firstSolution()) != null && isConsumed(s,null)) return s; @@ -37,12 +38,12 @@ public class ConcreteTestLanguageParseTreeConstructor extends AbstractParseTreeC /************ begin Rule RootRule **************** * - * RootRule: ConcreteParserRule|CallOverridenParserRule|CallExtendedParserRule; + * RootRule: ConcreteParserRule|CallOverridenParserRule|CallExtendedParserRule|OverridableParserRule2; * **/ -// ConcreteParserRule|CallOverridenParserRule|CallExtendedParserRule +// ConcreteParserRule|CallOverridenParserRule|CallExtendedParserRule|OverridableParserRule2 protected class RootRule_Alternatives extends AlternativesToken { public RootRule_Alternatives(IInstanceDescription curr, AbstractToken pred) { @@ -55,7 +56,7 @@ protected class RootRule_Alternatives extends AlternativesToken { @Override protected Solution createSolution() { - AbstractToken t = (first) ? new RootRule_1_RuleCall_CallExtendedParserRule(current, this) : new RootRule_0_Alternatives(current, this); + AbstractToken t = (first) ? new RootRule_1_RuleCall_OverridableParserRule2(current, this) : new RootRule_0_Alternatives(current, this); Solution s = t.firstSolution(); if(s == null && activateNextSolution()) s = createSolution(); if(s == null) return null; @@ -64,7 +65,7 @@ protected class RootRule_Alternatives extends AlternativesToken { } } -// ConcreteParserRule|CallOverridenParserRule +// ConcreteParserRule|CallOverridenParserRule|CallExtendedParserRule protected class RootRule_0_Alternatives extends AlternativesToken { public RootRule_0_Alternatives(IInstanceDescription curr, AbstractToken pred) { @@ -77,7 +78,29 @@ protected class RootRule_0_Alternatives extends AlternativesToken { @Override protected Solution createSolution() { - AbstractToken t = (first) ? new RootRule_0_1_RuleCall_CallOverridenParserRule(current, this) : new RootRule_0_0_RuleCall_ConcreteParserRule(current, this); + AbstractToken t = (first) ? new RootRule_0_1_RuleCall_CallExtendedParserRule(current, this) : new RootRule_0_0_Alternatives(current, this); + Solution s = t.firstSolution(); + if(s == null && activateNextSolution()) s = createSolution(); + if(s == null) return null; + last = s.getPredecessor(); + return s; + } +} + +// ConcreteParserRule|CallOverridenParserRule +protected class RootRule_0_0_Alternatives extends AlternativesToken { + + public RootRule_0_0_Alternatives(IInstanceDescription curr, AbstractToken pred) { + super(curr, pred, !IS_MANY, IS_REQUIRED); + } + + public Alternatives getGrammarElement() { + return ConcreteTestLanguageGrammarAccess.INSTANCE.prRootRule().ele00Alternatives(); + } + + @Override + protected Solution createSolution() { + AbstractToken t = (first) ? new RootRule_0_0_1_RuleCall_CallOverridenParserRule(current, this) : new RootRule_0_0_0_RuleCall_ConcreteParserRule(current, this); Solution s = t.firstSolution(); if(s == null && activateNextSolution()) s = createSolution(); if(s == null) return null; @@ -87,14 +110,14 @@ protected class RootRule_0_Alternatives extends AlternativesToken { } // ConcreteParserRule -protected class RootRule_0_0_RuleCall_ConcreteParserRule extends RuleCallToken { +protected class RootRule_0_0_0_RuleCall_ConcreteParserRule extends RuleCallToken { - public RootRule_0_0_RuleCall_ConcreteParserRule(IInstanceDescription curr, AbstractToken pred) { + public RootRule_0_0_0_RuleCall_ConcreteParserRule(IInstanceDescription curr, AbstractToken pred) { super(curr, pred, !IS_MANY, IS_REQUIRED); } public RuleCall getGrammarElement() { - return ConcreteTestLanguageGrammarAccess.INSTANCE.prRootRule().ele00ParserRuleCallConcreteParserRule(); + return ConcreteTestLanguageGrammarAccess.INSTANCE.prRootRule().ele000ParserRuleCallConcreteParserRule(); } @Override @@ -106,14 +129,14 @@ protected class RootRule_0_0_RuleCall_ConcreteParserRule extends RuleCallToken { } // CallOverridenParserRule -protected class RootRule_0_1_RuleCall_CallOverridenParserRule extends RuleCallToken { +protected class RootRule_0_0_1_RuleCall_CallOverridenParserRule extends RuleCallToken { - public RootRule_0_1_RuleCall_CallOverridenParserRule(IInstanceDescription curr, AbstractToken pred) { + public RootRule_0_0_1_RuleCall_CallOverridenParserRule(IInstanceDescription curr, AbstractToken pred) { super(curr, pred, !IS_MANY, IS_REQUIRED); } public RuleCall getGrammarElement() { - return ConcreteTestLanguageGrammarAccess.INSTANCE.prRootRule().ele01ParserRuleCallCallOverridenParserRule(); + return ConcreteTestLanguageGrammarAccess.INSTANCE.prRootRule().ele001ParserRuleCallCallOverridenParserRule(); } @Override @@ -126,14 +149,14 @@ protected class RootRule_0_1_RuleCall_CallOverridenParserRule extends RuleCallTo // CallExtendedParserRule -protected class RootRule_1_RuleCall_CallExtendedParserRule extends RuleCallToken { +protected class RootRule_0_1_RuleCall_CallExtendedParserRule extends RuleCallToken { - public RootRule_1_RuleCall_CallExtendedParserRule(IInstanceDescription curr, AbstractToken pred) { + public RootRule_0_1_RuleCall_CallExtendedParserRule(IInstanceDescription curr, AbstractToken pred) { super(curr, pred, !IS_MANY, IS_REQUIRED); } public RuleCall getGrammarElement() { - return ConcreteTestLanguageGrammarAccess.INSTANCE.prRootRule().ele1ParserRuleCallCallExtendedParserRule(); + return ConcreteTestLanguageGrammarAccess.INSTANCE.prRootRule().ele01ParserRuleCallCallExtendedParserRule(); } @Override @@ -145,6 +168,26 @@ protected class RootRule_1_RuleCall_CallExtendedParserRule extends RuleCallToken } +// OverridableParserRule2 +protected class RootRule_1_RuleCall_OverridableParserRule2 extends RuleCallToken { + + public RootRule_1_RuleCall_OverridableParserRule2(IInstanceDescription curr, AbstractToken pred) { + super(curr, pred, !IS_MANY, IS_REQUIRED); + } + + public RuleCall getGrammarElement() { + return ConcreteTestLanguageGrammarAccess.INSTANCE.prRootRule().ele1ParserRuleCallOverridableParserRule2(); + } + + @Override + protected Solution createSolution() { + if(checkForRecursion(OverridableParserRule2_Group.class, current)) return null; + if(!current.isInstanceOf("AType2")) return null; + return new OverridableParserRule2_Group(current, this).firstSolution(); + } +} + + /************ end Rule RootRule ****************/ @@ -446,6 +489,178 @@ protected class CallOverridenParserRule_Assignment_call extends AssignmentToken /************ end Rule CallOverridenParserRule ****************/ +/************ begin Rule OverridableParserRule2 **************** + * + * OverridableParserRule2 returns AType2: "overridden other element" name=ID "-" age=INT; + * + **/ + + +// "overridden other element" name=ID "-" age=INT +protected class OverridableParserRule2_Group extends GroupToken { + + public OverridableParserRule2_Group(IInstanceDescription curr, AbstractToken pred) { + super(curr, pred, !IS_MANY, IS_REQUIRED); + } + + public Group getGrammarElement() { + return ConcreteTestLanguageGrammarAccess.INSTANCE.prOverridableParserRule2().eleGroup(); + } + + @Override + protected Solution createSolution() { + Solution s1 = new OverridableParserRule2_1_Assignment_age(current, this).firstSolution(); + while(s1 != null) { + Solution s2 = new OverridableParserRule2_0_Group(s1.getCurrent(), s1.getPredecessor()).firstSolution(); + if(s2 == null) { + s1 = s1.getPredecessor().nextSolution(this,s1); + if(s1 == null) return null; + } else { + last = s2.getPredecessor(); + return s2; + } + } + return null; + + } +} + +// "overridden other element" name=ID "-" +protected class OverridableParserRule2_0_Group extends GroupToken { + + public OverridableParserRule2_0_Group(IInstanceDescription curr, AbstractToken pred) { + super(curr, pred, !IS_MANY, IS_REQUIRED); + } + + public Group getGrammarElement() { + return ConcreteTestLanguageGrammarAccess.INSTANCE.prOverridableParserRule2().ele0Group(); + } + + @Override + protected Solution createSolution() { + Solution s1 = new OverridableParserRule2_0_1_Keyword(current, this).firstSolution(); + while(s1 != null) { + Solution s2 = new OverridableParserRule2_0_0_Group(s1.getCurrent(), s1.getPredecessor()).firstSolution(); + if(s2 == null) { + s1 = s1.getPredecessor().nextSolution(this,s1); + if(s1 == null) return null; + } else { + last = s2.getPredecessor(); + return s2; + } + } + return null; + + } +} + +// "overridden other element" name=ID +protected class OverridableParserRule2_0_0_Group extends GroupToken { + + public OverridableParserRule2_0_0_Group(IInstanceDescription curr, AbstractToken pred) { + super(curr, pred, !IS_MANY, IS_REQUIRED); + } + + public Group getGrammarElement() { + return ConcreteTestLanguageGrammarAccess.INSTANCE.prOverridableParserRule2().ele00Group(); + } + + @Override + protected Solution createSolution() { + Solution s1 = new OverridableParserRule2_0_0_1_Assignment_name(current, this).firstSolution(); + while(s1 != null) { + Solution s2 = new OverridableParserRule2_0_0_0_Keyword_overriddenotherelement(s1.getCurrent(), s1.getPredecessor()).firstSolution(); + if(s2 == null) { + s1 = s1.getPredecessor().nextSolution(this,s1); + if(s1 == null) return null; + } else { + last = s2.getPredecessor(); + return s2; + } + } + return null; + + } +} + +// "overridden other element" +protected class OverridableParserRule2_0_0_0_Keyword_overriddenotherelement extends KeywordToken { + + public OverridableParserRule2_0_0_0_Keyword_overriddenotherelement(IInstanceDescription curr, AbstractToken pred) { + super(curr, pred, !IS_MANY, IS_REQUIRED); + } + + public Keyword getGrammarElement() { + return ConcreteTestLanguageGrammarAccess.INSTANCE.prOverridableParserRule2().ele000KeywordOverriddenOtherElement(); + } +} + +// name=ID +protected class OverridableParserRule2_0_0_1_Assignment_name extends AssignmentToken { + + public OverridableParserRule2_0_0_1_Assignment_name(IInstanceDescription curr, AbstractToken pred) { + super(curr, pred, !IS_MANY, IS_REQUIRED); + } + + public Assignment getGrammarElement() { + return ConcreteTestLanguageGrammarAccess.INSTANCE.prOverridableParserRule2().ele001AssignmentName(); + } + + @Override + protected Solution createSolution() { + if((value = current.getConsumable("name",IS_REQUIRED)) == null) return null; + IInstanceDescription obj = current.cloneAndConsume("name"); + if(Boolean.TRUE.booleanValue()) { // xtext::RuleCall FIXME: check if value is valid for lexer rule + type = AssignmentType.LRC; + element = ConcreteTestLanguageGrammarAccess.INSTANCE.prOverridableParserRule2().ele0010LexerRuleCallID(); + return new Solution(obj); + } + return null; + } +} + + +// "-" +protected class OverridableParserRule2_0_1_Keyword extends KeywordToken { + + public OverridableParserRule2_0_1_Keyword(IInstanceDescription curr, AbstractToken pred) { + super(curr, pred, !IS_MANY, IS_REQUIRED); + } + + public Keyword getGrammarElement() { + return ConcreteTestLanguageGrammarAccess.INSTANCE.prOverridableParserRule2().ele01KeywordHyphenMinus(); + } +} + + +// age=INT +protected class OverridableParserRule2_1_Assignment_age extends AssignmentToken { + + public OverridableParserRule2_1_Assignment_age(IInstanceDescription curr, AbstractToken pred) { + super(curr, pred, !IS_MANY, IS_REQUIRED); + } + + public Assignment getGrammarElement() { + return ConcreteTestLanguageGrammarAccess.INSTANCE.prOverridableParserRule2().ele1AssignmentAge(); + } + + @Override + protected Solution createSolution() { + if((value = current.getConsumable("age",IS_REQUIRED)) == null) return null; + IInstanceDescription obj = current.cloneAndConsume("age"); + if(Boolean.TRUE.booleanValue()) { // xtext::RuleCall FIXME: check if value is valid for lexer rule + type = AssignmentType.LRC; + element = ConcreteTestLanguageGrammarAccess.INSTANCE.prOverridableParserRule2().ele10LexerRuleCallINT(); + return new Solution(obj); + } + return null; + } +} + + +/************ end Rule OverridableParserRule2 ****************/ + + /************ begin Rule ExtendableParserRule **************** * * ExtendableParserRule returns AType: Subrule1|Subrule2|Subrule3; diff --git a/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/grammarinheritance/services/AbstractTestLanguageGrammarAccess.java b/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/grammarinheritance/services/AbstractTestLanguageGrammarAccess.java index acfc2a7..09d6e1e 100644 --- a/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/grammarinheritance/services/AbstractTestLanguageGrammarAccess.java +++ b/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/grammarinheritance/services/AbstractTestLanguageGrammarAccess.java @@ -79,9 +79,32 @@ public class AbstractTestLanguageGrammarAccess extends BaseEPackageAccess implem public RuleCall ele10LexerRuleCallID() { return c10LexerRuleCallID; } } - public class AbstractCallExtendedParserRuleElements implements IParserRuleAccess { + public class OverridableParserRule2Elements implements IParserRuleAccess { private final ParserRule rule = (ParserRule) getGrammar().eContents().get(5); private final Group cGroup = (Group)rule.eContents().get(1); + private final Keyword c0KeywordOtherElement = (Keyword)cGroup.eContents().get(0); + private final Assignment c1AssignmentName = (Assignment)cGroup.eContents().get(1); + private final RuleCall c10LexerRuleCallSTRING = (RuleCall)c1AssignmentName.eContents().get(0); + + // OverridableParserRule2 returns AType: "other element" name=STRING; + public ParserRule getRule() { return rule; } + + // "other element" name=STRING + public Group eleGroup() { return cGroup; } + + // "other element" + public Keyword ele0KeywordOtherElement() { return c0KeywordOtherElement; } + + // name=STRING + public Assignment ele1AssignmentName() { return c1AssignmentName; } + + // STRING + public RuleCall ele10LexerRuleCallSTRING() { return c10LexerRuleCallSTRING; } + } + + public class AbstractCallExtendedParserRuleElements implements IParserRuleAccess { + private final ParserRule rule = (ParserRule) getGrammar().eContents().get(6); + private final Group cGroup = (Group)rule.eContents().get(1); private final Keyword c0KeywordExtendedmodel = (Keyword)cGroup.eContents().get(0); private final Assignment c1AssignmentElements = (Assignment)cGroup.eContents().get(1); private final RuleCall c10ParserRuleCallExtendableParserRule = (RuleCall)c1AssignmentElements.eContents().get(0); @@ -103,7 +126,7 @@ public class AbstractTestLanguageGrammarAccess extends BaseEPackageAccess implem } public class ExtendableParserRuleElements implements IParserRuleAccess { - private final ParserRule rule = (ParserRule) getGrammar().eContents().get(6); + private final ParserRule rule = (ParserRule) getGrammar().eContents().get(7); private final Group cGroup = (Group)rule.eContents().get(1); private final Keyword c0KeywordElement = (Keyword)cGroup.eContents().get(0); private final Assignment c1AssignmentName = (Assignment)cGroup.eContents().get(1); @@ -132,6 +155,7 @@ public class AbstractTestLanguageGrammarAccess extends BaseEPackageAccess implem private static InheritedParserRuleElements pInheritedParserRule; private static AbstractCallOverridenParserRuleElements pAbstractCallOverridenParserRule; private static OverridableParserRuleElements pOverridableParserRule; + private static OverridableParserRule2Elements pOverridableParserRule2; private static AbstractCallExtendedParserRuleElements pAbstractCallExtendedParserRule; private static ExtendableParserRuleElements pExtendableParserRule; private static LexerRule lREAL; @@ -167,6 +191,11 @@ public class AbstractTestLanguageGrammarAccess extends BaseEPackageAccess implem return (pOverridableParserRule != null) ? pOverridableParserRule : (pOverridableParserRule = new OverridableParserRuleElements()); } + // OverridableParserRule2 returns AType: "other element" name=STRING; + public OverridableParserRule2Elements prOverridableParserRule2() { + return (pOverridableParserRule2 != null) ? pOverridableParserRule2 : (pOverridableParserRule2 = new OverridableParserRule2Elements()); + } + // AbstractCallExtendedParserRule returns AModel: "extendedmodel" (elements+=ExtendableParserRule)*; public AbstractCallExtendedParserRuleElements prAbstractCallExtendedParserRule() { return (pAbstractCallExtendedParserRule != null) ? pAbstractCallExtendedParserRule : (pAbstractCallExtendedParserRule = new AbstractCallExtendedParserRuleElements()); @@ -179,11 +208,11 @@ public class AbstractTestLanguageGrammarAccess extends BaseEPackageAccess implem // lexer REAL returns EDouble: "RULE_INT \'.\' RULE_INT"; public LexerRule lrREAL() { - return (lREAL != null) ? lREAL : (lREAL = (LexerRule) getGrammar().eContents().get(7)); + return (lREAL != null) ? lREAL : (lREAL = (LexerRule) getGrammar().eContents().get(8)); } // lexer ID: "(\'^\')?(\'a\'..\'z\'|\'A\'..\'Z\'|\'\u00F6\'|\'\u00E4\'|\'\u00FC\'|\'_\') (\'a\'..\'z\'|\'A\'..\'Z\'|\'_\'|\'0\'..\'9\')*"; public LexerRule lrID() { - return (lID != null) ? lID : (lID = (LexerRule) getGrammar().eContents().get(8)); + return (lID != null) ? lID : (lID = (LexerRule) getGrammar().eContents().get(9)); } } diff --git a/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/grammarinheritance/services/ConcreteTestLanguageGrammarAccess.java b/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/grammarinheritance/services/ConcreteTestLanguageGrammarAccess.java index f0c5ea6..5697b81 100644 --- a/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/grammarinheritance/services/ConcreteTestLanguageGrammarAccess.java +++ b/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/grammarinheritance/services/ConcreteTestLanguageGrammarAccess.java @@ -14,27 +14,35 @@ public class ConcreteTestLanguageGrammarAccess extends BaseEPackageAccess implem private final ParserRule rule = (ParserRule) getGrammar().eContents().get(2); private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); private final Alternatives c0Alternatives = (Alternatives)cAlternatives.eContents().get(0); - private final RuleCall c00ParserRuleCallConcreteParserRule = (RuleCall)c0Alternatives.eContents().get(0); - private final RuleCall c01ParserRuleCallCallOverridenParserRule = (RuleCall)c0Alternatives.eContents().get(1); - private final RuleCall c1ParserRuleCallCallExtendedParserRule = (RuleCall)cAlternatives.eContents().get(1); + private final Alternatives c00Alternatives = (Alternatives)c0Alternatives.eContents().get(0); + private final RuleCall c000ParserRuleCallConcreteParserRule = (RuleCall)c00Alternatives.eContents().get(0); + private final RuleCall c001ParserRuleCallCallOverridenParserRule = (RuleCall)c00Alternatives.eContents().get(1); + private final RuleCall c01ParserRuleCallCallExtendedParserRule = (RuleCall)c0Alternatives.eContents().get(1); + private final RuleCall c1ParserRuleCallOverridableParserRule2 = (RuleCall)cAlternatives.eContents().get(1); - // RootRule: ConcreteParserRule|CallOverridenParserRule|CallExtendedParserRule; + // RootRule: ConcreteParserRule|CallOverridenParserRule|CallExtendedParserRule|OverridableParserRule2; public ParserRule getRule() { return rule; } - // ConcreteParserRule|CallOverridenParserRule|CallExtendedParserRule + // ConcreteParserRule|CallOverridenParserRule|CallExtendedParserRule|OverridableParserRule2 public Alternatives eleAlternatives() { return cAlternatives; } - // ConcreteParserRule|CallOverridenParserRule + // ConcreteParserRule|CallOverridenParserRule|CallExtendedParserRule public Alternatives ele0Alternatives() { return c0Alternatives; } + // ConcreteParserRule|CallOverridenParserRule + public Alternatives ele00Alternatives() { return c00Alternatives; } + // ConcreteParserRule - public RuleCall ele00ParserRuleCallConcreteParserRule() { return c00ParserRuleCallConcreteParserRule; } + public RuleCall ele000ParserRuleCallConcreteParserRule() { return c000ParserRuleCallConcreteParserRule; } // CallOverridenParserRule - public RuleCall ele01ParserRuleCallCallOverridenParserRule() { return c01ParserRuleCallCallOverridenParserRule; } + public RuleCall ele001ParserRuleCallCallOverridenParserRule() { return c001ParserRuleCallCallOverridenParserRule; } // CallExtendedParserRule - public RuleCall ele1ParserRuleCallCallExtendedParserRule() { return c1ParserRuleCallCallExtendedParserRule; } + public RuleCall ele01ParserRuleCallCallExtendedParserRule() { return c01ParserRuleCallCallExtendedParserRule; } + + // OverridableParserRule2 + public RuleCall ele1ParserRuleCallOverridableParserRule2() { return c1ParserRuleCallOverridableParserRule2; } } public class ConcreteParserRuleElements implements IParserRuleAccess { @@ -118,8 +126,51 @@ public class ConcreteTestLanguageGrammarAccess extends BaseEPackageAccess implem public RuleCall ele0ParserRuleCallAbstractCallOverridenParserRule() { return c0ParserRuleCallAbstractCallOverridenParserRule; } } - public class ExtendableParserRuleElements implements IParserRuleAccess { + public class OverridableParserRule2Elements implements IParserRuleAccess { private final ParserRule rule = (ParserRule) getGrammar().eContents().get(6); + private final Group cGroup = (Group)rule.eContents().get(1); + private final Group c0Group = (Group)cGroup.eContents().get(0); + private final Group c00Group = (Group)c0Group.eContents().get(0); + private final Keyword c000KeywordOverriddenOtherElement = (Keyword)c00Group.eContents().get(0); + private final Assignment c001AssignmentName = (Assignment)c00Group.eContents().get(1); + private final RuleCall c0010LexerRuleCallID = (RuleCall)c001AssignmentName.eContents().get(0); + private final Keyword c01KeywordHyphenMinus = (Keyword)c0Group.eContents().get(1); + private final Assignment c1AssignmentAge = (Assignment)cGroup.eContents().get(1); + private final RuleCall c10LexerRuleCallINT = (RuleCall)c1AssignmentAge.eContents().get(0); + + // OverridableParserRule2 returns AType2: "overridden other element" name=ID "-" age=INT; + public ParserRule getRule() { return rule; } + + // "overridden other element" name=ID "-" age=INT + public Group eleGroup() { return cGroup; } + + // "overridden other element" name=ID "-" + public Group ele0Group() { return c0Group; } + + // "overridden other element" name=ID + public Group ele00Group() { return c00Group; } + + // "overridden other element" + public Keyword ele000KeywordOverriddenOtherElement() { return c000KeywordOverriddenOtherElement; } + + // name=ID + public Assignment ele001AssignmentName() { return c001AssignmentName; } + + // ID + public RuleCall ele0010LexerRuleCallID() { return c0010LexerRuleCallID; } + + // "-" + public Keyword ele01KeywordHyphenMinus() { return c01KeywordHyphenMinus; } + + // age=INT + public Assignment ele1AssignmentAge() { return c1AssignmentAge; } + + // INT + public RuleCall ele10LexerRuleCallINT() { return c10LexerRuleCallINT; } + } + + public class ExtendableParserRuleElements implements IParserRuleAccess { + private final ParserRule rule = (ParserRule) getGrammar().eContents().get(7); private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1); private final Alternatives c0Alternatives = (Alternatives)cAlternatives.eContents().get(0); private final RuleCall c00ParserRuleCallSubrule1 = (RuleCall)c0Alternatives.eContents().get(0); @@ -146,7 +197,7 @@ public class ConcreteTestLanguageGrammarAccess extends BaseEPackageAccess implem } public class Subrule1Elements implements IParserRuleAccess { - private final ParserRule rule = (ParserRule) getGrammar().eContents().get(7); + private final ParserRule rule = (ParserRule) getGrammar().eContents().get(8); private final Group cGroup = (Group)rule.eContents().get(1); private final Group c0Group = (Group)cGroup.eContents().get(0); private final Keyword c00KeywordSubrule1 = (Keyword)c0Group.eContents().get(0); @@ -181,7 +232,7 @@ public class ConcreteTestLanguageGrammarAccess extends BaseEPackageAccess implem } public class Subrule2Elements implements IParserRuleAccess { - private final ParserRule rule = (ParserRule) getGrammar().eContents().get(8); + private final ParserRule rule = (ParserRule) getGrammar().eContents().get(9); private final Group cGroup = (Group)rule.eContents().get(1); private final Group c0Group = (Group)cGroup.eContents().get(0); private final Keyword c00KeywordSubrule3 = (Keyword)c0Group.eContents().get(0); @@ -216,7 +267,7 @@ public class ConcreteTestLanguageGrammarAccess extends BaseEPackageAccess implem } public class Subrule3Elements implements IParserRuleAccess { - private final ParserRule rule = (ParserRule) getGrammar().eContents().get(9); + private final ParserRule rule = (ParserRule) getGrammar().eContents().get(10); private final Group cGroup = (Group)rule.eContents().get(1); private final Group c0Group = (Group)cGroup.eContents().get(0); private final Keyword c00KeywordSubrule3 = (Keyword)c0Group.eContents().get(0); @@ -251,7 +302,7 @@ public class ConcreteTestLanguageGrammarAccess extends BaseEPackageAccess implem } public class CallExtendedParserRuleElements implements IParserRuleAccess { - private final ParserRule rule = (ParserRule) getGrammar().eContents().get(10); + private final ParserRule rule = (ParserRule) getGrammar().eContents().get(11); private final Assignment cAssignmentCall = (Assignment)rule.eContents().get(1); private final RuleCall c0ParserRuleCallAbstractCallExtendedParserRule = (RuleCall)cAssignmentCall.eContents().get(0); @@ -273,6 +324,7 @@ public class ConcreteTestLanguageGrammarAccess extends BaseEPackageAccess implem private static ConcreteParserRuleElements pConcreteParserRule; private static OverridableParserRuleElements pOverridableParserRule; private static CallOverridenParserRuleElements pCallOverridenParserRule; + private static OverridableParserRule2Elements pOverridableParserRule2; private static ExtendableParserRuleElements pExtendableParserRule; private static Subrule1Elements pSubrule1; private static Subrule2Elements pSubrule2; @@ -294,7 +346,7 @@ public class ConcreteTestLanguageGrammarAccess extends BaseEPackageAccess implem } - // RootRule: ConcreteParserRule|CallOverridenParserRule|CallExtendedParserRule; + // RootRule: ConcreteParserRule|CallOverridenParserRule|CallExtendedParserRule|OverridableParserRule2; public RootRuleElements prRootRule() { return (pRootRule != null) ? pRootRule : (pRootRule = new RootRuleElements()); } @@ -314,6 +366,11 @@ public class ConcreteTestLanguageGrammarAccess extends BaseEPackageAccess implem return (pCallOverridenParserRule != null) ? pCallOverridenParserRule : (pCallOverridenParserRule = new CallOverridenParserRuleElements()); } + // OverridableParserRule2 returns AType2: "overridden other element" name=ID "-" age=INT; + public OverridableParserRule2Elements prOverridableParserRule2() { + return (pOverridableParserRule2 != null) ? pOverridableParserRule2 : (pOverridableParserRule2 = new OverridableParserRule2Elements()); + } + // ExtendableParserRule returns AType: Subrule1|Subrule2|Subrule3; public ExtendableParserRuleElements prExtendableParserRule() { return (pExtendableParserRule != null) ? pExtendableParserRule : (pExtendableParserRule = new ExtendableParserRuleElements()); 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 index 0d2c868..395a5c8 100644 --- 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 @@ -48,11 +48,11 @@ <eStructuralFeatures xsi:type="ecore:EReference" name="rightRoot" eType="//CreatedObject" containment="true"/> </eClassifiers> <eClassifiers xsi:type="ecore:EClass" name="NamedObject"> - <eStructuralFeatures xsi:type="ecore:EReference" name="assignments" upperBound="-1" eType="//Assignment" containment="true"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="leftMig" eType="//Migration" 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="leftMig" eType="//Migration" containment="true"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="assignments" upperBound="-1" eType="//Assignment" containment="true"/> </eClassifiers> <eClassifiers xsi:type="ecore:EClass" name="ObjectRef" eSuperTypes="//NamedObject"> <eStructuralFeatures xsi:type="ecore:EReference" name="leftRes" eType="//NamedResource"/> diff --git a/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/terminalrules/XtextTerminalsTestLanguage.ecore b/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/terminalrules/XtextTerminalsTestLanguage.ecore index acdaf32..8b7808b 100644 --- a/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/terminalrules/XtextTerminalsTestLanguage.ecore +++ b/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/terminalrules/XtextTerminalsTestLanguage.ecore @@ -14,10 +14,10 @@ <eStructuralFeatures xsi:type="ecore:EReference" name="rules" 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"> diff --git a/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/testlanguages/ReferenceGrammar.ecore b/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/testlanguages/ReferenceGrammar.ecore index 65d8ec7..e6d7703 100644 --- a/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/testlanguages/ReferenceGrammar.ecore +++ b/tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/testlanguages/ReferenceGrammar.ecore @@ -13,12 +13,12 @@ <eStructuralFeatures xsi:type="ecore:EReference" name="familie" upperBound="-1" eType="//Familie" containment="true"/> </eClassifiers> <eClassifiers xsi:type="ecore:EClass" name="Person"> - <eStructuralFeatures xsi:type="ecore:EAttribute" name="age"> - <eType xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EInt"/> - </eStructuralFeatures> <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="age"> + <eType xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EInt"/> + </eStructuralFeatures> </eClassifiers> <eClassifiers xsi:type="ecore:EClass" name="Kind" eSuperTypes="//Person"/> <eClassifiers xsi:type="ecore:EClass" name="Erwachsener" eSuperTypes="//Person"/> diff --git a/tests/org.eclipse.xtext.generator.tests/src/org/eclipse/xtext/GenerateAllTestGrammars.java b/tests/org.eclipse.xtext.generator.tests/src/org/eclipse/xtext/GenerateAllTestGrammars.java index af04239..25374ee 100755 --- a/tests/org.eclipse.xtext.generator.tests/src/org/eclipse/xtext/GenerateAllTestGrammars.java +++ b/tests/org.eclipse.xtext.generator.tests/src/org/eclipse/xtext/GenerateAllTestGrammars.java @@ -50,46 +50,46 @@ import org.eclipse.xtext.valueconverter.Bug250313; /** * @author Sven Efftinge - Initial contribution and API - * + * */ public class GenerateAllTestGrammars { private static String path = "."; private static Logger log = Logger.getLogger(GenerateAllTestGrammars.class); - public final static Class<?>[] testclasses = new Class[] { - LangATestLanguage.class, - AbstractTestLanguage.class, - ConcreteTestLanguage.class, - XtextGrammarTestLanguage.class, - MetamodelRefTestLanguage.class, - MultiGenMMTestLanguage.class, - DummyTestLanguage.class, - TestLanguage.class, - SimpleReconstrTestLanguage.class, - ComplexReconstrTestLanguage.class, - LexerTestLanguage.class, - SimpleExpressionsTestLanguage.class, - ActionTestLanguage.class, - OptionalEmptyTestLanguage.class, - ReferenceGrammarTestLanguage.class, - LookaheadTestLanguage.class, - Bug250313.class, - FowlerDslTestLanguage.class, - TreeTestLanguage.class, - ImportUriTestLanguage.class, - PartialParserTestLanguage.class, - ContentAssistTestLanguage.class, - TransientValuesTest.class, - FormatterTestLanguage.class, - DatatypeRulesTestLanguage.class, - MultiValueFeatureTestLanguage.class, - TerminalRulesTestLanguage.class, - XtextTerminalsTestLanguage.class, - HiddenTerminalsTestLanguage.class, - EpatchTestLanguage.class, - KeywordsTestLanguage.class, - LowerCaseNamedTestLanguage.class + public final static Class<?>[] testclasses = new Class[] { + LangATestLanguage.class, + AbstractTestLanguage.class, + ConcreteTestLanguage.class, + XtextGrammarTestLanguage.class, + MetamodelRefTestLanguage.class, + MultiGenMMTestLanguage.class, + DummyTestLanguage.class, + TestLanguage.class, + SimpleReconstrTestLanguage.class, + ComplexReconstrTestLanguage.class, + LexerTestLanguage.class, + SimpleExpressionsTestLanguage.class, + ActionTestLanguage.class, + OptionalEmptyTestLanguage.class, + ReferenceGrammarTestLanguage.class, + LookaheadTestLanguage.class, + Bug250313.class, + FowlerDslTestLanguage.class, + TreeTestLanguage.class, + ImportUriTestLanguage.class, + PartialParserTestLanguage.class, + ContentAssistTestLanguage.class, + TransientValuesTest.class, + FormatterTestLanguage.class, + DatatypeRulesTestLanguage.class, + MultiValueFeatureTestLanguage.class, + TerminalRulesTestLanguage.class, + XtextTerminalsTestLanguage.class, + HiddenTerminalsTestLanguage.class, + EpatchTestLanguage.class, + KeywordsTestLanguage.class, + LowerCaseNamedTestLanguage.class }; public static void main(String... args) throws Exception { @@ -118,14 +118,14 @@ public class GenerateAllTestGrammars { String filename = "classpath:/" + getGrammarFileName(c); return filename; } - + public static String getGrammarFileName(Class<?> c) { try { Method m = c.getMethod("getGrammarFileName"); if (m != null && Modifier.isStatic(m.getModifiers()) && String.class.equals(m.getReturnType())) - try { - return ((String) m.invoke(null)).replace('.', '/') + ".xtext"; - } + try { + return ((String) m.invoke(null)).replace('.', '/') + ".xtext"; + } catch (Exception e) { log.error("Cannot invoke 'getGrammarFileName'", e); } diff --git a/tests/org.eclipse.xtext.generator.tests/src/org/eclipse/xtext/grammarinheritance/AbstractTestLanguage.xtext b/tests/org.eclipse.xtext.generator.tests/src/org/eclipse/xtext/grammarinheritance/AbstractTestLanguage.xtext index 3b88d8d..cfb2987 100644 --- a/tests/org.eclipse.xtext.generator.tests/src/org/eclipse/xtext/grammarinheritance/AbstractTestLanguage.xtext +++ b/tests/org.eclipse.xtext.generator.tests/src/org/eclipse/xtext/grammarinheritance/AbstractTestLanguage.xtext @@ -13,6 +13,9 @@ AbstractCallOverridenParserRule returns mm::AModel: OverridableParserRule returns mm::AType : 'element' name=ID; +OverridableParserRule2 returns mm::AType : + 'other element' name=STRING; + AbstractCallExtendedParserRule returns mm::AModel: 'extendedmodel' (elements+=ExtendableParserRule)*; diff --git a/tests/org.eclipse.xtext.generator.tests/src/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xtext b/tests/org.eclipse.xtext.generator.tests/src/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xtext index 5bb5834..54add21 100644 --- a/tests/org.eclipse.xtext.generator.tests/src/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xtext +++ b/tests/org.eclipse.xtext.generator.tests/src/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xtext @@ -5,14 +5,12 @@ generate foo "http://holla" import "classpath:/org/eclipse/xtext/grammarinheritance/ametamodel.ecore" as mm RootRule: - ConcreteParserRule | CallOverridenParserRule | CallExtendedParserRule; + ConcreteParserRule | CallOverridenParserRule | CallExtendedParserRule | OverridableParserRule2; // call InheritedParserRule ConcreteParserRule : 'model' magicNumber=REAL ':' (elements+=InheritedParserRule)*; - - // override OverridableParserRule and call it OverridableParserRule returns mm::AType: 'overriddenelement' name=ID; @@ -20,6 +18,10 @@ OverridableParserRule returns mm::AType: CallOverridenParserRule: call=AbstractCallOverridenParserRule; +// override parser rule and change return type +OverridableParserRule2 returns AType2 : + 'overridden other element' name=ID '-' age=INT; + // override and extend ExtendableParserRule and call it ExtendableParserRule returns mm::AType: Subrule1 | Subrule2 | Subrule3; diff --git a/tests/org.eclipse.xtext.generator.tests/src/org/eclipse/xtext/grammarinheritance/InheritanceTest.java b/tests/org.eclipse.xtext.generator.tests/src/org/eclipse/xtext/grammarinheritance/InheritanceTest.java index 7bc3175..1fbea8c 100644 --- a/tests/org.eclipse.xtext.generator.tests/src/org/eclipse/xtext/grammarinheritance/InheritanceTest.java +++ b/tests/org.eclipse.xtext.generator.tests/src/org/eclipse/xtext/grammarinheritance/InheritanceTest.java @@ -8,26 +8,33 @@ *******************************************************************************/ package org.eclipse.xtext.grammarinheritance; +import static org.eclipse.xtext.util.CollectionUtils.map; + +import java.util.Arrays; +import java.util.HashSet; +import java.util.Iterator; +import java.util.Set; + +import org.eclipse.emf.ecore.EClass; import org.eclipse.emf.ecore.EObject; import org.eclipse.emf.ecore.EPackage; +import org.eclipse.xtext.AbstractRule; import org.eclipse.xtext.EcoreUtil2; +import org.eclipse.xtext.GrammarUtil; +import org.eclipse.xtext.TypeRef; import org.eclipse.xtext.tests.AbstractGeneratorTest; +import org.eclipse.xtext.util.Function; public class InheritanceTest extends AbstractGeneratorTest { @Override protected void setUp() throws Exception { super.setUp(); - if (!EPackage.Registry.INSTANCE.containsKey("http://www.eclipse.org/xtext/tests/grammarinheritance")) { - EPackage aMetamodel = EcoreUtil2.loadEPackage( - "classpath:/org/eclipse/xtext/grammarinheritance/ametamodel.ecore", - InheritanceTest.class.getClassLoader()); - if (aMetamodel == null) - throw new IllegalStateException( - "Couldn't load EPackage from 'classpath:/org/eclipse/xtext/grammarinheritance/ametamodel.ecore'"); - EPackage.Registry.INSTANCE.put("http://www.eclipse.org/xtext/tests/grammarinheritance", aMetamodel); - } - with(new ConcreteTestLanguageRuntimeModule()); + EPackage aMetamodel = EcoreUtil2.loadEPackage( + "classpath:/org/eclipse/xtext/grammarinheritance/ametamodel.ecore", + InheritanceTest.class.getClassLoader()); + EPackage.Registry.INSTANCE.put("http://www.eclipse.org/xtext/tests/grammarinheritance", aMetamodel); + with(ConcreteTestLanguageStandaloneSetup.class); } public void testSimple() throws Exception { @@ -36,4 +43,26 @@ public class InheritanceTest extends AbstractGeneratorTest { assertWithXtend("'A'", "elements.get(0).name", model); assertWithXtend("'B'", "elements.get(1).name", model); } + + public void testMetamodel() throws Exception { + AbstractRule rule = GrammarUtil.findRuleForName(getGrammarAccess().getGrammar(), "OverridableParserRule2"); + assertNotNull("rule", rule); + TypeRef ref = rule.getType(); + assertNotNull("ref", ref); + final EClass clazz = (EClass) ref.getType(); + assertNotNull("class", clazz); + assertEquals("AType2", clazz.getName()); + assertEquals(2, clazz.getESuperTypes().size()); + Set<String> expectedNames = new HashSet<String>(Arrays.asList(new String[]{"AType", "RootRule"})); + Iterator<String> iter = map(clazz.getESuperTypes(), new Function<EClass, String>(){ + public String exec(EClass param) { + return param.getName(); + } + }).iterator(); + while(iter.hasNext()) { + String name = iter.next(); + assertTrue("name = '" + name + "'", expectedNames.remove(name)); + } + assertTrue(expectedNames.toString(), expectedNames.isEmpty()); + } } diff --git a/tests/org.eclipse.xtext.generator.tests/src/org/eclipse/xtext/parser/datatyperules/MetamodelTransformationErrorTest.java b/tests/org.eclipse.xtext.generator.tests/src/org/eclipse/xtext/parser/datatyperules/MetamodelTransformationErrorTest.java index ea0c2bd..d37aa03 100644 --- a/tests/org.eclipse.xtext.generator.tests/src/org/eclipse/xtext/parser/datatyperules/MetamodelTransformationErrorTest.java +++ b/tests/org.eclipse.xtext.generator.tests/src/org/eclipse/xtext/parser/datatyperules/MetamodelTransformationErrorTest.java @@ -28,13 +28,14 @@ import org.eclipse.xtext.tests.AbstractGeneratorTest; * @author Sebastian Zarnekow - Initial contribution and API */ public class MetamodelTransformationErrorTest extends AbstractGeneratorTest { - + private String model; private XtextResource resource; private Xtext2EcoreTransformer transformer; private ErrorAcceptor errorAcceptor; private Grammar grammar; + @Override protected void setUp() throws Exception { super.setUp(); with(XtextStandaloneSetup.class); @@ -53,20 +54,20 @@ public class MetamodelTransformationErrorTest extends AbstractGeneratorTest { errorAcceptor = EasyMock.createMock(ErrorAcceptor.class); transformer.setErrorAcceptor(errorAcceptor); } - + public void testSetUp() { assertNotNull(resource); assertNotNull(transformer); assertNotNull(errorAcceptor); assertEquals(2, resource.getErrors().size()); } - + public void testErrorMessages() throws Exception { errorAcceptor.acceptError(same(TransformationErrorCode.InvalidDatatypeRule), (String) anyObject(), same(grammar.getRules().get(3))); errorAcceptor.acceptError(same(TransformationErrorCode.InvalidDatatypeRule), (String) anyObject(), same(grammar.getRules().get(4))); transform(); } - + private EPackage transform() throws Exception { replay(errorAcceptor); transformer.removeGeneratedPackages(); diff --git a/tests/org.eclipse.xtext.generator.tests/src/org/eclipse/xtext/resource/metamodel/Xtext2EcoreTransformerTest.java b/tests/org.eclipse.xtext.generator.tests/src/org/eclipse/xtext/resource/metamodel/Xtext2EcoreTransformerTest.java index 3fb5669..3b2af36 100644 --- a/tests/org.eclipse.xtext.generator.tests/src/org/eclipse/xtext/resource/metamodel/Xtext2EcoreTransformerTest.java +++ b/tests/org.eclipse.xtext.generator.tests/src/org/eclipse/xtext/resource/metamodel/Xtext2EcoreTransformerTest.java @@ -63,14 +63,14 @@ public class Xtext2EcoreTransformerTest extends AbstractGeneratorTest { this.first = first; this.second = second; } - + public void acceptError(TransformationErrorCode errorCode, String message, EObject element) { first.acceptError(errorCode, message, element); second.acceptError(errorCode, message, element); } - + } - + @Override protected void setUp() throws Exception { super.setUp(); @@ -86,7 +86,8 @@ public class Xtext2EcoreTransformerTest extends AbstractGeneratorTest { assertNotNull(result); return result; } - + + @Override protected XtextResource getResource(InputStream in) throws Exception { ResourceSet rs = new XtextResourceSet(); XtextResource resource = (XtextResource) getResourceFactory().createResource(URI.createURI("mytestmodel.test")); @@ -103,13 +104,13 @@ public class Xtext2EcoreTransformerTest extends AbstractGeneratorTest { linker.setLinkingService(((Linker) resource.getLinker()).getLinkingService()); resource.setLinker(linker); resource.load(in, null); - + for(Diagnostic d: resource.getErrors()) System.out.println("Resource Error: "+d); - + for(Diagnostic d: resource.getWarnings()) System.out.println("Resource Warning: "+d); - + return resource; } @@ -406,7 +407,7 @@ public class Xtext2EcoreTransformerTest extends AbstractGeneratorTest { assertAttributeConfiguration(ruleA, 0, "featureAS", "EString"); assertEquals(1, ruleA.getEReferences().size()); assertReferenceConfiguration(ruleA, 0, "a", "RuleA", true, 0, 1); - + assertEquals(0, add.getEAttributes().size()); assertEquals(0, add.getEReferences().size()); @@ -683,7 +684,7 @@ public class Xtext2EcoreTransformerTest extends AbstractGeneratorTest { assertReferenceConfiguration(typeA, 0, "featureA2", "EObject", true, 0, 1); assertReferenceConfiguration(typeA, 1, "featureA3", "RuleC", true, 0, 1); } - + public void testUplift01() throws Exception { String grammar = "language test generate test 'http://test'"; grammar += " RuleA: (RuleB|RuleC) featureA=ID;"; @@ -701,13 +702,13 @@ public class Xtext2EcoreTransformerTest extends AbstractGeneratorTest { assertEquals(1, ruleA.getEAttributes().size()); assertAttributeConfiguration(ruleA, 0, "featureA", "EString"); - + assertEquals(1, ruleB.getEAttributes().size()); assertAttributeConfiguration(ruleB, 0, "featureB", "EInt"); assertEquals(0, ruleC.getEAttributes().size()); } - + public void testCallOfUndeclaredRule() throws Exception { String grammar = "language test generate test 'http://test'"; grammar += " RuleA: CallOfUndeclaredRule featureA=ID;"; @@ -717,18 +718,18 @@ public class Xtext2EcoreTransformerTest extends AbstractGeneratorTest { assertEquals(1, ePackage.getEClassifiers().size()); assertEquals("RuleA", ePackage.getEClassifiers().get(0).getName()); } - + public void testCycleInTypeHierarchy() throws Exception { String grammar = "language test generate test 'http://test'"; grammar += " RuleA: RuleB;"; grammar += " RuleB: RuleC;"; grammar += " RuleC: RuleA;"; grammar += " RuleD: RuleA;"; - + errorAcceptorMock.acceptError(same(TransformationErrorCode.TypeWithCycleInHierarchy), (String) anyObject(), (EObject) anyObject()); EasyMock.expectLastCall().times(3); - + EPackage ePackage = getEPackageFromGrammar(grammar); assertEquals(4, ePackage.getEClassifiers().size()); EClass ruleA = (EClass) ePackage.getEClassifier("RuleA"); @@ -736,10 +737,10 @@ public class Xtext2EcoreTransformerTest extends AbstractGeneratorTest { EClass ruleB = (EClass) ePackage.getEClassifier("RuleB"); assertNotNull(ruleB); EClass ruleC = (EClass) ePackage.getEClassifier("RuleC"); - assertNotNull(ruleC); + assertNotNull(ruleC); EClass ruleD = (EClass) ePackage.getEClassifier("RuleD"); - assertNotNull(ruleD); - + assertNotNull(ruleD); + assertEquals(2, ruleA.getESuperTypes().size()); assertSame(ruleC, ruleA.getESuperTypes().get(0)); assertSame(ruleD, ruleA.getESuperTypes().get(1)); @@ -749,7 +750,7 @@ public class Xtext2EcoreTransformerTest extends AbstractGeneratorTest { assertSame(ruleB, ruleC.getESuperTypes().get(0)); assertEquals(0, ruleD.getESuperTypes().size()); } - + public void testExpressionLikeLangauge() throws Exception { String grammar = "language test generate test 'http://test'"; grammar += " Ex : Atom ({ChainExpression.left+=current} operator=('+'|'-'|'*'|'/') right=Atom )*;" + @@ -760,7 +761,7 @@ public class Xtext2EcoreTransformerTest extends AbstractGeneratorTest { logger.debug(EmfFormater.objToStr(ePackage)); assertEquals(0,classifier.getEStructuralFeatures().size()); } - + public void testClassNameEString() throws Exception { String grammar = "language test generate test 'http://test'"; grammar += "Start returns EString: id=ID;"; @@ -773,7 +774,7 @@ public class Xtext2EcoreTransformerTest extends AbstractGeneratorTest { assertFalse(feature.getEType().equals(classifier)); assertEquals(EcorePackage.Literals.ESTRING, feature.getEType()); } - + public void testNoException_01() throws Exception { String grammar = "language test import 'http://www.eclipse.org/emf/2002/Ecore' as ecore " + "generate test 'http://test'\n" + @@ -788,7 +789,7 @@ public class Xtext2EcoreTransformerTest extends AbstractGeneratorTest { assertFalse(d instanceof ExceptionDiagnostic); } } - + public void testNoException_02() throws Exception { String grammar = "language test generate test 'http://test'\n" + "Model: (children+=Element)*;\n" + @@ -799,7 +800,7 @@ public class Xtext2EcoreTransformerTest extends AbstractGeneratorTest { assertFalse(d instanceof ExceptionDiagnostic); } } - + public void testNoException_03() throws Exception { String grammar = "language test import 'http://www.eclipse.org/emf/2002/Ecore' as ecore " + "generate test 'http://test'\n" + diff --git a/tests/org.eclipse.xtext.generator.tests/src/org/eclipse/xtext/xtext/ResourceLoadTest.java b/tests/org.eclipse.xtext.generator.tests/src/org/eclipse/xtext/xtext/ResourceLoadTest.java index 12bb459..a69ee8f 100644 --- a/tests/org.eclipse.xtext.generator.tests/src/org/eclipse/xtext/xtext/ResourceLoadTest.java +++ b/tests/org.eclipse.xtext.generator.tests/src/org/eclipse/xtext/xtext/ResourceLoadTest.java @@ -24,11 +24,12 @@ import org.eclipse.xtext.tests.AbstractGeneratorTest; import org.eclipse.xtext.util.CollectionUtils; import org.eclipse.xtext.util.Function; import org.eclipse.xtext.util.Pair; +import org.eclipse.xtext.util.Tuples; /** * Really long running smoke tests for the xtext grammar. * Uses all test grammars. - * + * * @author Sebastian Zarnekow - Initial contribution and API */ @SuppressWarnings("unused") @@ -37,7 +38,7 @@ public class ResourceLoadTest extends AbstractGeneratorTest { private Class<?> clazz; private String model; - + @Override public int countTestCases() { return super.countTestCases() * GenerateAllTestGrammars.testclasses.length; @@ -72,7 +73,7 @@ public class ResourceLoadTest extends AbstractGeneratorTest { throw new RuntimeException(e); } } - + // public void testNoExceptionDiagnostics_01() throws Exception{ // for(int i = 0; i < model.length(); i++) { // String model = this.model.substring(0, i); @@ -80,7 +81,7 @@ public class ResourceLoadTest extends AbstractGeneratorTest { // assertNoExceptionDiagnostic(r, model); // } // } -// + // public void testNoExceptionDiagnostics_02() throws Exception{ // for(int i = 0; i < model.length(); i++) { // String model = this.model.substring(i); @@ -88,7 +89,7 @@ public class ResourceLoadTest extends AbstractGeneratorTest { // assertNoExceptionDiagnostic(r, model); // } // } -// + // public void testNoExceptionDiagnostics_03() throws Exception{ // for(int i = 0; i < model.length() - 1; i++) { // String model = this.model.substring(0, i) + this.model.substring(i + 1); @@ -97,7 +98,7 @@ public class ResourceLoadTest extends AbstractGeneratorTest { // assertNoExceptionDiagnostic(r, model); // } // } -// +// // public void testNoExceptionDiagnostics_04() throws Exception { // XtextResource r = getResourceFromString(this.model); // assertTrue(r.getErrors().isEmpty()); @@ -105,26 +106,26 @@ public class ResourceLoadTest extends AbstractGeneratorTest { // Iterable<Pair<Integer, Integer>> nodeBounds = CollectionUtils.map(node.eAllContents(), new Function<EObject, Pair<Integer, Integer>>() { // public Pair<Integer, Integer> exec(EObject param) { // AbstractNode node = (AbstractNode) param; -// return new Pair<Integer, Integer>(node.getOffset(), node.getLength()); +// return Tuples.create(node.getOffset(), node.getLength()); // } // }); // for(Pair<Integer, Integer> bound: nodeBounds) { -// String model = this.model.substring(0, bound.getFirstElement()) + this.model.substring(bound.getFirstElement() + bound.getSecondElement()); +// String model = this.model.substring(0, bound.getFirst()) + this.model.substring(bound.getFirst() + bound.getSecond()); // Resource res = getResourceFromString(model); // assertNoExceptionDiagnostic(res, model); // } // } -// -// private void assertNoExceptionDiagnostic(Resource r, String model) throws Exception { -// for(Diagnostic d: r.getErrors()) { -// if (d instanceof ExceptionDiagnostic) { -// throw new Exception(model, ((ExceptionDiagnostic)d).getException()); -// } -// } -// } - + + private void assertNoExceptionDiagnostic(Resource r, String model) throws Exception { + for(Diagnostic d: r.getErrors()) { + if (d instanceof ExceptionDiagnostic) { + throw new Exception(model, ((ExceptionDiagnostic)d).getException()); + } + } + } + public void testDummy() { assertNotNull(clazz); } - + } diff --git a/tests/org.eclipse.xtext.xtend.tests/src-gen/org/eclipse/xtext/GenXtextGrammarTestLanguageScopeProvider.ext b/tests/org.eclipse.xtext.xtend.tests/src-gen/org/eclipse/xtext/GenXtextGrammarTestLanguageScopeProvider.ext index 72e25c3..c6b7e21 100644 --- a/tests/org.eclipse.xtext.xtend.tests/src-gen/org/eclipse/xtext/GenXtextGrammarTestLanguageScopeProvider.ext +++ b/tests/org.eclipse.xtext.xtend.tests/src-gen/org/eclipse/xtext/GenXtextGrammarTestLanguageScopeProvider.ext @@ -17,12 +17,6 @@ extension org::eclipse::xtend::util::stdlib::io; */ -List[IScopedElement] scope_hiddenTokens(Grammar this): - allElements().typeSelect(AbstractRule).collect(x | createScopedElement(x.referenceName(), x)); - -List[IScopedElement] scope_hiddenTokens(emf::EObject this) : - allElements().collect(x | createScopedElement(x.referenceName(), x)); - List[IScopedElement] scope_hiddenTokens(ParserRule this): allElements().typeSelect(AbstractRule).collect(x | createScopedElement(x.referenceName(), x)); @@ -35,16 +29,22 @@ List[IScopedElement] scope_ePackage(AbstractMetamodelDeclaration this): List[IScopedElement] scope_ePackage(emf::EObject this) : allElements().collect(x | createScopedElement(x.referenceName(), x)); +List[IScopedElement] scope_metamodel(TypeRef this): + allElements().typeSelect(AbstractMetamodelDeclaration).collect(x | createScopedElement(x.referenceName(), x)); + +List[IScopedElement] scope_metamodel(emf::EObject this) : + allElements().collect(x | createScopedElement(x.referenceName(), x)); + List[IScopedElement] scope_type(TypeRef this): allElements().typeSelect(ecore::EClassifier).collect(x | createScopedElement(x.referenceName(), x)); List[IScopedElement] scope_type(emf::EObject this) : allElements().collect(x | createScopedElement(x.referenceName(), x)); -List[IScopedElement] scope_metamodel(TypeRef this): - allElements().typeSelect(AbstractMetamodelDeclaration).collect(x | createScopedElement(x.referenceName(), x)); +List[IScopedElement] scope_hiddenTokens(Grammar this): + allElements().typeSelect(AbstractRule).collect(x | createScopedElement(x.referenceName(), x)); -List[IScopedElement] scope_metamodel(emf::EObject this) : +List[IScopedElement] scope_hiddenTokens(emf::EObject this) : allElements().collect(x | createScopedElement(x.referenceName(), x)); List[IScopedElement] scope_rule(CrossReference this): diff --git a/tests/org.eclipse.xtext.xtend.tests/src-gen/org/eclipse/xtext/XtextTest.ecore b/tests/org.eclipse.xtext.xtend.tests/src-gen/org/eclipse/xtext/XtextTest.ecore index 06343f4..d2ac29f 100644 --- a/tests/org.eclipse.xtext.xtend.tests/src-gen/org/eclipse/xtext/XtextTest.ecore +++ b/tests/org.eclipse.xtext.xtend.tests/src-gen/org/eclipse/xtext/XtextTest.ecore @@ -18,18 +18,18 @@ <eStructuralFeatures xsi:type="ecore:EReference" name="rules" 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: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> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="alias"> + <eType xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/> + </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.xtend.tests/src-gen/org/eclipse/xtext/testlanguages/GenReferenceGrammarTestLanguageScopeProvider.ext b/tests/org.eclipse.xtext.xtend.tests/src-gen/org/eclipse/xtext/testlanguages/GenReferenceGrammarTestLanguageScopeProvider.ext index 731ba7d..ccf439c 100644 --- a/tests/org.eclipse.xtext.xtend.tests/src-gen/org/eclipse/xtext/testlanguages/GenReferenceGrammarTestLanguageScopeProvider.ext +++ b/tests/org.eclipse.xtext.xtend.tests/src-gen/org/eclipse/xtext/testlanguages/GenReferenceGrammarTestLanguageScopeProvider.ext @@ -22,15 +22,15 @@ List[IScopedElement] scope_mutter(Familie this): List[IScopedElement] scope_mutter(emf::EObject this) : allElements().collect(x | createScopedElement(x.referenceName(), x)); -List[IScopedElement] scope_vater(Familie this): - allElements().typeSelect(Erwachsener).collect(x | createScopedElement(x.referenceName(), x)); - -List[IScopedElement] scope_vater(emf::EObject this) : - allElements().collect(x | createScopedElement(x.referenceName(), x)); - List[IScopedElement] scope_kinder(Familie this): allElements().typeSelect(Kind).collect(x | createScopedElement(x.referenceName(), x)); List[IScopedElement] scope_kinder(emf::EObject this) : allElements().collect(x | createScopedElement(x.referenceName(), x)); +List[IScopedElement] scope_vater(Familie this): + allElements().typeSelect(Erwachsener).collect(x | createScopedElement(x.referenceName(), x)); + +List[IScopedElement] scope_vater(emf::EObject this) : + allElements().collect(x | createScopedElement(x.referenceName(), x)); + diff --git a/tests/org.eclipse.xtext.xtend.tests/src-gen/org/eclipse/xtext/testlanguages/ReferenceGrammar.ecore b/tests/org.eclipse.xtext.xtend.tests/src-gen/org/eclipse/xtext/testlanguages/ReferenceGrammar.ecore index e6d7703..65d8ec7 100644 --- a/tests/org.eclipse.xtext.xtend.tests/src-gen/org/eclipse/xtext/testlanguages/ReferenceGrammar.ecore +++ b/tests/org.eclipse.xtext.xtend.tests/src-gen/org/eclipse/xtext/testlanguages/ReferenceGrammar.ecore @@ -13,12 +13,12 @@ <eStructuralFeatures xsi:type="ecore:EReference" name="familie" upperBound="-1" eType="//Familie" containment="true"/> </eClassifiers> <eClassifiers xsi:type="ecore:EClass" name="Person"> - <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="age"> <eType xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EInt"/> </eStructuralFeatures> + <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="Kind" eSuperTypes="//Person"/> <eClassifiers xsi:type="ecore:EClass" name="Erwachsener" eSuperTypes="//Person"/> |

