aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorszarnekow2009-02-12 05:59:48 (EST)
committersefftinge2009-02-12 05:59:48 (EST)
commitbd23dd64547bb30253cd4d33c4e8eba8eb846434 (patch)
tree5df84303fb9d655a46ff4b1839b7551cba658254
parent0220bb7e758c7c89cbd71a889e34a34de938a011 (diff)
downloadorg.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
-rw-r--r--devtools/org.eclipse.xtext.reference/src-gen/org/eclipse/xtext/reference/ReferenceGrammar.ecore6
-rw-r--r--examples/org.eclipse.xtext.example.domainmodel/src-gen/org/eclipse/xtext/example/domainmodel.ecore2
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/grammarinheritance/AbstractTestLanguage.xmi31
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xmi83
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/grammarinheritance/foo.ecore19
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.g132
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage.tokens16
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguageLexer.java335
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguageParser.java861
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/grammarinheritance/parser/antlr/internal/InternalConcreteTestLanguage__.g30
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/grammarinheritance/parser/packrat/AbstractTestLanguageDelimiters.java4
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/grammarinheritance/parser/packrat/AbstractTestLanguageParserConfiguration.java13
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/grammarinheritance/parser/packrat/ConcreteTestLanguageDelimiters.java10
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/grammarinheritance/parser/packrat/ConcreteTestLanguageParserConfiguration.java53
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/grammarinheritance/parser/packrat/consumers/AbstractTestLanguageOverridableParserRule2Consumer.java124
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/grammarinheritance/parser/packrat/consumers/ConcreteTestLanguageOverridableParserRule2Consumer.java188
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/grammarinheritance/parser/packrat/consumers/ConcreteTestLanguageRootRuleConsumer.java33
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/grammarinheritance/parsetree/reconstr/ConcreteTestLanguageParseTreeConstructor.java243
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/grammarinheritance/services/AbstractTestLanguageGrammarAccess.java37
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/grammarinheritance/services/ConcreteTestLanguageGrammarAccess.java87
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/epatch/EpatchTestLanguage.ecore4
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/parser/terminalrules/XtextTerminalsTestLanguage.ecore2
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src-gen/org/eclipse/xtext/testlanguages/ReferenceGrammar.ecore6
-rwxr-xr-xtests/org.eclipse.xtext.generator.tests/src/org/eclipse/xtext/GenerateAllTestGrammars.java76
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src/org/eclipse/xtext/grammarinheritance/AbstractTestLanguage.xtext3
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src/org/eclipse/xtext/grammarinheritance/ConcreteTestLanguage.xtext8
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src/org/eclipse/xtext/grammarinheritance/InheritanceTest.java49
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src/org/eclipse/xtext/parser/datatyperules/MetamodelTransformationErrorTest.java9
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src/org/eclipse/xtext/resource/metamodel/Xtext2EcoreTransformerTest.java45
-rw-r--r--tests/org.eclipse.xtext.generator.tests/src/org/eclipse/xtext/xtext/ResourceLoadTest.java37
-rw-r--r--tests/org.eclipse.xtext.xtend.tests/src-gen/org/eclipse/xtext/GenXtextGrammarTestLanguageScopeProvider.ext18
-rw-r--r--tests/org.eclipse.xtext.xtend.tests/src-gen/org/eclipse/xtext/XtextTest.ecore8
-rw-r--r--tests/org.eclipse.xtext.xtend.tests/src-gen/org/eclipse/xtext/testlanguages/GenReferenceGrammarTestLanguageScopeProvider.ext12
-rw-r--r--tests/org.eclipse.xtext.xtend.tests/src-gen/org/eclipse/xtext/testlanguages/ReferenceGrammar.ecore6
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
--- /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
--- /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"/>