mirror of
https://github.com/sigmasternchen/xtext-core
synced 2025-03-15 16:28:56 +00:00
[#1324] teach partial class extractor about fragment rules
Signed-off-by: Christian Dietrich <christian.dietrich@itemis.de>
This commit is contained in:
parent
35c544fa81
commit
18e4a6c7ee
3 changed files with 98 additions and 3 deletions
|
@ -71,6 +71,12 @@ class PartialClassExtractorTest {
|
|||
}
|
||||
// $ANTLR end "ruleMySuperDuperEnum"
|
||||
|
||||
// $ANTLR start "ruleSuperDuperFragment"
|
||||
// InternalMyDsl.g:17296:1: ruleSuperDuperFragment[EObject in_current] returns [EObject current=in_current] : (otherlv_0= '{' ( ( (lv_parameters_1_0= ruleCallParameter ) ) otherlv_2= ';' )* otherlv_3= '}' ) ;
|
||||
public final EObject ruleSuperDuperFragment(EObject in_current) throws RecognitionException {
|
||||
return null;
|
||||
}
|
||||
// $ANTLR end "ruleSuperDuperFragment"
|
||||
// Delegated rules
|
||||
}
|
||||
''',
|
||||
|
@ -95,6 +101,7 @@ class PartialClassExtractorTest {
|
|||
interface InternalMyDslParserSignatures {
|
||||
EObject ruleMySuperDuperObject() throws RecognitionException;
|
||||
Enumerator ruleMySuperDuperEnum() throws RecognitionException;
|
||||
EObject ruleSuperDuperFragment(EObject in_current) throws RecognitionException;
|
||||
}
|
||||
|
||||
@SuppressWarnings("all")
|
||||
|
@ -157,7 +164,27 @@ class PartialClassExtractorTest {
|
|||
|
||||
}
|
||||
|
||||
public class InternalMyDslParser extends InternalMyDslParser3 {
|
||||
@SuppressWarnings("all")
|
||||
abstract class InternalMyDslParser4 extends InternalMyDslParser3 {
|
||||
|
||||
InternalMyDslParser4(TokenStream input) {
|
||||
this(input, new RecognizerSharedState());
|
||||
}
|
||||
|
||||
InternalMyDslParser4(TokenStream input, RecognizerSharedState state) {
|
||||
super(input, state);
|
||||
}
|
||||
|
||||
// $ANTLR start "ruleSuperDuperFragment"
|
||||
// InternalMyDsl.g:17296:1: ruleSuperDuperFragment[EObject in_current] returns [EObject current=in_current] : (otherlv_0= '{' ( ( (lv_parameters_1_0= ruleCallParameter ) ) otherlv_2= ';' )* otherlv_3= '}' ) ;
|
||||
public final EObject ruleSuperDuperFragment(EObject in_current) throws RecognitionException {
|
||||
return null;
|
||||
}
|
||||
// $ANTLR end "ruleSuperDuperFragment"
|
||||
|
||||
}
|
||||
|
||||
public class InternalMyDslParser extends InternalMyDslParser4 {
|
||||
|
||||
|
||||
public InternalMyDslParser(TokenStream input) {
|
||||
|
|
|
@ -155,6 +155,24 @@ public class PartialClassExtractorTest {
|
|||
_builder.append(" ");
|
||||
_builder.newLine();
|
||||
_builder.append(" ");
|
||||
_builder.append("// $ANTLR start \"ruleSuperDuperFragment\"");
|
||||
_builder.newLine();
|
||||
_builder.append(" ");
|
||||
_builder.append("// InternalMyDsl.g:17296:1: ruleSuperDuperFragment[EObject in_current] returns [EObject current=in_current] : (otherlv_0= \'{\' ( ( (lv_parameters_1_0= ruleCallParameter ) ) otherlv_2= \';\' )* otherlv_3= \'}\' ) ;");
|
||||
_builder.newLine();
|
||||
_builder.append(" ");
|
||||
_builder.append("public final EObject ruleSuperDuperFragment(EObject in_current) throws RecognitionException {");
|
||||
_builder.newLine();
|
||||
_builder.append(" ");
|
||||
_builder.append("return null;");
|
||||
_builder.newLine();
|
||||
_builder.append(" ");
|
||||
_builder.append("}");
|
||||
_builder.newLine();
|
||||
_builder.append(" ");
|
||||
_builder.append("// $ANTLR end \"ruleSuperDuperFragment\"");
|
||||
_builder.newLine();
|
||||
_builder.append(" ");
|
||||
_builder.append("// Delegated rules");
|
||||
_builder.newLine();
|
||||
_builder.append("}");
|
||||
|
@ -201,6 +219,9 @@ public class PartialClassExtractorTest {
|
|||
_builder_1.append(" ");
|
||||
_builder_1.append("Enumerator ruleMySuperDuperEnum() throws RecognitionException;");
|
||||
_builder_1.newLine();
|
||||
_builder_1.append(" ");
|
||||
_builder_1.append("EObject ruleSuperDuperFragment(EObject in_current) throws RecognitionException;");
|
||||
_builder_1.newLine();
|
||||
_builder_1.append("}");
|
||||
_builder_1.newLine();
|
||||
_builder_1.newLine();
|
||||
|
@ -341,7 +362,54 @@ public class PartialClassExtractorTest {
|
|||
_builder_1.append("}");
|
||||
_builder_1.newLine();
|
||||
_builder_1.newLine();
|
||||
_builder_1.append("public class InternalMyDslParser extends InternalMyDslParser3 {");
|
||||
_builder_1.append("@SuppressWarnings(\"all\")");
|
||||
_builder_1.newLine();
|
||||
_builder_1.append("abstract class InternalMyDslParser4 extends InternalMyDslParser3 {");
|
||||
_builder_1.newLine();
|
||||
_builder_1.newLine();
|
||||
_builder_1.append(" ");
|
||||
_builder_1.append("InternalMyDslParser4(TokenStream input) {");
|
||||
_builder_1.newLine();
|
||||
_builder_1.append(" ");
|
||||
_builder_1.append("this(input, new RecognizerSharedState());");
|
||||
_builder_1.newLine();
|
||||
_builder_1.append(" ");
|
||||
_builder_1.append("}");
|
||||
_builder_1.newLine();
|
||||
_builder_1.newLine();
|
||||
_builder_1.append(" ");
|
||||
_builder_1.append("InternalMyDslParser4(TokenStream input, RecognizerSharedState state) {");
|
||||
_builder_1.newLine();
|
||||
_builder_1.append(" ");
|
||||
_builder_1.append("super(input, state);");
|
||||
_builder_1.newLine();
|
||||
_builder_1.append(" ");
|
||||
_builder_1.append("}");
|
||||
_builder_1.newLine();
|
||||
_builder_1.newLine();
|
||||
_builder_1.append(" ");
|
||||
_builder_1.append("// $ANTLR start \"ruleSuperDuperFragment\"");
|
||||
_builder_1.newLine();
|
||||
_builder_1.append(" ");
|
||||
_builder_1.append("// InternalMyDsl.g:17296:1: ruleSuperDuperFragment[EObject in_current] returns [EObject current=in_current] : (otherlv_0= \'{\' ( ( (lv_parameters_1_0= ruleCallParameter ) ) otherlv_2= \';\' )* otherlv_3= \'}\' ) ;");
|
||||
_builder_1.newLine();
|
||||
_builder_1.append(" ");
|
||||
_builder_1.append("public final EObject ruleSuperDuperFragment(EObject in_current) throws RecognitionException {");
|
||||
_builder_1.newLine();
|
||||
_builder_1.append(" ");
|
||||
_builder_1.append("return null;");
|
||||
_builder_1.newLine();
|
||||
_builder_1.append(" ");
|
||||
_builder_1.append("}");
|
||||
_builder_1.newLine();
|
||||
_builder_1.append(" ");
|
||||
_builder_1.append("// $ANTLR end \"ruleSuperDuperFragment\"");
|
||||
_builder_1.newLine();
|
||||
_builder_1.newLine();
|
||||
_builder_1.append("}");
|
||||
_builder_1.newLine();
|
||||
_builder_1.newLine();
|
||||
_builder_1.append("public class InternalMyDslParser extends InternalMyDslParser4 {");
|
||||
_builder_1.newLine();
|
||||
_builder_1.newLine();
|
||||
_builder_1.append(" ");
|
||||
|
|
|
@ -32,7 +32,7 @@ public class PartialClassExtractor {
|
|||
|
||||
private final String content;
|
||||
private final String originalContent;
|
||||
private static final Pattern SIGNATURE = Pattern.compile("^\\s*public final (void|EObject|Enumerator|AntlrDatatypeRuleToken|Boolean) \\S*\\(\\) throws RecognitionException \\{\\s*$");
|
||||
private static final Pattern SIGNATURE = Pattern.compile("^\\s*public final (void|EObject|Enumerator|AntlrDatatypeRuleToken|Boolean) \\S*\\((EObject in_current)?\\) throws RecognitionException \\{\\s*$");
|
||||
private static final String ANTLR_END_MARKER = " // $ANTLR end ";
|
||||
private static final String ANTLR_START_MARKER = " // $ANTLR start ";
|
||||
|
||||
|
|
Loading…
Reference in a new issue