Merge pull request #1037 from eclipse/cd_bug544435

[544435] fixed issue with serializer and groups in non terminal rules
This commit is contained in:
Christian Dietrich 2019-03-08 09:01:27 +01:00 committed by GitHub
commit 8e274f3daf
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
24 changed files with 1095 additions and 265 deletions

View file

@ -38,7 +38,7 @@ public class HiddenTerminalsTestLanguageSyntacticSequencer extends AbstractSynta
protected String getDatatypeRuleToken(EObject semanticObject, RuleCall ruleCall, INode node) {
if (node != null)
return getTokenText(node);
return "rule;";
return "rule ;";
}
@Override

View file

@ -59,7 +59,7 @@ public class SerializationErrorTestLanguageSemanticSequencer extends AbstractDel
* Indent returns Indent
*
* Constraint:
* ((req=TwoRequired? opt=TwoOptions indent+=Indent+) | (req=TwoRequired? indent+=Indent+) | indent+=Indent+)?
* ((((req=TwoRequired opt=TwoOptions) | opt=TwoOptions)? indent+=Indent+) | indent+=Indent+)?
*/
protected void sequence_Indent(ISerializationContext context, Indent semanticObject) {
genericSequencer.createSequence(context, semanticObject);

View file

@ -17,4 +17,5 @@
<eClassifiers xsi:type="ecore:EClass" name="CommonTerminalsRule" eSuperTypes="#//Model">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="val" eType="ecore:EDataType platform:/resource/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="GroupRule" eSuperTypes="#//Model"/>
</ecore:EPackage>

View file

@ -23,5 +23,6 @@
<genClasses ecoreClass="UnassignedTextTestLanguage.ecore#//CommonTerminalsRule">
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute UnassignedTextTestLanguage.ecore#//CommonTerminalsRule/val"/>
</genClasses>
<genClasses ecoreClass="UnassignedTextTestLanguage.ecore#//GroupRule"/>
</genPackages>
</genmodel:GenModel>

View file

@ -120,6 +120,15 @@ ruleModel returns [EObject current=null]
$current = $this_CommonTerminalsRule_4.current;
afterParserOrEnumRuleCall();
}
|
{
newCompositeNode(grammarAccess.getModelAccess().getGroupRuleParserRuleCall_5());
}
this_GroupRule_5=ruleGroupRule
{
$current = $this_GroupRule_5.current;
afterParserOrEnumRuleCall();
}
)
;
@ -430,6 +439,82 @@ ruleCommonTerminalsRule returns [EObject current=null]
)
;
// Entry rule entryRuleGroupRule
entryRuleGroupRule returns [EObject current=null]:
{ newCompositeNode(grammarAccess.getGroupRuleRule()); }
iv_ruleGroupRule=ruleGroupRule
{ $current=$iv_ruleGroupRule.current; }
EOF;
// Rule GroupRule
ruleGroupRule returns [EObject current=null]
@init {
enterRule();
}
@after {
leaveRule();
}:
(
(
{
$current = forceCreateModelElement(
grammarAccess.getGroupRuleAccess().getGroupRuleAction_0(),
$current);
}
)
otherlv_1='group'
{
newLeafNode(otherlv_1, grammarAccess.getGroupRuleAccess().getGroupKeyword_1());
}
{
newCompositeNode(grammarAccess.getGroupRuleAccess().getGroupDataTypeRuleParserRuleCall_2());
}
ruleGroupDataTypeRule
{
afterParserOrEnumRuleCall();
}
)
;
// Entry rule entryRuleGroupDataTypeRule
entryRuleGroupDataTypeRule returns [String current=null]:
{ newCompositeNode(grammarAccess.getGroupDataTypeRuleRule()); }
iv_ruleGroupDataTypeRule=ruleGroupDataTypeRule
{ $current=$iv_ruleGroupDataTypeRule.current.getText(); }
EOF;
// Rule GroupDataTypeRule
ruleGroupDataTypeRule returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
@init {
enterRule();
}
@after {
leaveRule();
}:
(
kw='this'
{
$current.merge(kw);
newLeafNode(kw, grammarAccess.getGroupDataTypeRuleAccess().getThisKeyword_0());
}
kw='is'
{
$current.merge(kw);
newLeafNode(kw, grammarAccess.getGroupDataTypeRuleAccess().getIsKeyword_1());
}
kw='a'
{
$current.merge(kw);
newLeafNode(kw, grammarAccess.getGroupDataTypeRuleAccess().getAKeyword_2());
}
kw='test'
{
$current.merge(kw);
newLeafNode(kw, grammarAccess.getGroupDataTypeRuleAccess().getTestKeyword_3());
}
)
;
RULE_CASEINSENSITIVEKEYWORD : ('k'|'K') ('e'|'E') ('y'|'Y') ('w'|'W') ('o'|'O') ('r'|'R') ('d'|'D');
RULE_PLURAL : ('item'|'items');

View file

@ -1,8 +1,13 @@
'a'=23
'contents:'=15
'datatype'=17
'group'=20
'is'=22
'multi'=16
'str'=18
'terminals'=19
'test'=24
'this'=21
RULE_ANY_OTHER=14
RULE_CASEINSENSITIVEKEYWORD=4
RULE_ID=9
@ -19,3 +24,8 @@ T__16=16
T__17=17
T__18=18
T__19=19
T__20=20
T__21=21
T__22=22
T__23=23
T__24=24

View file

@ -27,8 +27,13 @@ public class InternalUnassignedTextTestLanguageLexer extends Lexer {
public static final int RULE_ANY_OTHER=14;
public static final int RULE_MULTI=7;
public static final int RULE_INT=5;
public static final int T__22=22;
public static final int RULE_ML_COMMENT=11;
public static final int T__23=23;
public static final int T__24=24;
public static final int RULE_CASEINSENSITIVEKEYWORD=4;
public static final int T__20=20;
public static final int T__21=21;
// delegates
// delegators
@ -148,13 +153,117 @@ public class InternalUnassignedTextTestLanguageLexer extends Lexer {
}
// $ANTLR end "T__19"
// $ANTLR start "T__20"
public final void mT__20() throws RecognitionException {
try {
int _type = T__20;
int _channel = DEFAULT_TOKEN_CHANNEL;
// InternalUnassignedTextTestLanguage.g:16:7: ( 'group' )
// InternalUnassignedTextTestLanguage.g:16:9: 'group'
{
match("group");
}
state.type = _type;
state.channel = _channel;
}
finally {
}
}
// $ANTLR end "T__20"
// $ANTLR start "T__21"
public final void mT__21() throws RecognitionException {
try {
int _type = T__21;
int _channel = DEFAULT_TOKEN_CHANNEL;
// InternalUnassignedTextTestLanguage.g:17:7: ( 'this' )
// InternalUnassignedTextTestLanguage.g:17:9: 'this'
{
match("this");
}
state.type = _type;
state.channel = _channel;
}
finally {
}
}
// $ANTLR end "T__21"
// $ANTLR start "T__22"
public final void mT__22() throws RecognitionException {
try {
int _type = T__22;
int _channel = DEFAULT_TOKEN_CHANNEL;
// InternalUnassignedTextTestLanguage.g:18:7: ( 'is' )
// InternalUnassignedTextTestLanguage.g:18:9: 'is'
{
match("is");
}
state.type = _type;
state.channel = _channel;
}
finally {
}
}
// $ANTLR end "T__22"
// $ANTLR start "T__23"
public final void mT__23() throws RecognitionException {
try {
int _type = T__23;
int _channel = DEFAULT_TOKEN_CHANNEL;
// InternalUnassignedTextTestLanguage.g:19:7: ( 'a' )
// InternalUnassignedTextTestLanguage.g:19:9: 'a'
{
match('a');
}
state.type = _type;
state.channel = _channel;
}
finally {
}
}
// $ANTLR end "T__23"
// $ANTLR start "T__24"
public final void mT__24() throws RecognitionException {
try {
int _type = T__24;
int _channel = DEFAULT_TOKEN_CHANNEL;
// InternalUnassignedTextTestLanguage.g:20:7: ( 'test' )
// InternalUnassignedTextTestLanguage.g:20:9: 'test'
{
match("test");
}
state.type = _type;
state.channel = _channel;
}
finally {
}
}
// $ANTLR end "T__24"
// $ANTLR start "RULE_CASEINSENSITIVEKEYWORD"
public final void mRULE_CASEINSENSITIVEKEYWORD() throws RecognitionException {
try {
int _type = RULE_CASEINSENSITIVEKEYWORD;
int _channel = DEFAULT_TOKEN_CHANNEL;
// InternalUnassignedTextTestLanguage.g:433:29: ( ( 'k' | 'K' ) ( 'e' | 'E' ) ( 'y' | 'Y' ) ( 'w' | 'W' ) ( 'o' | 'O' ) ( 'r' | 'R' ) ( 'd' | 'D' ) )
// InternalUnassignedTextTestLanguage.g:433:31: ( 'k' | 'K' ) ( 'e' | 'E' ) ( 'y' | 'Y' ) ( 'w' | 'W' ) ( 'o' | 'O' ) ( 'r' | 'R' ) ( 'd' | 'D' )
// InternalUnassignedTextTestLanguage.g:518:29: ( ( 'k' | 'K' ) ( 'e' | 'E' ) ( 'y' | 'Y' ) ( 'w' | 'W' ) ( 'o' | 'O' ) ( 'r' | 'R' ) ( 'd' | 'D' ) )
// InternalUnassignedTextTestLanguage.g:518:31: ( 'k' | 'K' ) ( 'e' | 'E' ) ( 'y' | 'Y' ) ( 'w' | 'W' ) ( 'o' | 'O' ) ( 'r' | 'R' ) ( 'd' | 'D' )
{
if ( input.LA(1)=='K'||input.LA(1)=='k' ) {
input.consume();
@ -235,10 +344,10 @@ public class InternalUnassignedTextTestLanguageLexer extends Lexer {
try {
int _type = RULE_PLURAL;
int _channel = DEFAULT_TOKEN_CHANNEL;
// InternalUnassignedTextTestLanguage.g:435:13: ( ( 'item' | 'items' ) )
// InternalUnassignedTextTestLanguage.g:435:15: ( 'item' | 'items' )
// InternalUnassignedTextTestLanguage.g:520:13: ( ( 'item' | 'items' ) )
// InternalUnassignedTextTestLanguage.g:520:15: ( 'item' | 'items' )
{
// InternalUnassignedTextTestLanguage.g:435:15: ( 'item' | 'items' )
// InternalUnassignedTextTestLanguage.g:520:15: ( 'item' | 'items' )
int alt1=2;
int LA1_0 = input.LA(1);
@ -289,7 +398,7 @@ public class InternalUnassignedTextTestLanguageLexer extends Lexer {
}
switch (alt1) {
case 1 :
// InternalUnassignedTextTestLanguage.g:435:16: 'item'
// InternalUnassignedTextTestLanguage.g:520:16: 'item'
{
match("item");
@ -297,7 +406,7 @@ public class InternalUnassignedTextTestLanguageLexer extends Lexer {
}
break;
case 2 :
// InternalUnassignedTextTestLanguage.g:435:23: 'items'
// InternalUnassignedTextTestLanguage.g:520:23: 'items'
{
match("items");
@ -323,11 +432,11 @@ public class InternalUnassignedTextTestLanguageLexer extends Lexer {
try {
int _type = RULE_MULTI;
int _channel = DEFAULT_TOKEN_CHANNEL;
// InternalUnassignedTextTestLanguage.g:437:12: ( 'a' ( 'b' )? ( 'c' )+ ( 'd' )* ( 'e' | 'f' ) ( ( 'g' | 'h' ) | ( 'i' )+ ) RULE_MULTI2 '0' .. '9' ( '0' .. '9' )+ )
// InternalUnassignedTextTestLanguage.g:437:14: 'a' ( 'b' )? ( 'c' )+ ( 'd' )* ( 'e' | 'f' ) ( ( 'g' | 'h' ) | ( 'i' )+ ) RULE_MULTI2 '0' .. '9' ( '0' .. '9' )+
// InternalUnassignedTextTestLanguage.g:522:12: ( 'a' ( 'b' )? ( 'c' )+ ( 'd' )* ( 'e' | 'f' ) ( ( 'g' | 'h' ) | ( 'i' )+ ) RULE_MULTI2 '0' .. '9' ( '0' .. '9' )+ )
// InternalUnassignedTextTestLanguage.g:522:14: 'a' ( 'b' )? ( 'c' )+ ( 'd' )* ( 'e' | 'f' ) ( ( 'g' | 'h' ) | ( 'i' )+ ) RULE_MULTI2 '0' .. '9' ( '0' .. '9' )+
{
match('a');
// InternalUnassignedTextTestLanguage.g:437:18: ( 'b' )?
// InternalUnassignedTextTestLanguage.g:522:18: ( 'b' )?
int alt2=2;
int LA2_0 = input.LA(1);
@ -336,7 +445,7 @@ public class InternalUnassignedTextTestLanguageLexer extends Lexer {
}
switch (alt2) {
case 1 :
// InternalUnassignedTextTestLanguage.g:437:18: 'b'
// InternalUnassignedTextTestLanguage.g:522:18: 'b'
{
match('b');
@ -345,7 +454,7 @@ public class InternalUnassignedTextTestLanguageLexer extends Lexer {
}
// InternalUnassignedTextTestLanguage.g:437:23: ( 'c' )+
// InternalUnassignedTextTestLanguage.g:522:23: ( 'c' )+
int cnt3=0;
loop3:
do {
@ -359,7 +468,7 @@ public class InternalUnassignedTextTestLanguageLexer extends Lexer {
switch (alt3) {
case 1 :
// InternalUnassignedTextTestLanguage.g:437:23: 'c'
// InternalUnassignedTextTestLanguage.g:522:23: 'c'
{
match('c');
@ -375,7 +484,7 @@ public class InternalUnassignedTextTestLanguageLexer extends Lexer {
cnt3++;
} while (true);
// InternalUnassignedTextTestLanguage.g:437:28: ( 'd' )*
// InternalUnassignedTextTestLanguage.g:522:28: ( 'd' )*
loop4:
do {
int alt4=2;
@ -388,7 +497,7 @@ public class InternalUnassignedTextTestLanguageLexer extends Lexer {
switch (alt4) {
case 1 :
// InternalUnassignedTextTestLanguage.g:437:28: 'd'
// InternalUnassignedTextTestLanguage.g:522:28: 'd'
{
match('d');
@ -409,7 +518,7 @@ public class InternalUnassignedTextTestLanguageLexer extends Lexer {
recover(mse);
throw mse;}
// InternalUnassignedTextTestLanguage.g:437:43: ( ( 'g' | 'h' ) | ( 'i' )+ )
// InternalUnassignedTextTestLanguage.g:522:43: ( ( 'g' | 'h' ) | ( 'i' )+ )
int alt6=2;
int LA6_0 = input.LA(1);
@ -427,7 +536,7 @@ public class InternalUnassignedTextTestLanguageLexer extends Lexer {
}
switch (alt6) {
case 1 :
// InternalUnassignedTextTestLanguage.g:437:44: ( 'g' | 'h' )
// InternalUnassignedTextTestLanguage.g:522:44: ( 'g' | 'h' )
{
if ( (input.LA(1)>='g' && input.LA(1)<='h') ) {
input.consume();
@ -442,9 +551,9 @@ public class InternalUnassignedTextTestLanguageLexer extends Lexer {
}
break;
case 2 :
// InternalUnassignedTextTestLanguage.g:437:54: ( 'i' )+
// InternalUnassignedTextTestLanguage.g:522:54: ( 'i' )+
{
// InternalUnassignedTextTestLanguage.g:437:54: ( 'i' )+
// InternalUnassignedTextTestLanguage.g:522:54: ( 'i' )+
int cnt5=0;
loop5:
do {
@ -458,7 +567,7 @@ public class InternalUnassignedTextTestLanguageLexer extends Lexer {
switch (alt5) {
case 1 :
// InternalUnassignedTextTestLanguage.g:437:54: 'i'
// InternalUnassignedTextTestLanguage.g:522:54: 'i'
{
match('i');
@ -482,7 +591,7 @@ public class InternalUnassignedTextTestLanguageLexer extends Lexer {
mRULE_MULTI2();
matchRange('0','9');
// InternalUnassignedTextTestLanguage.g:437:81: ( '0' .. '9' )+
// InternalUnassignedTextTestLanguage.g:522:81: ( '0' .. '9' )+
int cnt7=0;
loop7:
do {
@ -496,7 +605,7 @@ public class InternalUnassignedTextTestLanguageLexer extends Lexer {
switch (alt7) {
case 1 :
// InternalUnassignedTextTestLanguage.g:437:82: '0' .. '9'
// InternalUnassignedTextTestLanguage.g:522:82: '0' .. '9'
{
matchRange('0','9');
@ -526,8 +635,8 @@ public class InternalUnassignedTextTestLanguageLexer extends Lexer {
// $ANTLR start "RULE_MULTI2"
public final void mRULE_MULTI2() throws RecognitionException {
try {
// InternalUnassignedTextTestLanguage.g:439:22: ( 'j' )
// InternalUnassignedTextTestLanguage.g:439:24: 'j'
// InternalUnassignedTextTestLanguage.g:524:22: ( 'j' )
// InternalUnassignedTextTestLanguage.g:524:24: 'j'
{
match('j');
@ -544,10 +653,10 @@ public class InternalUnassignedTextTestLanguageLexer extends Lexer {
try {
int _type = RULE_ID;
int _channel = DEFAULT_TOKEN_CHANNEL;
// InternalUnassignedTextTestLanguage.g:441:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
// InternalUnassignedTextTestLanguage.g:441:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
// InternalUnassignedTextTestLanguage.g:526:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
// InternalUnassignedTextTestLanguage.g:526:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
{
// InternalUnassignedTextTestLanguage.g:441:11: ( '^' )?
// InternalUnassignedTextTestLanguage.g:526:11: ( '^' )?
int alt8=2;
int LA8_0 = input.LA(1);
@ -556,7 +665,7 @@ public class InternalUnassignedTextTestLanguageLexer extends Lexer {
}
switch (alt8) {
case 1 :
// InternalUnassignedTextTestLanguage.g:441:11: '^'
// InternalUnassignedTextTestLanguage.g:526:11: '^'
{
match('^');
@ -574,7 +683,7 @@ public class InternalUnassignedTextTestLanguageLexer extends Lexer {
recover(mse);
throw mse;}
// InternalUnassignedTextTestLanguage.g:441:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
// InternalUnassignedTextTestLanguage.g:526:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
loop9:
do {
int alt9=2;
@ -623,10 +732,10 @@ public class InternalUnassignedTextTestLanguageLexer extends Lexer {
try {
int _type = RULE_INT;
int _channel = DEFAULT_TOKEN_CHANNEL;
// InternalUnassignedTextTestLanguage.g:443:10: ( ( '0' .. '9' )+ )
// InternalUnassignedTextTestLanguage.g:443:12: ( '0' .. '9' )+
// InternalUnassignedTextTestLanguage.g:528:10: ( ( '0' .. '9' )+ )
// InternalUnassignedTextTestLanguage.g:528:12: ( '0' .. '9' )+
{
// InternalUnassignedTextTestLanguage.g:443:12: ( '0' .. '9' )+
// InternalUnassignedTextTestLanguage.g:528:12: ( '0' .. '9' )+
int cnt10=0;
loop10:
do {
@ -640,7 +749,7 @@ public class InternalUnassignedTextTestLanguageLexer extends Lexer {
switch (alt10) {
case 1 :
// InternalUnassignedTextTestLanguage.g:443:13: '0' .. '9'
// InternalUnassignedTextTestLanguage.g:528:13: '0' .. '9'
{
matchRange('0','9');
@ -672,10 +781,10 @@ public class InternalUnassignedTextTestLanguageLexer extends Lexer {
try {
int _type = RULE_STRING;
int _channel = DEFAULT_TOKEN_CHANNEL;
// InternalUnassignedTextTestLanguage.g:445:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) )
// InternalUnassignedTextTestLanguage.g:445:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
// InternalUnassignedTextTestLanguage.g:530:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' ) )
// InternalUnassignedTextTestLanguage.g:530:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
{
// InternalUnassignedTextTestLanguage.g:445:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
// InternalUnassignedTextTestLanguage.g:530:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
int alt13=2;
int LA13_0 = input.LA(1);
@ -693,10 +802,10 @@ public class InternalUnassignedTextTestLanguageLexer extends Lexer {
}
switch (alt13) {
case 1 :
// InternalUnassignedTextTestLanguage.g:445:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
// InternalUnassignedTextTestLanguage.g:530:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
{
match('\"');
// InternalUnassignedTextTestLanguage.g:445:20: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
// InternalUnassignedTextTestLanguage.g:530:20: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
loop11:
do {
int alt11=3;
@ -712,7 +821,7 @@ public class InternalUnassignedTextTestLanguageLexer extends Lexer {
switch (alt11) {
case 1 :
// InternalUnassignedTextTestLanguage.g:445:21: '\\\\' .
// InternalUnassignedTextTestLanguage.g:530:21: '\\\\' .
{
match('\\');
matchAny();
@ -720,7 +829,7 @@ public class InternalUnassignedTextTestLanguageLexer extends Lexer {
}
break;
case 2 :
// InternalUnassignedTextTestLanguage.g:445:28: ~ ( ( '\\\\' | '\"' ) )
// InternalUnassignedTextTestLanguage.g:530:28: ~ ( ( '\\\\' | '\"' ) )
{
if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
input.consume();
@ -745,10 +854,10 @@ public class InternalUnassignedTextTestLanguageLexer extends Lexer {
}
break;
case 2 :
// InternalUnassignedTextTestLanguage.g:445:48: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
// InternalUnassignedTextTestLanguage.g:530:48: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
{
match('\'');
// InternalUnassignedTextTestLanguage.g:445:53: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
// InternalUnassignedTextTestLanguage.g:530:53: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
loop12:
do {
int alt12=3;
@ -764,7 +873,7 @@ public class InternalUnassignedTextTestLanguageLexer extends Lexer {
switch (alt12) {
case 1 :
// InternalUnassignedTextTestLanguage.g:445:54: '\\\\' .
// InternalUnassignedTextTestLanguage.g:530:54: '\\\\' .
{
match('\\');
matchAny();
@ -772,7 +881,7 @@ public class InternalUnassignedTextTestLanguageLexer extends Lexer {
}
break;
case 2 :
// InternalUnassignedTextTestLanguage.g:445:61: ~ ( ( '\\\\' | '\\'' ) )
// InternalUnassignedTextTestLanguage.g:530:61: ~ ( ( '\\\\' | '\\'' ) )
{
if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
input.consume();
@ -815,12 +924,12 @@ public class InternalUnassignedTextTestLanguageLexer extends Lexer {
try {
int _type = RULE_ML_COMMENT;
int _channel = DEFAULT_TOKEN_CHANNEL;
// InternalUnassignedTextTestLanguage.g:447:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
// InternalUnassignedTextTestLanguage.g:447:19: '/*' ( options {greedy=false; } : . )* '*/'
// InternalUnassignedTextTestLanguage.g:532:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
// InternalUnassignedTextTestLanguage.g:532:19: '/*' ( options {greedy=false; } : . )* '*/'
{
match("/*");
// InternalUnassignedTextTestLanguage.g:447:24: ( options {greedy=false; } : . )*
// InternalUnassignedTextTestLanguage.g:532:24: ( options {greedy=false; } : . )*
loop14:
do {
int alt14=2;
@ -845,7 +954,7 @@ public class InternalUnassignedTextTestLanguageLexer extends Lexer {
switch (alt14) {
case 1 :
// InternalUnassignedTextTestLanguage.g:447:52: .
// InternalUnassignedTextTestLanguage.g:532:52: .
{
matchAny();
@ -875,12 +984,12 @@ public class InternalUnassignedTextTestLanguageLexer extends Lexer {
try {
int _type = RULE_SL_COMMENT;
int _channel = DEFAULT_TOKEN_CHANNEL;
// InternalUnassignedTextTestLanguage.g:449:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
// InternalUnassignedTextTestLanguage.g:449:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
// InternalUnassignedTextTestLanguage.g:534:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
// InternalUnassignedTextTestLanguage.g:534:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
{
match("//");
// InternalUnassignedTextTestLanguage.g:449:24: (~ ( ( '\\n' | '\\r' ) ) )*
// InternalUnassignedTextTestLanguage.g:534:24: (~ ( ( '\\n' | '\\r' ) ) )*
loop15:
do {
int alt15=2;
@ -893,7 +1002,7 @@ public class InternalUnassignedTextTestLanguageLexer extends Lexer {
switch (alt15) {
case 1 :
// InternalUnassignedTextTestLanguage.g:449:24: ~ ( ( '\\n' | '\\r' ) )
// InternalUnassignedTextTestLanguage.g:534: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)<='\uFFFF') ) {
input.consume();
@ -913,7 +1022,7 @@ public class InternalUnassignedTextTestLanguageLexer extends Lexer {
}
} while (true);
// InternalUnassignedTextTestLanguage.g:449:40: ( ( '\\r' )? '\\n' )?
// InternalUnassignedTextTestLanguage.g:534:40: ( ( '\\r' )? '\\n' )?
int alt17=2;
int LA17_0 = input.LA(1);
@ -922,9 +1031,9 @@ public class InternalUnassignedTextTestLanguageLexer extends Lexer {
}
switch (alt17) {
case 1 :
// InternalUnassignedTextTestLanguage.g:449:41: ( '\\r' )? '\\n'
// InternalUnassignedTextTestLanguage.g:534:41: ( '\\r' )? '\\n'
{
// InternalUnassignedTextTestLanguage.g:449:41: ( '\\r' )?
// InternalUnassignedTextTestLanguage.g:534:41: ( '\\r' )?
int alt16=2;
int LA16_0 = input.LA(1);
@ -933,7 +1042,7 @@ public class InternalUnassignedTextTestLanguageLexer extends Lexer {
}
switch (alt16) {
case 1 :
// InternalUnassignedTextTestLanguage.g:449:41: '\\r'
// InternalUnassignedTextTestLanguage.g:534:41: '\\r'
{
match('\r');
@ -965,10 +1074,10 @@ public class InternalUnassignedTextTestLanguageLexer extends Lexer {
try {
int _type = RULE_WS;
int _channel = DEFAULT_TOKEN_CHANNEL;
// InternalUnassignedTextTestLanguage.g:451:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
// InternalUnassignedTextTestLanguage.g:451:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
// InternalUnassignedTextTestLanguage.g:536:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
// InternalUnassignedTextTestLanguage.g:536:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
{
// InternalUnassignedTextTestLanguage.g:451:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
// InternalUnassignedTextTestLanguage.g:536:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
int cnt18=0;
loop18:
do {
@ -1022,8 +1131,8 @@ public class InternalUnassignedTextTestLanguageLexer extends Lexer {
try {
int _type = RULE_ANY_OTHER;
int _channel = DEFAULT_TOKEN_CHANNEL;
// InternalUnassignedTextTestLanguage.g:453:16: ( . )
// InternalUnassignedTextTestLanguage.g:453:18: .
// InternalUnassignedTextTestLanguage.g:538:16: ( . )
// InternalUnassignedTextTestLanguage.g:538:18: .
{
matchAny();
@ -1038,8 +1147,8 @@ public class InternalUnassignedTextTestLanguageLexer extends Lexer {
// $ANTLR end "RULE_ANY_OTHER"
public void mTokens() throws RecognitionException {
// InternalUnassignedTextTestLanguage.g:1:8: ( T__15 | T__16 | T__17 | T__18 | T__19 | RULE_CASEINSENSITIVEKEYWORD | RULE_PLURAL | RULE_MULTI | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
int alt19=15;
// InternalUnassignedTextTestLanguage.g:1:8: ( T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | RULE_CASEINSENSITIVEKEYWORD | RULE_PLURAL | RULE_MULTI | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
int alt19=20;
alt19 = dfa19.predict(input);
switch (alt19) {
case 1 :
@ -1078,70 +1187,105 @@ public class InternalUnassignedTextTestLanguageLexer extends Lexer {
}
break;
case 6 :
// InternalUnassignedTextTestLanguage.g:1:40: RULE_CASEINSENSITIVEKEYWORD
// InternalUnassignedTextTestLanguage.g:1:40: T__20
{
mT__20();
}
break;
case 7 :
// InternalUnassignedTextTestLanguage.g:1:46: T__21
{
mT__21();
}
break;
case 8 :
// InternalUnassignedTextTestLanguage.g:1:52: T__22
{
mT__22();
}
break;
case 9 :
// InternalUnassignedTextTestLanguage.g:1:58: T__23
{
mT__23();
}
break;
case 10 :
// InternalUnassignedTextTestLanguage.g:1:64: T__24
{
mT__24();
}
break;
case 11 :
// InternalUnassignedTextTestLanguage.g:1:70: RULE_CASEINSENSITIVEKEYWORD
{
mRULE_CASEINSENSITIVEKEYWORD();
}
break;
case 7 :
// InternalUnassignedTextTestLanguage.g:1:68: RULE_PLURAL
case 12 :
// InternalUnassignedTextTestLanguage.g:1:98: RULE_PLURAL
{
mRULE_PLURAL();
}
break;
case 8 :
// InternalUnassignedTextTestLanguage.g:1:80: RULE_MULTI
case 13 :
// InternalUnassignedTextTestLanguage.g:1:110: RULE_MULTI
{
mRULE_MULTI();
}
break;
case 9 :
// InternalUnassignedTextTestLanguage.g:1:91: RULE_ID
case 14 :
// InternalUnassignedTextTestLanguage.g:1:121: RULE_ID
{
mRULE_ID();
}
break;
case 10 :
// InternalUnassignedTextTestLanguage.g:1:99: RULE_INT
case 15 :
// InternalUnassignedTextTestLanguage.g:1:129: RULE_INT
{
mRULE_INT();
}
break;
case 11 :
// InternalUnassignedTextTestLanguage.g:1:108: RULE_STRING
case 16 :
// InternalUnassignedTextTestLanguage.g:1:138: RULE_STRING
{
mRULE_STRING();
}
break;
case 12 :
// InternalUnassignedTextTestLanguage.g:1:120: RULE_ML_COMMENT
case 17 :
// InternalUnassignedTextTestLanguage.g:1:150: RULE_ML_COMMENT
{
mRULE_ML_COMMENT();
}
break;
case 13 :
// InternalUnassignedTextTestLanguage.g:1:136: RULE_SL_COMMENT
case 18 :
// InternalUnassignedTextTestLanguage.g:1:166: RULE_SL_COMMENT
{
mRULE_SL_COMMENT();
}
break;
case 14 :
// InternalUnassignedTextTestLanguage.g:1:152: RULE_WS
case 19 :
// InternalUnassignedTextTestLanguage.g:1:182: RULE_WS
{
mRULE_WS();
}
break;
case 15 :
// InternalUnassignedTextTestLanguage.g:1:160: RULE_ANY_OTHER
case 20 :
// InternalUnassignedTextTestLanguage.g:1:190: RULE_ANY_OTHER
{
mRULE_ANY_OTHER();
@ -1155,97 +1299,113 @@ public class InternalUnassignedTextTestLanguageLexer extends Lexer {
protected DFA19 dfa19 = new DFA19(this);
static final String DFA19_eotS =
"\1\uffff\10\22\1\20\2\uffff\3\20\2\uffff\1\22\1\uffff\10\22\5\uffff\3\22\1\54\10\22\1\uffff\2\22\1\70\3\22\1\73\3\22\1\70\1\uffff\2\22\1\uffff\7\22\1\110\1\111\1\22\1\113\1\22\4\uffff\1\115\1\uffff";
"\1\uffff\7\23\1\35\1\23\1\21\2\uffff\3\21\2\uffff\1\23\1\uffff\6\23\1\55\2\23\1\uffff\2\23\5\uffff\3\23\1\65\4\23\1\uffff\7\23\1\uffff\1\23\1\102\1\103\1\23\1\106\4\23\1\112\2\23\2\uffff\1\115\1\106\1\uffff\3\23\1\uffff\2\23\1\uffff\5\23\1\130\1\131\1\23\1\133\1\23\4\uffff\1\135\1\uffff";
static final String DFA19_eofS =
"\116\uffff";
"\136\uffff";
static final String DFA19_minS =
"\1\0\1\157\1\165\1\141\1\164\1\145\1\105\1\164\1\142\1\101\2\uffff\2\0\1\52\2\uffff\1\156\1\uffff\1\154\1\164\2\162\1\131\1\145\2\143\5\uffff\2\164\1\141\1\60\1\155\1\127\1\155\1\144\1\147\1\145\1\151\1\164\1\uffff\1\151\1\117\1\60\1\152\1\151\1\156\1\60\1\171\1\156\1\122\1\60\1\uffff\1\60\1\164\1\uffff\1\160\1\141\1\104\1\60\1\163\1\145\1\154\2\60\1\72\1\60\1\163\4\uffff\1\60\1\uffff";
"\1\0\1\157\1\165\1\141\1\164\1\145\1\162\1\163\1\60\1\105\1\101\2\uffff\2\0\1\52\2\uffff\1\156\1\uffff\1\154\1\164\2\162\1\151\1\157\1\60\1\145\1\143\1\uffff\1\143\1\131\5\uffff\2\164\1\141\1\60\1\155\1\164\1\163\1\165\1\uffff\1\155\1\144\1\147\1\127\1\145\1\151\1\164\1\uffff\1\151\2\60\1\160\1\60\1\152\1\151\1\117\1\156\1\60\1\171\1\156\2\uffff\2\60\1\uffff\1\60\1\122\1\164\1\uffff\1\160\1\141\1\uffff\1\60\1\104\1\163\1\145\1\154\2\60\1\72\1\60\1\163\4\uffff\1\60\1\uffff";
static final String DFA19_maxS =
"\1\uffff\1\157\1\165\1\141\1\164\2\145\1\164\1\143\1\172\2\uffff\2\uffff\1\57\2\uffff\1\156\1\uffff\1\154\1\164\2\162\1\171\1\145\1\143\1\146\5\uffff\2\164\1\141\1\172\1\155\1\167\1\155\1\146\1\151\1\145\1\151\1\164\1\uffff\1\151\1\157\1\172\2\152\1\156\1\172\1\171\1\156\1\162\1\172\1\uffff\1\71\1\164\1\uffff\1\160\1\141\1\144\1\71\1\163\1\145\1\154\2\172\1\72\1\172\1\163\4\uffff\1\172\1\uffff";
"\1\uffff\1\157\1\165\1\141\1\164\1\150\1\162\1\164\1\172\1\145\1\172\2\uffff\2\uffff\1\57\2\uffff\1\156\1\uffff\1\154\1\164\1\162\1\163\1\151\1\157\1\172\1\145\1\143\1\uffff\1\146\1\171\5\uffff\2\164\1\141\1\172\1\155\1\164\1\163\1\165\1\uffff\1\155\1\146\1\151\1\167\1\145\1\151\1\164\1\uffff\1\151\2\172\1\160\1\172\2\152\1\157\1\156\1\172\1\171\1\156\2\uffff\2\172\1\uffff\1\71\1\162\1\164\1\uffff\1\160\1\141\1\uffff\1\71\1\144\1\163\1\145\1\154\2\172\1\72\1\172\1\163\4\uffff\1\172\1\uffff";
static final String DFA19_acceptS =
"\12\uffff\1\11\1\12\3\uffff\1\16\1\17\1\uffff\1\11\10\uffff\1\12\1\13\1\14\1\15\1\16\14\uffff\1\4\13\uffff\1\7\2\uffff\1\2\14\uffff\1\6\1\10\1\1\1\3\1\uffff\1\5";
"\13\uffff\1\16\1\17\3\uffff\1\23\1\24\1\uffff\1\16\11\uffff\1\11\2\uffff\1\17\1\20\1\21\1\22\1\23\10\uffff\1\10\7\uffff\1\4\14\uffff\1\12\1\7\2\uffff\1\14\3\uffff\1\2\2\uffff\1\6\12\uffff\1\15\1\13\1\1\1\3\1\uffff\1\5";
static final String DFA19_specialS =
"\1\1\13\uffff\1\0\1\2\100\uffff}>";
"\1\0\14\uffff\1\1\1\2\117\uffff}>";
static final String[] DFA19_transitionS = DFA19_transitionS_.DFA19_transitionS;
private static final class DFA19_transitionS_ {
static final String[] DFA19_transitionS = {
"\11\20\2\17\2\20\1\17\22\20\1\17\1\20\1\14\4\20\1\15\7\20\1\16\12\13\7\20\12\12\1\6\17\12\3\20\1\11\1\12\1\20\1\10\1\12\1\1\1\3\4\12\1\7\1\12\1\6\1\12\1\2\5\12\1\4\1\5\6\12\uff85\20",
"\1\21",
"\1\23",
"\11\21\2\20\2\21\1\20\22\21\1\20\1\21\1\15\4\21\1\16\7\21\1\17\12\14\7\21\12\13\1\11\17\13\3\21\1\12\1\13\1\21\1\10\1\13\1\1\1\3\2\13\1\6\1\13\1\7\1\13\1\11\1\13\1\2\5\13\1\4\1\5\6\13\uff85\21",
"\1\22",
"\1\24",
"\1\25",
"\1\26",
"\1\27\37\uffff\1\27",
"\1\30",
"\1\31\1\32",
"\32\22\4\uffff\1\22\1\uffff\32\22",
"\1\27\2\uffff\1\30",
"\1\31",
"\1\32\1\33",
"\12\23\7\uffff\32\23\4\uffff\1\23\1\uffff\1\23\1\34\1\36\27\23",
"\1\37\37\uffff\1\37",
"\32\23\4\uffff\1\23\1\uffff\32\23",
"",
"",
"\0\34",
"\0\34",
"\1\35\4\uffff\1\36",
"\0\41",
"\0\41",
"\1\42\4\uffff\1\43",
"",
"",
"\1\40",
"\1\45",
"",
"\1\41",
"\1\42",
"\1\43",
"\1\44",
"\1\45\37\uffff\1\45",
"\1\46",
"\1\32",
"\1\32\1\47\2\50",
"",
"",
"",
"",
"",
"\1\51",
"\1\52",
"\1\47",
"\1\50",
"\1\51\1\52",
"\1\53",
"\12\22\7\uffff\32\22\4\uffff\1\22\1\uffff\32\22",
"\1\55",
"\1\56\37\uffff\1\56",
"\1\57",
"\1\47\2\50",
"\2\60\1\61",
"\1\54",
"\12\23\7\uffff\32\23\4\uffff\1\23\1\uffff\32\23",
"\1\56",
"\1\36",
"",
"\1\36\1\57\2\60",
"\1\61\37\uffff\1\61",
"",
"",
"",
"",
"",
"\1\62",
"\1\63",
"\1\64",
"",
"\1\65",
"\1\66\37\uffff\1\66",
"\12\22\7\uffff\32\22\4\uffff\1\22\1\uffff\22\22\1\67\7\22",
"\12\23\7\uffff\32\23\4\uffff\1\23\1\uffff\32\23",
"\1\66",
"\1\67",
"\1\70",
"\1\71",
"\1\61\1\71",
"\1\72",
"\12\22\7\uffff\32\22\4\uffff\1\22\1\uffff\32\22",
"\1\74",
"\1\75",
"\1\76\37\uffff\1\76",
"\12\22\7\uffff\32\22\4\uffff\1\22\1\uffff\32\22",
"",
"\12\77",
"\1\72",
"\1\57\2\60",
"\2\73\1\74",
"\1\75\37\uffff\1\75",
"\1\76",
"\1\77",
"\1\100",
"",
"\1\101",
"\1\102",
"\1\103\37\uffff\1\103",
"\12\104",
"\1\105",
"\1\106",
"\12\23\7\uffff\32\23\4\uffff\1\23\1\uffff\32\23",
"\12\23\7\uffff\32\23\4\uffff\1\23\1\uffff\32\23",
"\1\104",
"\12\23\7\uffff\32\23\4\uffff\1\23\1\uffff\22\23\1\105\7\23",
"\1\107",
"\12\22\7\uffff\32\22\4\uffff\1\22\1\uffff\32\22",
"\12\104\7\uffff\32\22\4\uffff\1\22\1\uffff\32\22",
"\1\112",
"\12\22\7\uffff\32\22\4\uffff\1\22\1\uffff\32\22",
"\1\74\1\107",
"\1\110\37\uffff\1\110",
"\1\111",
"\12\23\7\uffff\32\23\4\uffff\1\23\1\uffff\32\23",
"\1\113",
"\1\114",
"",
"",
"\12\23\7\uffff\32\23\4\uffff\1\23\1\uffff\32\23",
"\12\23\7\uffff\32\23\4\uffff\1\23\1\uffff\32\23",
"",
"\12\116",
"\1\117\37\uffff\1\117",
"\1\120",
"",
"\1\121",
"\1\122",
"",
"\12\123",
"\1\124\37\uffff\1\124",
"\1\125",
"\1\126",
"\1\127",
"\12\123\7\uffff\32\23\4\uffff\1\23\1\uffff\32\23",
"\12\23\7\uffff\32\23\4\uffff\1\23\1\uffff\32\23",
"\1\132",
"\12\23\7\uffff\32\23\4\uffff\1\23\1\uffff\32\23",
"\1\134",
"",
"",
"\12\22\7\uffff\32\22\4\uffff\1\22\1\uffff\32\22",
"",
"",
"\12\23\7\uffff\32\23\4\uffff\1\23\1\uffff\32\23",
""
};
}
@ -1280,23 +1440,13 @@ public class InternalUnassignedTextTestLanguageLexer extends Lexer {
this.transition = DFA19_transition;
}
public String getDescription() {
return "1:1: Tokens : ( T__15 | T__16 | T__17 | T__18 | T__19 | RULE_CASEINSENSITIVEKEYWORD | RULE_PLURAL | RULE_MULTI | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );";
return "1:1: Tokens : ( T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | RULE_CASEINSENSITIVEKEYWORD | RULE_PLURAL | RULE_MULTI | RULE_ID | RULE_INT | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );";
}
public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
IntStream input = _input;
int _s = s;
switch ( s ) {
case 0 :
int LA19_12 = input.LA(1);
s = -1;
if ( ((LA19_12>='\u0000' && LA19_12<='\uFFFF')) ) {s = 28;}
else s = 16;
if ( s>=0 ) return s;
break;
case 1 :
int LA19_0 = input.LA(1);
s = -1;
@ -1310,37 +1460,49 @@ public class InternalUnassignedTextTestLanguageLexer extends Lexer {
else if ( (LA19_0=='t') ) {s = 5;}
else if ( (LA19_0=='K'||LA19_0=='k') ) {s = 6;}
else if ( (LA19_0=='g') ) {s = 6;}
else if ( (LA19_0=='i') ) {s = 7;}
else if ( (LA19_0=='a') ) {s = 8;}
else if ( (LA19_0=='^') ) {s = 9;}
else if ( (LA19_0=='K'||LA19_0=='k') ) {s = 9;}
else if ( ((LA19_0>='A' && LA19_0<='J')||(LA19_0>='L' && LA19_0<='Z')||LA19_0=='_'||LA19_0=='b'||(LA19_0>='e' && LA19_0<='h')||LA19_0=='j'||LA19_0=='l'||(LA19_0>='n' && LA19_0<='r')||(LA19_0>='u' && LA19_0<='z')) ) {s = 10;}
else if ( (LA19_0=='^') ) {s = 10;}
else if ( ((LA19_0>='0' && LA19_0<='9')) ) {s = 11;}
else if ( ((LA19_0>='A' && LA19_0<='J')||(LA19_0>='L' && LA19_0<='Z')||LA19_0=='_'||LA19_0=='b'||(LA19_0>='e' && LA19_0<='f')||LA19_0=='h'||LA19_0=='j'||LA19_0=='l'||(LA19_0>='n' && LA19_0<='r')||(LA19_0>='u' && LA19_0<='z')) ) {s = 11;}
else if ( (LA19_0=='\"') ) {s = 12;}
else if ( ((LA19_0>='0' && LA19_0<='9')) ) {s = 12;}
else if ( (LA19_0=='\'') ) {s = 13;}
else if ( (LA19_0=='\"') ) {s = 13;}
else if ( (LA19_0=='/') ) {s = 14;}
else if ( (LA19_0=='\'') ) {s = 14;}
else if ( ((LA19_0>='\t' && LA19_0<='\n')||LA19_0=='\r'||LA19_0==' ') ) {s = 15;}
else if ( (LA19_0=='/') ) {s = 15;}
else if ( ((LA19_0>='\u0000' && LA19_0<='\b')||(LA19_0>='\u000B' && LA19_0<='\f')||(LA19_0>='\u000E' && LA19_0<='\u001F')||LA19_0=='!'||(LA19_0>='#' && LA19_0<='&')||(LA19_0>='(' && LA19_0<='.')||(LA19_0>=':' && LA19_0<='@')||(LA19_0>='[' && LA19_0<=']')||LA19_0=='`'||(LA19_0>='{' && LA19_0<='\uFFFF')) ) {s = 16;}
else if ( ((LA19_0>='\t' && LA19_0<='\n')||LA19_0=='\r'||LA19_0==' ') ) {s = 16;}
else if ( ((LA19_0>='\u0000' && LA19_0<='\b')||(LA19_0>='\u000B' && LA19_0<='\f')||(LA19_0>='\u000E' && LA19_0<='\u001F')||LA19_0=='!'||(LA19_0>='#' && LA19_0<='&')||(LA19_0>='(' && LA19_0<='.')||(LA19_0>=':' && LA19_0<='@')||(LA19_0>='[' && LA19_0<=']')||LA19_0=='`'||(LA19_0>='{' && LA19_0<='\uFFFF')) ) {s = 17;}
if ( s>=0 ) return s;
break;
case 1 :
int LA19_13 = input.LA(1);
s = -1;
if ( ((LA19_13>='\u0000' && LA19_13<='\uFFFF')) ) {s = 33;}
else s = 17;
if ( s>=0 ) return s;
break;
case 2 :
int LA19_13 = input.LA(1);
int LA19_14 = input.LA(1);
s = -1;
if ( ((LA19_13>='\u0000' && LA19_13<='\uFFFF')) ) {s = 28;}
if ( ((LA19_14>='\u0000' && LA19_14<='\uFFFF')) ) {s = 33;}
else s = 16;
else s = 17;
if ( s>=0 ) return s;
break;

View file

@ -21,7 +21,7 @@ import java.util.ArrayList;
@SuppressWarnings("all")
public class InternalUnassignedTextTestLanguageParser extends AbstractInternalAntlrParser {
public static final String[] tokenNames = new String[] {
"<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_CASEINSENSITIVEKEYWORD", "RULE_INT", "RULE_PLURAL", "RULE_MULTI", "RULE_STRING", "RULE_ID", "RULE_MULTI2", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'contents:'", "'multi'", "'datatype'", "'str'", "'terminals'"
"<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_CASEINSENSITIVEKEYWORD", "RULE_INT", "RULE_PLURAL", "RULE_MULTI", "RULE_STRING", "RULE_ID", "RULE_MULTI2", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'contents:'", "'multi'", "'datatype'", "'str'", "'terminals'", "'group'", "'this'", "'is'", "'a'", "'test'"
};
public static final int RULE_STRING=8;
public static final int RULE_SL_COMMENT=12;
@ -38,8 +38,13 @@ public class InternalUnassignedTextTestLanguageParser extends AbstractInternalAn
public static final int RULE_ANY_OTHER=14;
public static final int RULE_MULTI=7;
public static final int RULE_INT=5;
public static final int T__22=22;
public static final int RULE_ML_COMMENT=11;
public static final int T__23=23;
public static final int T__24=24;
public static final int RULE_CASEINSENSITIVEKEYWORD=4;
public static final int T__20=20;
public static final int T__21=21;
// delegates
// delegators
@ -117,7 +122,7 @@ public class InternalUnassignedTextTestLanguageParser extends AbstractInternalAn
// $ANTLR start "ruleModel"
// InternalUnassignedTextTestLanguage.g:71:1: ruleModel returns [EObject current=null] : (this_CaseInsensitiveKeywordRule_0= ruleCaseInsensitiveKeywordRule | this_PluralRule_1= rulePluralRule | this_MultiRule_2= ruleMultiRule | this_DatatypeRule_3= ruleDatatypeRule | this_CommonTerminalsRule_4= ruleCommonTerminalsRule ) ;
// InternalUnassignedTextTestLanguage.g:71:1: ruleModel returns [EObject current=null] : (this_CaseInsensitiveKeywordRule_0= ruleCaseInsensitiveKeywordRule | this_PluralRule_1= rulePluralRule | this_MultiRule_2= ruleMultiRule | this_DatatypeRule_3= ruleDatatypeRule | this_CommonTerminalsRule_4= ruleCommonTerminalsRule | this_GroupRule_5= ruleGroupRule ) ;
public final EObject ruleModel() throws RecognitionException {
EObject current = null;
@ -131,16 +136,18 @@ public class InternalUnassignedTextTestLanguageParser extends AbstractInternalAn
EObject this_CommonTerminalsRule_4 = null;
EObject this_GroupRule_5 = null;
enterRule();
try {
// InternalUnassignedTextTestLanguage.g:77:2: ( (this_CaseInsensitiveKeywordRule_0= ruleCaseInsensitiveKeywordRule | this_PluralRule_1= rulePluralRule | this_MultiRule_2= ruleMultiRule | this_DatatypeRule_3= ruleDatatypeRule | this_CommonTerminalsRule_4= ruleCommonTerminalsRule ) )
// InternalUnassignedTextTestLanguage.g:78:2: (this_CaseInsensitiveKeywordRule_0= ruleCaseInsensitiveKeywordRule | this_PluralRule_1= rulePluralRule | this_MultiRule_2= ruleMultiRule | this_DatatypeRule_3= ruleDatatypeRule | this_CommonTerminalsRule_4= ruleCommonTerminalsRule )
// InternalUnassignedTextTestLanguage.g:77:2: ( (this_CaseInsensitiveKeywordRule_0= ruleCaseInsensitiveKeywordRule | this_PluralRule_1= rulePluralRule | this_MultiRule_2= ruleMultiRule | this_DatatypeRule_3= ruleDatatypeRule | this_CommonTerminalsRule_4= ruleCommonTerminalsRule | this_GroupRule_5= ruleGroupRule ) )
// InternalUnassignedTextTestLanguage.g:78:2: (this_CaseInsensitiveKeywordRule_0= ruleCaseInsensitiveKeywordRule | this_PluralRule_1= rulePluralRule | this_MultiRule_2= ruleMultiRule | this_DatatypeRule_3= ruleDatatypeRule | this_CommonTerminalsRule_4= ruleCommonTerminalsRule | this_GroupRule_5= ruleGroupRule )
{
// InternalUnassignedTextTestLanguage.g:78:2: (this_CaseInsensitiveKeywordRule_0= ruleCaseInsensitiveKeywordRule | this_PluralRule_1= rulePluralRule | this_MultiRule_2= ruleMultiRule | this_DatatypeRule_3= ruleDatatypeRule | this_CommonTerminalsRule_4= ruleCommonTerminalsRule )
int alt1=5;
// InternalUnassignedTextTestLanguage.g:78:2: (this_CaseInsensitiveKeywordRule_0= ruleCaseInsensitiveKeywordRule | this_PluralRule_1= rulePluralRule | this_MultiRule_2= ruleMultiRule | this_DatatypeRule_3= ruleDatatypeRule | this_CommonTerminalsRule_4= ruleCommonTerminalsRule | this_GroupRule_5= ruleGroupRule )
int alt1=6;
switch ( input.LA(1) ) {
case RULE_CASEINSENSITIVEKEYWORD:
{
@ -167,6 +174,11 @@ public class InternalUnassignedTextTestLanguageParser extends AbstractInternalAn
alt1=5;
}
break;
case 20:
{
alt1=6;
}
break;
default:
NoViableAltException nvae =
new NoViableAltException("", 1, 0, input);
@ -263,6 +275,24 @@ public class InternalUnassignedTextTestLanguageParser extends AbstractInternalAn
afterParserOrEnumRuleCall();
}
break;
case 6 :
// InternalUnassignedTextTestLanguage.g:124:3: this_GroupRule_5= ruleGroupRule
{
newCompositeNode(grammarAccess.getModelAccess().getGroupRuleParserRuleCall_5());
pushFollow(FollowSets000.FOLLOW_2);
this_GroupRule_5=ruleGroupRule();
state._fsp--;
current = this_GroupRule_5;
afterParserOrEnumRuleCall();
}
break;
@ -288,7 +318,7 @@ public class InternalUnassignedTextTestLanguageParser extends AbstractInternalAn
// $ANTLR start "entryRuleCaseInsensitiveKeywordRule"
// InternalUnassignedTextTestLanguage.g:127:1: entryRuleCaseInsensitiveKeywordRule returns [EObject current=null] : iv_ruleCaseInsensitiveKeywordRule= ruleCaseInsensitiveKeywordRule EOF ;
// InternalUnassignedTextTestLanguage.g:136:1: entryRuleCaseInsensitiveKeywordRule returns [EObject current=null] : iv_ruleCaseInsensitiveKeywordRule= ruleCaseInsensitiveKeywordRule EOF ;
public final EObject entryRuleCaseInsensitiveKeywordRule() throws RecognitionException {
EObject current = null;
@ -296,8 +326,8 @@ public class InternalUnassignedTextTestLanguageParser extends AbstractInternalAn
try {
// InternalUnassignedTextTestLanguage.g:127:67: (iv_ruleCaseInsensitiveKeywordRule= ruleCaseInsensitiveKeywordRule EOF )
// InternalUnassignedTextTestLanguage.g:128:2: iv_ruleCaseInsensitiveKeywordRule= ruleCaseInsensitiveKeywordRule EOF
// InternalUnassignedTextTestLanguage.g:136:67: (iv_ruleCaseInsensitiveKeywordRule= ruleCaseInsensitiveKeywordRule EOF )
// InternalUnassignedTextTestLanguage.g:137:2: iv_ruleCaseInsensitiveKeywordRule= ruleCaseInsensitiveKeywordRule EOF
{
newCompositeNode(grammarAccess.getCaseInsensitiveKeywordRuleRule());
pushFollow(FollowSets000.FOLLOW_1);
@ -324,7 +354,7 @@ public class InternalUnassignedTextTestLanguageParser extends AbstractInternalAn
// $ANTLR start "ruleCaseInsensitiveKeywordRule"
// InternalUnassignedTextTestLanguage.g:134:1: ruleCaseInsensitiveKeywordRule returns [EObject current=null] : (this_CaseInsensitiveKeyword_0= RULE_CASEINSENSITIVEKEYWORD ( (lv_val_1_0= RULE_INT ) ) ) ;
// InternalUnassignedTextTestLanguage.g:143:1: ruleCaseInsensitiveKeywordRule returns [EObject current=null] : (this_CaseInsensitiveKeyword_0= RULE_CASEINSENSITIVEKEYWORD ( (lv_val_1_0= RULE_INT ) ) ) ;
public final EObject ruleCaseInsensitiveKeywordRule() throws RecognitionException {
EObject current = null;
@ -335,21 +365,21 @@ public class InternalUnassignedTextTestLanguageParser extends AbstractInternalAn
enterRule();
try {
// InternalUnassignedTextTestLanguage.g:140:2: ( (this_CaseInsensitiveKeyword_0= RULE_CASEINSENSITIVEKEYWORD ( (lv_val_1_0= RULE_INT ) ) ) )
// InternalUnassignedTextTestLanguage.g:141:2: (this_CaseInsensitiveKeyword_0= RULE_CASEINSENSITIVEKEYWORD ( (lv_val_1_0= RULE_INT ) ) )
// InternalUnassignedTextTestLanguage.g:149:2: ( (this_CaseInsensitiveKeyword_0= RULE_CASEINSENSITIVEKEYWORD ( (lv_val_1_0= RULE_INT ) ) ) )
// InternalUnassignedTextTestLanguage.g:150:2: (this_CaseInsensitiveKeyword_0= RULE_CASEINSENSITIVEKEYWORD ( (lv_val_1_0= RULE_INT ) ) )
{
// InternalUnassignedTextTestLanguage.g:141:2: (this_CaseInsensitiveKeyword_0= RULE_CASEINSENSITIVEKEYWORD ( (lv_val_1_0= RULE_INT ) ) )
// InternalUnassignedTextTestLanguage.g:142:3: this_CaseInsensitiveKeyword_0= RULE_CASEINSENSITIVEKEYWORD ( (lv_val_1_0= RULE_INT ) )
// InternalUnassignedTextTestLanguage.g:150:2: (this_CaseInsensitiveKeyword_0= RULE_CASEINSENSITIVEKEYWORD ( (lv_val_1_0= RULE_INT ) ) )
// InternalUnassignedTextTestLanguage.g:151:3: this_CaseInsensitiveKeyword_0= RULE_CASEINSENSITIVEKEYWORD ( (lv_val_1_0= RULE_INT ) )
{
this_CaseInsensitiveKeyword_0=(Token)match(input,RULE_CASEINSENSITIVEKEYWORD,FollowSets000.FOLLOW_3);
newLeafNode(this_CaseInsensitiveKeyword_0, grammarAccess.getCaseInsensitiveKeywordRuleAccess().getCaseInsensitiveKeywordTerminalRuleCall_0());
// InternalUnassignedTextTestLanguage.g:146:3: ( (lv_val_1_0= RULE_INT ) )
// InternalUnassignedTextTestLanguage.g:147:4: (lv_val_1_0= RULE_INT )
// InternalUnassignedTextTestLanguage.g:155:3: ( (lv_val_1_0= RULE_INT ) )
// InternalUnassignedTextTestLanguage.g:156:4: (lv_val_1_0= RULE_INT )
{
// InternalUnassignedTextTestLanguage.g:147:4: (lv_val_1_0= RULE_INT )
// InternalUnassignedTextTestLanguage.g:148:5: lv_val_1_0= RULE_INT
// InternalUnassignedTextTestLanguage.g:156:4: (lv_val_1_0= RULE_INT )
// InternalUnassignedTextTestLanguage.g:157:5: lv_val_1_0= RULE_INT
{
lv_val_1_0=(Token)match(input,RULE_INT,FollowSets000.FOLLOW_2);
@ -394,7 +424,7 @@ public class InternalUnassignedTextTestLanguageParser extends AbstractInternalAn
// $ANTLR start "entryRulePluralRule"
// InternalUnassignedTextTestLanguage.g:168:1: entryRulePluralRule returns [EObject current=null] : iv_rulePluralRule= rulePluralRule EOF ;
// InternalUnassignedTextTestLanguage.g:177:1: entryRulePluralRule returns [EObject current=null] : iv_rulePluralRule= rulePluralRule EOF ;
public final EObject entryRulePluralRule() throws RecognitionException {
EObject current = null;
@ -402,8 +432,8 @@ public class InternalUnassignedTextTestLanguageParser extends AbstractInternalAn
try {
// InternalUnassignedTextTestLanguage.g:168:51: (iv_rulePluralRule= rulePluralRule EOF )
// InternalUnassignedTextTestLanguage.g:169:2: iv_rulePluralRule= rulePluralRule EOF
// InternalUnassignedTextTestLanguage.g:177:51: (iv_rulePluralRule= rulePluralRule EOF )
// InternalUnassignedTextTestLanguage.g:178:2: iv_rulePluralRule= rulePluralRule EOF
{
newCompositeNode(grammarAccess.getPluralRuleRule());
pushFollow(FollowSets000.FOLLOW_1);
@ -430,7 +460,7 @@ public class InternalUnassignedTextTestLanguageParser extends AbstractInternalAn
// $ANTLR start "rulePluralRule"
// InternalUnassignedTextTestLanguage.g:175:1: rulePluralRule returns [EObject current=null] : (otherlv_0= 'contents:' ( (lv_count_1_0= RULE_INT ) ) this_Plural_2= RULE_PLURAL ) ;
// InternalUnassignedTextTestLanguage.g:184:1: rulePluralRule returns [EObject current=null] : (otherlv_0= 'contents:' ( (lv_count_1_0= RULE_INT ) ) this_Plural_2= RULE_PLURAL ) ;
public final EObject rulePluralRule() throws RecognitionException {
EObject current = null;
@ -442,21 +472,21 @@ public class InternalUnassignedTextTestLanguageParser extends AbstractInternalAn
enterRule();
try {
// InternalUnassignedTextTestLanguage.g:181:2: ( (otherlv_0= 'contents:' ( (lv_count_1_0= RULE_INT ) ) this_Plural_2= RULE_PLURAL ) )
// InternalUnassignedTextTestLanguage.g:182:2: (otherlv_0= 'contents:' ( (lv_count_1_0= RULE_INT ) ) this_Plural_2= RULE_PLURAL )
// InternalUnassignedTextTestLanguage.g:190:2: ( (otherlv_0= 'contents:' ( (lv_count_1_0= RULE_INT ) ) this_Plural_2= RULE_PLURAL ) )
// InternalUnassignedTextTestLanguage.g:191:2: (otherlv_0= 'contents:' ( (lv_count_1_0= RULE_INT ) ) this_Plural_2= RULE_PLURAL )
{
// InternalUnassignedTextTestLanguage.g:182:2: (otherlv_0= 'contents:' ( (lv_count_1_0= RULE_INT ) ) this_Plural_2= RULE_PLURAL )
// InternalUnassignedTextTestLanguage.g:183:3: otherlv_0= 'contents:' ( (lv_count_1_0= RULE_INT ) ) this_Plural_2= RULE_PLURAL
// InternalUnassignedTextTestLanguage.g:191:2: (otherlv_0= 'contents:' ( (lv_count_1_0= RULE_INT ) ) this_Plural_2= RULE_PLURAL )
// InternalUnassignedTextTestLanguage.g:192:3: otherlv_0= 'contents:' ( (lv_count_1_0= RULE_INT ) ) this_Plural_2= RULE_PLURAL
{
otherlv_0=(Token)match(input,15,FollowSets000.FOLLOW_3);
newLeafNode(otherlv_0, grammarAccess.getPluralRuleAccess().getContentsKeyword_0());
// InternalUnassignedTextTestLanguage.g:187:3: ( (lv_count_1_0= RULE_INT ) )
// InternalUnassignedTextTestLanguage.g:188:4: (lv_count_1_0= RULE_INT )
// InternalUnassignedTextTestLanguage.g:196:3: ( (lv_count_1_0= RULE_INT ) )
// InternalUnassignedTextTestLanguage.g:197:4: (lv_count_1_0= RULE_INT )
{
// InternalUnassignedTextTestLanguage.g:188:4: (lv_count_1_0= RULE_INT )
// InternalUnassignedTextTestLanguage.g:189:5: lv_count_1_0= RULE_INT
// InternalUnassignedTextTestLanguage.g:197:4: (lv_count_1_0= RULE_INT )
// InternalUnassignedTextTestLanguage.g:198:5: lv_count_1_0= RULE_INT
{
lv_count_1_0=(Token)match(input,RULE_INT,FollowSets000.FOLLOW_4);
@ -505,7 +535,7 @@ public class InternalUnassignedTextTestLanguageParser extends AbstractInternalAn
// $ANTLR start "entryRuleMultiRule"
// InternalUnassignedTextTestLanguage.g:213:1: entryRuleMultiRule returns [EObject current=null] : iv_ruleMultiRule= ruleMultiRule EOF ;
// InternalUnassignedTextTestLanguage.g:222:1: entryRuleMultiRule returns [EObject current=null] : iv_ruleMultiRule= ruleMultiRule EOF ;
public final EObject entryRuleMultiRule() throws RecognitionException {
EObject current = null;
@ -513,8 +543,8 @@ public class InternalUnassignedTextTestLanguageParser extends AbstractInternalAn
try {
// InternalUnassignedTextTestLanguage.g:213:50: (iv_ruleMultiRule= ruleMultiRule EOF )
// InternalUnassignedTextTestLanguage.g:214:2: iv_ruleMultiRule= ruleMultiRule EOF
// InternalUnassignedTextTestLanguage.g:222:50: (iv_ruleMultiRule= ruleMultiRule EOF )
// InternalUnassignedTextTestLanguage.g:223:2: iv_ruleMultiRule= ruleMultiRule EOF
{
newCompositeNode(grammarAccess.getMultiRuleRule());
pushFollow(FollowSets000.FOLLOW_1);
@ -541,7 +571,7 @@ public class InternalUnassignedTextTestLanguageParser extends AbstractInternalAn
// $ANTLR start "ruleMultiRule"
// InternalUnassignedTextTestLanguage.g:220:1: ruleMultiRule returns [EObject current=null] : (otherlv_0= 'multi' ( (lv_val_1_0= RULE_INT ) ) this_Multi_2= RULE_MULTI this_Multi_3= RULE_MULTI this_Multi_4= RULE_MULTI ) ;
// InternalUnassignedTextTestLanguage.g:229:1: ruleMultiRule returns [EObject current=null] : (otherlv_0= 'multi' ( (lv_val_1_0= RULE_INT ) ) this_Multi_2= RULE_MULTI this_Multi_3= RULE_MULTI this_Multi_4= RULE_MULTI ) ;
public final EObject ruleMultiRule() throws RecognitionException {
EObject current = null;
@ -555,21 +585,21 @@ public class InternalUnassignedTextTestLanguageParser extends AbstractInternalAn
enterRule();
try {
// InternalUnassignedTextTestLanguage.g:226:2: ( (otherlv_0= 'multi' ( (lv_val_1_0= RULE_INT ) ) this_Multi_2= RULE_MULTI this_Multi_3= RULE_MULTI this_Multi_4= RULE_MULTI ) )
// InternalUnassignedTextTestLanguage.g:227:2: (otherlv_0= 'multi' ( (lv_val_1_0= RULE_INT ) ) this_Multi_2= RULE_MULTI this_Multi_3= RULE_MULTI this_Multi_4= RULE_MULTI )
// InternalUnassignedTextTestLanguage.g:235:2: ( (otherlv_0= 'multi' ( (lv_val_1_0= RULE_INT ) ) this_Multi_2= RULE_MULTI this_Multi_3= RULE_MULTI this_Multi_4= RULE_MULTI ) )
// InternalUnassignedTextTestLanguage.g:236:2: (otherlv_0= 'multi' ( (lv_val_1_0= RULE_INT ) ) this_Multi_2= RULE_MULTI this_Multi_3= RULE_MULTI this_Multi_4= RULE_MULTI )
{
// InternalUnassignedTextTestLanguage.g:227:2: (otherlv_0= 'multi' ( (lv_val_1_0= RULE_INT ) ) this_Multi_2= RULE_MULTI this_Multi_3= RULE_MULTI this_Multi_4= RULE_MULTI )
// InternalUnassignedTextTestLanguage.g:228:3: otherlv_0= 'multi' ( (lv_val_1_0= RULE_INT ) ) this_Multi_2= RULE_MULTI this_Multi_3= RULE_MULTI this_Multi_4= RULE_MULTI
// InternalUnassignedTextTestLanguage.g:236:2: (otherlv_0= 'multi' ( (lv_val_1_0= RULE_INT ) ) this_Multi_2= RULE_MULTI this_Multi_3= RULE_MULTI this_Multi_4= RULE_MULTI )
// InternalUnassignedTextTestLanguage.g:237:3: otherlv_0= 'multi' ( (lv_val_1_0= RULE_INT ) ) this_Multi_2= RULE_MULTI this_Multi_3= RULE_MULTI this_Multi_4= RULE_MULTI
{
otherlv_0=(Token)match(input,16,FollowSets000.FOLLOW_3);
newLeafNode(otherlv_0, grammarAccess.getMultiRuleAccess().getMultiKeyword_0());
// InternalUnassignedTextTestLanguage.g:232:3: ( (lv_val_1_0= RULE_INT ) )
// InternalUnassignedTextTestLanguage.g:233:4: (lv_val_1_0= RULE_INT )
// InternalUnassignedTextTestLanguage.g:241:3: ( (lv_val_1_0= RULE_INT ) )
// InternalUnassignedTextTestLanguage.g:242:4: (lv_val_1_0= RULE_INT )
{
// InternalUnassignedTextTestLanguage.g:233:4: (lv_val_1_0= RULE_INT )
// InternalUnassignedTextTestLanguage.g:234:5: lv_val_1_0= RULE_INT
// InternalUnassignedTextTestLanguage.g:242:4: (lv_val_1_0= RULE_INT )
// InternalUnassignedTextTestLanguage.g:243:5: lv_val_1_0= RULE_INT
{
lv_val_1_0=(Token)match(input,RULE_INT,FollowSets000.FOLLOW_5);
@ -626,7 +656,7 @@ public class InternalUnassignedTextTestLanguageParser extends AbstractInternalAn
// $ANTLR start "entryRuleDatatypeRule"
// InternalUnassignedTextTestLanguage.g:266:1: entryRuleDatatypeRule returns [EObject current=null] : iv_ruleDatatypeRule= ruleDatatypeRule EOF ;
// InternalUnassignedTextTestLanguage.g:275:1: entryRuleDatatypeRule returns [EObject current=null] : iv_ruleDatatypeRule= ruleDatatypeRule EOF ;
public final EObject entryRuleDatatypeRule() throws RecognitionException {
EObject current = null;
@ -634,8 +664,8 @@ public class InternalUnassignedTextTestLanguageParser extends AbstractInternalAn
try {
// InternalUnassignedTextTestLanguage.g:266:53: (iv_ruleDatatypeRule= ruleDatatypeRule EOF )
// InternalUnassignedTextTestLanguage.g:267:2: iv_ruleDatatypeRule= ruleDatatypeRule EOF
// InternalUnassignedTextTestLanguage.g:275:53: (iv_ruleDatatypeRule= ruleDatatypeRule EOF )
// InternalUnassignedTextTestLanguage.g:276:2: iv_ruleDatatypeRule= ruleDatatypeRule EOF
{
newCompositeNode(grammarAccess.getDatatypeRuleRule());
pushFollow(FollowSets000.FOLLOW_1);
@ -662,7 +692,7 @@ public class InternalUnassignedTextTestLanguageParser extends AbstractInternalAn
// $ANTLR start "ruleDatatypeRule"
// InternalUnassignedTextTestLanguage.g:273:1: ruleDatatypeRule returns [EObject current=null] : (otherlv_0= 'datatype' ( (lv_val_1_0= RULE_INT ) ) ruleDatatype ) ;
// InternalUnassignedTextTestLanguage.g:282:1: ruleDatatypeRule returns [EObject current=null] : (otherlv_0= 'datatype' ( (lv_val_1_0= RULE_INT ) ) ruleDatatype ) ;
public final EObject ruleDatatypeRule() throws RecognitionException {
EObject current = null;
@ -673,21 +703,21 @@ public class InternalUnassignedTextTestLanguageParser extends AbstractInternalAn
enterRule();
try {
// InternalUnassignedTextTestLanguage.g:279:2: ( (otherlv_0= 'datatype' ( (lv_val_1_0= RULE_INT ) ) ruleDatatype ) )
// InternalUnassignedTextTestLanguage.g:280:2: (otherlv_0= 'datatype' ( (lv_val_1_0= RULE_INT ) ) ruleDatatype )
// InternalUnassignedTextTestLanguage.g:288:2: ( (otherlv_0= 'datatype' ( (lv_val_1_0= RULE_INT ) ) ruleDatatype ) )
// InternalUnassignedTextTestLanguage.g:289:2: (otherlv_0= 'datatype' ( (lv_val_1_0= RULE_INT ) ) ruleDatatype )
{
// InternalUnassignedTextTestLanguage.g:280:2: (otherlv_0= 'datatype' ( (lv_val_1_0= RULE_INT ) ) ruleDatatype )
// InternalUnassignedTextTestLanguage.g:281:3: otherlv_0= 'datatype' ( (lv_val_1_0= RULE_INT ) ) ruleDatatype
// InternalUnassignedTextTestLanguage.g:289:2: (otherlv_0= 'datatype' ( (lv_val_1_0= RULE_INT ) ) ruleDatatype )
// InternalUnassignedTextTestLanguage.g:290:3: otherlv_0= 'datatype' ( (lv_val_1_0= RULE_INT ) ) ruleDatatype
{
otherlv_0=(Token)match(input,17,FollowSets000.FOLLOW_3);
newLeafNode(otherlv_0, grammarAccess.getDatatypeRuleAccess().getDatatypeKeyword_0());
// InternalUnassignedTextTestLanguage.g:285:3: ( (lv_val_1_0= RULE_INT ) )
// InternalUnassignedTextTestLanguage.g:286:4: (lv_val_1_0= RULE_INT )
// InternalUnassignedTextTestLanguage.g:294:3: ( (lv_val_1_0= RULE_INT ) )
// InternalUnassignedTextTestLanguage.g:295:4: (lv_val_1_0= RULE_INT )
{
// InternalUnassignedTextTestLanguage.g:286:4: (lv_val_1_0= RULE_INT )
// InternalUnassignedTextTestLanguage.g:287:5: lv_val_1_0= RULE_INT
// InternalUnassignedTextTestLanguage.g:295:4: (lv_val_1_0= RULE_INT )
// InternalUnassignedTextTestLanguage.g:296:5: lv_val_1_0= RULE_INT
{
lv_val_1_0=(Token)match(input,RULE_INT,FollowSets000.FOLLOW_6);
@ -743,7 +773,7 @@ public class InternalUnassignedTextTestLanguageParser extends AbstractInternalAn
// $ANTLR start "entryRuleDatatype"
// InternalUnassignedTextTestLanguage.g:314:1: entryRuleDatatype returns [String current=null] : iv_ruleDatatype= ruleDatatype EOF ;
// InternalUnassignedTextTestLanguage.g:323:1: entryRuleDatatype returns [String current=null] : iv_ruleDatatype= ruleDatatype EOF ;
public final String entryRuleDatatype() throws RecognitionException {
String current = null;
@ -751,8 +781,8 @@ public class InternalUnassignedTextTestLanguageParser extends AbstractInternalAn
try {
// InternalUnassignedTextTestLanguage.g:314:48: (iv_ruleDatatype= ruleDatatype EOF )
// InternalUnassignedTextTestLanguage.g:315:2: iv_ruleDatatype= ruleDatatype EOF
// InternalUnassignedTextTestLanguage.g:323:48: (iv_ruleDatatype= ruleDatatype EOF )
// InternalUnassignedTextTestLanguage.g:324:2: iv_ruleDatatype= ruleDatatype EOF
{
newCompositeNode(grammarAccess.getDatatypeRule());
pushFollow(FollowSets000.FOLLOW_1);
@ -779,7 +809,7 @@ public class InternalUnassignedTextTestLanguageParser extends AbstractInternalAn
// $ANTLR start "ruleDatatype"
// InternalUnassignedTextTestLanguage.g:321:1: ruleDatatype returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= 'str' | this_INT_1= RULE_INT | this_Datatype2_2= ruleDatatype2 ) ;
// InternalUnassignedTextTestLanguage.g:330:1: ruleDatatype returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= 'str' | this_INT_1= RULE_INT | this_Datatype2_2= ruleDatatype2 ) ;
public final AntlrDatatypeRuleToken ruleDatatype() throws RecognitionException {
AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
@ -792,10 +822,10 @@ public class InternalUnassignedTextTestLanguageParser extends AbstractInternalAn
enterRule();
try {
// InternalUnassignedTextTestLanguage.g:327:2: ( (kw= 'str' | this_INT_1= RULE_INT | this_Datatype2_2= ruleDatatype2 ) )
// InternalUnassignedTextTestLanguage.g:328:2: (kw= 'str' | this_INT_1= RULE_INT | this_Datatype2_2= ruleDatatype2 )
// InternalUnassignedTextTestLanguage.g:336:2: ( (kw= 'str' | this_INT_1= RULE_INT | this_Datatype2_2= ruleDatatype2 ) )
// InternalUnassignedTextTestLanguage.g:337:2: (kw= 'str' | this_INT_1= RULE_INT | this_Datatype2_2= ruleDatatype2 )
{
// InternalUnassignedTextTestLanguage.g:328:2: (kw= 'str' | this_INT_1= RULE_INT | this_Datatype2_2= ruleDatatype2 )
// InternalUnassignedTextTestLanguage.g:337:2: (kw= 'str' | this_INT_1= RULE_INT | this_Datatype2_2= ruleDatatype2 )
int alt2=3;
switch ( input.LA(1) ) {
case 18:
@ -822,7 +852,7 @@ public class InternalUnassignedTextTestLanguageParser extends AbstractInternalAn
switch (alt2) {
case 1 :
// InternalUnassignedTextTestLanguage.g:329:3: kw= 'str'
// InternalUnassignedTextTestLanguage.g:338:3: kw= 'str'
{
kw=(Token)match(input,18,FollowSets000.FOLLOW_2);
@ -833,7 +863,7 @@ public class InternalUnassignedTextTestLanguageParser extends AbstractInternalAn
}
break;
case 2 :
// InternalUnassignedTextTestLanguage.g:335:3: this_INT_1= RULE_INT
// InternalUnassignedTextTestLanguage.g:344:3: this_INT_1= RULE_INT
{
this_INT_1=(Token)match(input,RULE_INT,FollowSets000.FOLLOW_2);
@ -846,7 +876,7 @@ public class InternalUnassignedTextTestLanguageParser extends AbstractInternalAn
}
break;
case 3 :
// InternalUnassignedTextTestLanguage.g:343:3: this_Datatype2_2= ruleDatatype2
// InternalUnassignedTextTestLanguage.g:352:3: this_Datatype2_2= ruleDatatype2
{
newCompositeNode(grammarAccess.getDatatypeAccess().getDatatype2ParserRuleCall_2());
@ -888,7 +918,7 @@ public class InternalUnassignedTextTestLanguageParser extends AbstractInternalAn
// $ANTLR start "entryRuleDatatype2"
// InternalUnassignedTextTestLanguage.g:357:1: entryRuleDatatype2 returns [String current=null] : iv_ruleDatatype2= ruleDatatype2 EOF ;
// InternalUnassignedTextTestLanguage.g:366:1: entryRuleDatatype2 returns [String current=null] : iv_ruleDatatype2= ruleDatatype2 EOF ;
public final String entryRuleDatatype2() throws RecognitionException {
String current = null;
@ -896,8 +926,8 @@ public class InternalUnassignedTextTestLanguageParser extends AbstractInternalAn
try {
// InternalUnassignedTextTestLanguage.g:357:49: (iv_ruleDatatype2= ruleDatatype2 EOF )
// InternalUnassignedTextTestLanguage.g:358:2: iv_ruleDatatype2= ruleDatatype2 EOF
// InternalUnassignedTextTestLanguage.g:366:49: (iv_ruleDatatype2= ruleDatatype2 EOF )
// InternalUnassignedTextTestLanguage.g:367:2: iv_ruleDatatype2= ruleDatatype2 EOF
{
newCompositeNode(grammarAccess.getDatatype2Rule());
pushFollow(FollowSets000.FOLLOW_1);
@ -924,7 +954,7 @@ public class InternalUnassignedTextTestLanguageParser extends AbstractInternalAn
// $ANTLR start "ruleDatatype2"
// InternalUnassignedTextTestLanguage.g:364:1: ruleDatatype2 returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : this_STRING_0= RULE_STRING ;
// InternalUnassignedTextTestLanguage.g:373:1: ruleDatatype2 returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : this_STRING_0= RULE_STRING ;
public final AntlrDatatypeRuleToken ruleDatatype2() throws RecognitionException {
AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
@ -934,8 +964,8 @@ public class InternalUnassignedTextTestLanguageParser extends AbstractInternalAn
enterRule();
try {
// InternalUnassignedTextTestLanguage.g:370:2: (this_STRING_0= RULE_STRING )
// InternalUnassignedTextTestLanguage.g:371:2: this_STRING_0= RULE_STRING
// InternalUnassignedTextTestLanguage.g:379:2: (this_STRING_0= RULE_STRING )
// InternalUnassignedTextTestLanguage.g:380:2: this_STRING_0= RULE_STRING
{
this_STRING_0=(Token)match(input,RULE_STRING,FollowSets000.FOLLOW_2);
@ -964,7 +994,7 @@ public class InternalUnassignedTextTestLanguageParser extends AbstractInternalAn
// $ANTLR start "entryRuleCommonTerminalsRule"
// InternalUnassignedTextTestLanguage.g:381:1: entryRuleCommonTerminalsRule returns [EObject current=null] : iv_ruleCommonTerminalsRule= ruleCommonTerminalsRule EOF ;
// InternalUnassignedTextTestLanguage.g:390:1: entryRuleCommonTerminalsRule returns [EObject current=null] : iv_ruleCommonTerminalsRule= ruleCommonTerminalsRule EOF ;
public final EObject entryRuleCommonTerminalsRule() throws RecognitionException {
EObject current = null;
@ -972,8 +1002,8 @@ public class InternalUnassignedTextTestLanguageParser extends AbstractInternalAn
try {
// InternalUnassignedTextTestLanguage.g:381:60: (iv_ruleCommonTerminalsRule= ruleCommonTerminalsRule EOF )
// InternalUnassignedTextTestLanguage.g:382:2: iv_ruleCommonTerminalsRule= ruleCommonTerminalsRule EOF
// InternalUnassignedTextTestLanguage.g:390:60: (iv_ruleCommonTerminalsRule= ruleCommonTerminalsRule EOF )
// InternalUnassignedTextTestLanguage.g:391:2: iv_ruleCommonTerminalsRule= ruleCommonTerminalsRule EOF
{
newCompositeNode(grammarAccess.getCommonTerminalsRuleRule());
pushFollow(FollowSets000.FOLLOW_1);
@ -1000,7 +1030,7 @@ public class InternalUnassignedTextTestLanguageParser extends AbstractInternalAn
// $ANTLR start "ruleCommonTerminalsRule"
// InternalUnassignedTextTestLanguage.g:388:1: ruleCommonTerminalsRule returns [EObject current=null] : (otherlv_0= 'terminals' this_ID_1= RULE_ID this_INT_2= RULE_INT this_STRING_3= RULE_STRING ( (lv_val_4_0= RULE_ID ) ) ) ;
// InternalUnassignedTextTestLanguage.g:397:1: ruleCommonTerminalsRule returns [EObject current=null] : (otherlv_0= 'terminals' this_ID_1= RULE_ID this_INT_2= RULE_INT this_STRING_3= RULE_STRING ( (lv_val_4_0= RULE_ID ) ) ) ;
public final EObject ruleCommonTerminalsRule() throws RecognitionException {
EObject current = null;
@ -1014,11 +1044,11 @@ public class InternalUnassignedTextTestLanguageParser extends AbstractInternalAn
enterRule();
try {
// InternalUnassignedTextTestLanguage.g:394:2: ( (otherlv_0= 'terminals' this_ID_1= RULE_ID this_INT_2= RULE_INT this_STRING_3= RULE_STRING ( (lv_val_4_0= RULE_ID ) ) ) )
// InternalUnassignedTextTestLanguage.g:395:2: (otherlv_0= 'terminals' this_ID_1= RULE_ID this_INT_2= RULE_INT this_STRING_3= RULE_STRING ( (lv_val_4_0= RULE_ID ) ) )
// InternalUnassignedTextTestLanguage.g:403:2: ( (otherlv_0= 'terminals' this_ID_1= RULE_ID this_INT_2= RULE_INT this_STRING_3= RULE_STRING ( (lv_val_4_0= RULE_ID ) ) ) )
// InternalUnassignedTextTestLanguage.g:404:2: (otherlv_0= 'terminals' this_ID_1= RULE_ID this_INT_2= RULE_INT this_STRING_3= RULE_STRING ( (lv_val_4_0= RULE_ID ) ) )
{
// InternalUnassignedTextTestLanguage.g:395:2: (otherlv_0= 'terminals' this_ID_1= RULE_ID this_INT_2= RULE_INT this_STRING_3= RULE_STRING ( (lv_val_4_0= RULE_ID ) ) )
// InternalUnassignedTextTestLanguage.g:396:3: otherlv_0= 'terminals' this_ID_1= RULE_ID this_INT_2= RULE_INT this_STRING_3= RULE_STRING ( (lv_val_4_0= RULE_ID ) )
// InternalUnassignedTextTestLanguage.g:404:2: (otherlv_0= 'terminals' this_ID_1= RULE_ID this_INT_2= RULE_INT this_STRING_3= RULE_STRING ( (lv_val_4_0= RULE_ID ) ) )
// InternalUnassignedTextTestLanguage.g:405:3: otherlv_0= 'terminals' this_ID_1= RULE_ID this_INT_2= RULE_INT this_STRING_3= RULE_STRING ( (lv_val_4_0= RULE_ID ) )
{
otherlv_0=(Token)match(input,19,FollowSets000.FOLLOW_7);
@ -1036,11 +1066,11 @@ public class InternalUnassignedTextTestLanguageParser extends AbstractInternalAn
newLeafNode(this_STRING_3, grammarAccess.getCommonTerminalsRuleAccess().getSTRINGTerminalRuleCall_3());
// InternalUnassignedTextTestLanguage.g:412:3: ( (lv_val_4_0= RULE_ID ) )
// InternalUnassignedTextTestLanguage.g:413:4: (lv_val_4_0= RULE_ID )
// InternalUnassignedTextTestLanguage.g:421:3: ( (lv_val_4_0= RULE_ID ) )
// InternalUnassignedTextTestLanguage.g:422:4: (lv_val_4_0= RULE_ID )
{
// InternalUnassignedTextTestLanguage.g:413:4: (lv_val_4_0= RULE_ID )
// InternalUnassignedTextTestLanguage.g:414:5: lv_val_4_0= RULE_ID
// InternalUnassignedTextTestLanguage.g:422:4: (lv_val_4_0= RULE_ID )
// InternalUnassignedTextTestLanguage.g:423:5: lv_val_4_0= RULE_ID
{
lv_val_4_0=(Token)match(input,RULE_ID,FollowSets000.FOLLOW_2);
@ -1083,6 +1113,202 @@ public class InternalUnassignedTextTestLanguageParser extends AbstractInternalAn
}
// $ANTLR end "ruleCommonTerminalsRule"
// $ANTLR start "entryRuleGroupRule"
// InternalUnassignedTextTestLanguage.g:443:1: entryRuleGroupRule returns [EObject current=null] : iv_ruleGroupRule= ruleGroupRule EOF ;
public final EObject entryRuleGroupRule() throws RecognitionException {
EObject current = null;
EObject iv_ruleGroupRule = null;
try {
// InternalUnassignedTextTestLanguage.g:443:50: (iv_ruleGroupRule= ruleGroupRule EOF )
// InternalUnassignedTextTestLanguage.g:444:2: iv_ruleGroupRule= ruleGroupRule EOF
{
newCompositeNode(grammarAccess.getGroupRuleRule());
pushFollow(FollowSets000.FOLLOW_1);
iv_ruleGroupRule=ruleGroupRule();
state._fsp--;
current =iv_ruleGroupRule;
match(input,EOF,FollowSets000.FOLLOW_2);
}
}
catch (RecognitionException re) {
recover(input,re);
appendSkippedTokens();
}
finally {
}
return current;
}
// $ANTLR end "entryRuleGroupRule"
// $ANTLR start "ruleGroupRule"
// InternalUnassignedTextTestLanguage.g:450:1: ruleGroupRule returns [EObject current=null] : ( () otherlv_1= 'group' ruleGroupDataTypeRule ) ;
public final EObject ruleGroupRule() throws RecognitionException {
EObject current = null;
Token otherlv_1=null;
enterRule();
try {
// InternalUnassignedTextTestLanguage.g:456:2: ( ( () otherlv_1= 'group' ruleGroupDataTypeRule ) )
// InternalUnassignedTextTestLanguage.g:457:2: ( () otherlv_1= 'group' ruleGroupDataTypeRule )
{
// InternalUnassignedTextTestLanguage.g:457:2: ( () otherlv_1= 'group' ruleGroupDataTypeRule )
// InternalUnassignedTextTestLanguage.g:458:3: () otherlv_1= 'group' ruleGroupDataTypeRule
{
// InternalUnassignedTextTestLanguage.g:458:3: ()
// InternalUnassignedTextTestLanguage.g:459:4:
{
current = forceCreateModelElement(
grammarAccess.getGroupRuleAccess().getGroupRuleAction_0(),
current);
}
otherlv_1=(Token)match(input,20,FollowSets000.FOLLOW_9);
newLeafNode(otherlv_1, grammarAccess.getGroupRuleAccess().getGroupKeyword_1());
newCompositeNode(grammarAccess.getGroupRuleAccess().getGroupDataTypeRuleParserRuleCall_2());
pushFollow(FollowSets000.FOLLOW_2);
ruleGroupDataTypeRule();
state._fsp--;
afterParserOrEnumRuleCall();
}
}
leaveRule();
}
catch (RecognitionException re) {
recover(input,re);
appendSkippedTokens();
}
finally {
}
return current;
}
// $ANTLR end "ruleGroupRule"
// $ANTLR start "entryRuleGroupDataTypeRule"
// InternalUnassignedTextTestLanguage.g:480:1: entryRuleGroupDataTypeRule returns [String current=null] : iv_ruleGroupDataTypeRule= ruleGroupDataTypeRule EOF ;
public final String entryRuleGroupDataTypeRule() throws RecognitionException {
String current = null;
AntlrDatatypeRuleToken iv_ruleGroupDataTypeRule = null;
try {
// InternalUnassignedTextTestLanguage.g:480:57: (iv_ruleGroupDataTypeRule= ruleGroupDataTypeRule EOF )
// InternalUnassignedTextTestLanguage.g:481:2: iv_ruleGroupDataTypeRule= ruleGroupDataTypeRule EOF
{
newCompositeNode(grammarAccess.getGroupDataTypeRuleRule());
pushFollow(FollowSets000.FOLLOW_1);
iv_ruleGroupDataTypeRule=ruleGroupDataTypeRule();
state._fsp--;
current =iv_ruleGroupDataTypeRule.getText();
match(input,EOF,FollowSets000.FOLLOW_2);
}
}
catch (RecognitionException re) {
recover(input,re);
appendSkippedTokens();
}
finally {
}
return current;
}
// $ANTLR end "entryRuleGroupDataTypeRule"
// $ANTLR start "ruleGroupDataTypeRule"
// InternalUnassignedTextTestLanguage.g:487:1: ruleGroupDataTypeRule returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= 'this' kw= 'is' kw= 'a' kw= 'test' ) ;
public final AntlrDatatypeRuleToken ruleGroupDataTypeRule() throws RecognitionException {
AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
Token kw=null;
enterRule();
try {
// InternalUnassignedTextTestLanguage.g:493:2: ( (kw= 'this' kw= 'is' kw= 'a' kw= 'test' ) )
// InternalUnassignedTextTestLanguage.g:494:2: (kw= 'this' kw= 'is' kw= 'a' kw= 'test' )
{
// InternalUnassignedTextTestLanguage.g:494:2: (kw= 'this' kw= 'is' kw= 'a' kw= 'test' )
// InternalUnassignedTextTestLanguage.g:495:3: kw= 'this' kw= 'is' kw= 'a' kw= 'test'
{
kw=(Token)match(input,21,FollowSets000.FOLLOW_10);
current.merge(kw);
newLeafNode(kw, grammarAccess.getGroupDataTypeRuleAccess().getThisKeyword_0());
kw=(Token)match(input,22,FollowSets000.FOLLOW_11);
current.merge(kw);
newLeafNode(kw, grammarAccess.getGroupDataTypeRuleAccess().getIsKeyword_1());
kw=(Token)match(input,23,FollowSets000.FOLLOW_12);
current.merge(kw);
newLeafNode(kw, grammarAccess.getGroupDataTypeRuleAccess().getAKeyword_2());
kw=(Token)match(input,24,FollowSets000.FOLLOW_2);
current.merge(kw);
newLeafNode(kw, grammarAccess.getGroupDataTypeRuleAccess().getTestKeyword_3());
}
}
leaveRule();
}
catch (RecognitionException re) {
recover(input,re);
appendSkippedTokens();
}
finally {
}
return current;
}
// $ANTLR end "ruleGroupDataTypeRule"
// Delegated rules
@ -1098,6 +1324,10 @@ public class InternalUnassignedTextTestLanguageParser extends AbstractInternalAn
public static final BitSet FOLLOW_6 = new BitSet(new long[]{0x0000000000040120L});
public static final BitSet FOLLOW_7 = new BitSet(new long[]{0x0000000000000200L});
public static final BitSet FOLLOW_8 = new BitSet(new long[]{0x0000000000000100L});
public static final BitSet FOLLOW_9 = new BitSet(new long[]{0x0000000000200000L});
public static final BitSet FOLLOW_10 = new BitSet(new long[]{0x0000000000400000L});
public static final BitSet FOLLOW_11 = new BitSet(new long[]{0x0000000000800000L});
public static final BitSet FOLLOW_12 = new BitSet(new long[]{0x0000000001000000L});
}

View file

@ -14,6 +14,7 @@ import org.eclipse.xtext.parsetree.unassignedtext.services.UnassignedTextTestLan
import org.eclipse.xtext.parsetree.unassignedtext.unassignedtext.CaseInsensitiveKeywordRule;
import org.eclipse.xtext.parsetree.unassignedtext.unassignedtext.CommonTerminalsRule;
import org.eclipse.xtext.parsetree.unassignedtext.unassignedtext.DatatypeRule;
import org.eclipse.xtext.parsetree.unassignedtext.unassignedtext.GroupRule;
import org.eclipse.xtext.parsetree.unassignedtext.unassignedtext.MultiRule;
import org.eclipse.xtext.parsetree.unassignedtext.unassignedtext.PluralRule;
import org.eclipse.xtext.parsetree.unassignedtext.unassignedtext.UnassignedtextPackage;
@ -45,6 +46,9 @@ public abstract class AbstractUnassignedTextTestLanguageSemanticSequencer extend
case UnassignedtextPackage.DATATYPE_RULE:
sequence_DatatypeRule(context, (DatatypeRule) semanticObject);
return;
case UnassignedtextPackage.GROUP_RULE:
sequence_GroupRule(context, (GroupRule) semanticObject);
return;
case UnassignedtextPackage.MULTI_RULE:
sequence_MultiRule(context, (MultiRule) semanticObject);
return;
@ -113,6 +117,19 @@ public abstract class AbstractUnassignedTextTestLanguageSemanticSequencer extend
}
/**
* Contexts:
* Model returns GroupRule
* GroupRule returns GroupRule
*
* Constraint:
* {GroupRule}
*/
protected void sequence_GroupRule(ISerializationContext context, GroupRule semanticObject) {
genericSequencer.createSequence(context, semanticObject);
}
/**
* Contexts:
* Model returns MultiRule

View file

@ -30,6 +30,8 @@ public abstract class AbstractUnassignedTextTestLanguageSyntacticSequencer exten
return getCaseInsensitiveKeywordToken(semanticObject, ruleCall, node);
else if (ruleCall.getRule() == grammarAccess.getDatatypeRule())
return getDatatypeToken(semanticObject, ruleCall, node);
else if (ruleCall.getRule() == grammarAccess.getGroupDataTypeRuleRule())
return getGroupDataTypeRuleToken(semanticObject, ruleCall, node);
else if (ruleCall.getRule() == grammarAccess.getIDRule())
return getIDToken(semanticObject, ruleCall, node);
else if (ruleCall.getRule() == grammarAccess.getINTRule())
@ -63,6 +65,17 @@ public abstract class AbstractUnassignedTextTestLanguageSyntacticSequencer exten
return "str";
}
/**
* GroupDataTypeRule:
* ('this' 'is' 'a' 'test')
* ;
*/
protected String getGroupDataTypeRuleToken(EObject semanticObject, RuleCall ruleCall, INode node) {
if (node != null)
return getTokenText(node);
return "this is a test";
}
/**
* terminal ID: '^'?('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'_'|'0'..'9')*;
*/

View file

@ -6,6 +6,7 @@ package org.eclipse.xtext.parsetree.unassignedtext.services;
import com.google.inject.Inject;
import com.google.inject.Singleton;
import java.util.List;
import org.eclipse.xtext.Action;
import org.eclipse.xtext.Alternatives;
import org.eclipse.xtext.Assignment;
import org.eclipse.xtext.Grammar;
@ -30,12 +31,13 @@ public class UnassignedTextTestLanguageGrammarAccess extends AbstractGrammarElem
private final RuleCall cMultiRuleParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
private final RuleCall cDatatypeRuleParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3);
private final RuleCall cCommonTerminalsRuleParserRuleCall_4 = (RuleCall)cAlternatives.eContents().get(4);
private final RuleCall cGroupRuleParserRuleCall_5 = (RuleCall)cAlternatives.eContents().get(5);
//Model:
// CaseInsensitiveKeywordRule | PluralRule | MultiRule | DatatypeRule | CommonTerminalsRule;
// CaseInsensitiveKeywordRule | PluralRule | MultiRule | DatatypeRule | CommonTerminalsRule | GroupRule;
@Override public ParserRule getRule() { return rule; }
//CaseInsensitiveKeywordRule | PluralRule | MultiRule | DatatypeRule | CommonTerminalsRule
//CaseInsensitiveKeywordRule | PluralRule | MultiRule | DatatypeRule | CommonTerminalsRule | GroupRule
public Alternatives getAlternatives() { return cAlternatives; }
//CaseInsensitiveKeywordRule
@ -52,6 +54,9 @@ public class UnassignedTextTestLanguageGrammarAccess extends AbstractGrammarElem
//CommonTerminalsRule
public RuleCall getCommonTerminalsRuleParserRuleCall_4() { return cCommonTerminalsRuleParserRuleCall_4; }
//GroupRule
public RuleCall getGroupRuleParserRuleCall_5() { return cGroupRuleParserRuleCall_5; }
}
public class CaseInsensitiveKeywordRuleElements extends AbstractParserRuleElementFinder {
private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.xtext.parsetree.unassignedtext.UnassignedTextTestLanguage.CaseInsensitiveKeywordRule");
@ -234,6 +239,56 @@ public class UnassignedTextTestLanguageGrammarAccess extends AbstractGrammarElem
//ID
public RuleCall getValIDTerminalRuleCall_4_0() { return cValIDTerminalRuleCall_4_0; }
}
public class GroupRuleElements extends AbstractParserRuleElementFinder {
private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.xtext.parsetree.unassignedtext.UnassignedTextTestLanguage.GroupRule");
private final Group cGroup = (Group)rule.eContents().get(1);
private final Action cGroupRuleAction_0 = (Action)cGroup.eContents().get(0);
private final Keyword cGroupKeyword_1 = (Keyword)cGroup.eContents().get(1);
private final RuleCall cGroupDataTypeRuleParserRuleCall_2 = (RuleCall)cGroup.eContents().get(2);
//GroupRule:
// {GroupRule} 'group' GroupDataTypeRule;
@Override public ParserRule getRule() { return rule; }
//{GroupRule} 'group' GroupDataTypeRule
public Group getGroup() { return cGroup; }
//{GroupRule}
public Action getGroupRuleAction_0() { return cGroupRuleAction_0; }
//'group'
public Keyword getGroupKeyword_1() { return cGroupKeyword_1; }
//GroupDataTypeRule
public RuleCall getGroupDataTypeRuleParserRuleCall_2() { return cGroupDataTypeRuleParserRuleCall_2; }
}
public class GroupDataTypeRuleElements extends AbstractParserRuleElementFinder {
private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.eclipse.xtext.parsetree.unassignedtext.UnassignedTextTestLanguage.GroupDataTypeRule");
private final Group cGroup = (Group)rule.eContents().get(1);
private final Keyword cThisKeyword_0 = (Keyword)cGroup.eContents().get(0);
private final Keyword cIsKeyword_1 = (Keyword)cGroup.eContents().get(1);
private final Keyword cAKeyword_2 = (Keyword)cGroup.eContents().get(2);
private final Keyword cTestKeyword_3 = (Keyword)cGroup.eContents().get(3);
//GroupDataTypeRule:
// 'this' 'is' 'a' 'test';
@Override public ParserRule getRule() { return rule; }
//'this' 'is' 'a' 'test'
public Group getGroup() { return cGroup; }
//'this'
public Keyword getThisKeyword_0() { return cThisKeyword_0; }
//'is'
public Keyword getIsKeyword_1() { return cIsKeyword_1; }
//'a'
public Keyword getAKeyword_2() { return cAKeyword_2; }
//'test'
public Keyword getTestKeyword_3() { return cTestKeyword_3; }
}
private final ModelElements pModel;
@ -248,6 +303,8 @@ public class UnassignedTextTestLanguageGrammarAccess extends AbstractGrammarElem
private final DatatypeElements pDatatype;
private final Datatype2Elements pDatatype2;
private final CommonTerminalsRuleElements pCommonTerminalsRule;
private final GroupRuleElements pGroupRule;
private final GroupDataTypeRuleElements pGroupDataTypeRule;
private final Grammar grammar;
@ -270,6 +327,8 @@ public class UnassignedTextTestLanguageGrammarAccess extends AbstractGrammarElem
this.pDatatype = new DatatypeElements();
this.pDatatype2 = new Datatype2Elements();
this.pCommonTerminalsRule = new CommonTerminalsRuleElements();
this.pGroupRule = new GroupRuleElements();
this.pGroupDataTypeRule = new GroupDataTypeRuleElements();
}
protected Grammar internalFindGrammar(GrammarProvider grammarProvider) {
@ -300,7 +359,7 @@ public class UnassignedTextTestLanguageGrammarAccess extends AbstractGrammarElem
//Model:
// CaseInsensitiveKeywordRule | PluralRule | MultiRule | DatatypeRule | CommonTerminalsRule;
// CaseInsensitiveKeywordRule | PluralRule | MultiRule | DatatypeRule | CommonTerminalsRule | GroupRule;
public ModelElements getModelAccess() {
return pModel;
}
@ -403,6 +462,26 @@ public class UnassignedTextTestLanguageGrammarAccess extends AbstractGrammarElem
return getCommonTerminalsRuleAccess().getRule();
}
//GroupRule:
// {GroupRule} 'group' GroupDataTypeRule;
public GroupRuleElements getGroupRuleAccess() {
return pGroupRule;
}
public ParserRule getGroupRuleRule() {
return getGroupRuleAccess().getRule();
}
//GroupDataTypeRule:
// 'this' 'is' 'a' 'test';
public GroupDataTypeRuleElements getGroupDataTypeRuleAccess() {
return pGroupDataTypeRule;
}
public ParserRule getGroupDataTypeRuleRule() {
return getGroupDataTypeRuleAccess().getRule();
}
//terminal ID:
// '^'? ('a'..'z' | 'A'..'Z' | '_') ('a'..'z' | 'A'..'Z' | '_' | '0'..'9')*;
public TerminalRule getIDRule() {

View file

@ -0,0 +1,19 @@
/**
* generated by Xtext
*/
package org.eclipse.xtext.parsetree.unassignedtext.unassignedtext;
/**
* <!-- begin-user-doc -->
* A representation of the model object '<em><b>Group Rule</b></em>'.
* <!-- end-user-doc -->
*
*
* @see org.eclipse.xtext.parsetree.unassignedtext.unassignedtext.UnassignedtextPackage#getGroupRule()
* @model
* @generated
*/
public interface GroupRule extends Model
{
} // GroupRule

View file

@ -77,6 +77,15 @@ public interface UnassignedtextFactory extends EFactory
*/
CommonTerminalsRule createCommonTerminalsRule();
/**
* Returns a new object of class '<em>Group Rule</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @return a new object of class '<em>Group Rule</em>'.
* @generated
*/
GroupRule createGroupRule();
/**
* Returns the package supported by this factory.
* <!-- begin-user-doc -->

View file

@ -215,6 +215,25 @@ public interface UnassignedtextPackage extends EPackage
*/
int COMMON_TERMINALS_RULE_FEATURE_COUNT = MODEL_FEATURE_COUNT + 1;
/**
* The meta object id for the '{@link org.eclipse.xtext.parsetree.unassignedtext.unassignedtext.impl.GroupRuleImpl <em>Group Rule</em>}' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see org.eclipse.xtext.parsetree.unassignedtext.unassignedtext.impl.GroupRuleImpl
* @see org.eclipse.xtext.parsetree.unassignedtext.unassignedtext.impl.UnassignedtextPackageImpl#getGroupRule()
* @generated
*/
int GROUP_RULE = 6;
/**
* The number of structural features of the '<em>Group Rule</em>' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
int GROUP_RULE_FEATURE_COUNT = MODEL_FEATURE_COUNT + 0;
/**
* Returns the meta object for class '{@link org.eclipse.xtext.parsetree.unassignedtext.unassignedtext.Model <em>Model</em>}'.
@ -331,6 +350,16 @@ public interface UnassignedtextPackage extends EPackage
*/
EAttribute getCommonTerminalsRule_Val();
/**
* Returns the meta object for class '{@link org.eclipse.xtext.parsetree.unassignedtext.unassignedtext.GroupRule <em>Group Rule</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @return the meta object for class '<em>Group Rule</em>'.
* @see org.eclipse.xtext.parsetree.unassignedtext.unassignedtext.GroupRule
* @generated
*/
EClass getGroupRule();
/**
* Returns the factory that creates the instances of the model.
* <!-- begin-user-doc -->
@ -454,6 +483,16 @@ public interface UnassignedtextPackage extends EPackage
*/
EAttribute COMMON_TERMINALS_RULE__VAL = eINSTANCE.getCommonTerminalsRule_Val();
/**
* The meta object literal for the '{@link org.eclipse.xtext.parsetree.unassignedtext.unassignedtext.impl.GroupRuleImpl <em>Group Rule</em>}' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see org.eclipse.xtext.parsetree.unassignedtext.unassignedtext.impl.GroupRuleImpl
* @see org.eclipse.xtext.parsetree.unassignedtext.unassignedtext.impl.UnassignedtextPackageImpl#getGroupRule()
* @generated
*/
EClass GROUP_RULE = eINSTANCE.getGroupRule();
}
} //UnassignedtextPackage

View file

@ -0,0 +1,41 @@
/**
* generated by Xtext
*/
package org.eclipse.xtext.parsetree.unassignedtext.unassignedtext.impl;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.xtext.parsetree.unassignedtext.unassignedtext.GroupRule;
import org.eclipse.xtext.parsetree.unassignedtext.unassignedtext.UnassignedtextPackage;
/**
* <!-- begin-user-doc -->
* An implementation of the model object '<em><b>Group Rule</b></em>'.
* <!-- end-user-doc -->
*
* @generated
*/
public class GroupRuleImpl extends ModelImpl implements GroupRule
{
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected GroupRuleImpl()
{
super();
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
protected EClass eStaticClass()
{
return UnassignedtextPackage.Literals.GROUP_RULE;
}
} //GroupRuleImpl

View file

@ -71,6 +71,7 @@ public class UnassignedtextFactoryImpl extends EFactoryImpl implements Unassigne
case UnassignedtextPackage.MULTI_RULE: return createMultiRule();
case UnassignedtextPackage.DATATYPE_RULE: return createDatatypeRule();
case UnassignedtextPackage.COMMON_TERMINALS_RULE: return createCommonTerminalsRule();
case UnassignedtextPackage.GROUP_RULE: return createGroupRule();
default:
throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
}
@ -142,6 +143,17 @@ public class UnassignedtextFactoryImpl extends EFactoryImpl implements Unassigne
return commonTerminalsRule;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public GroupRule createGroupRule()
{
GroupRuleImpl groupRule = new GroupRuleImpl();
return groupRule;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->

View file

@ -13,6 +13,7 @@ import org.eclipse.emf.ecore.impl.EPackageImpl;
import org.eclipse.xtext.parsetree.unassignedtext.unassignedtext.CaseInsensitiveKeywordRule;
import org.eclipse.xtext.parsetree.unassignedtext.unassignedtext.CommonTerminalsRule;
import org.eclipse.xtext.parsetree.unassignedtext.unassignedtext.DatatypeRule;
import org.eclipse.xtext.parsetree.unassignedtext.unassignedtext.GroupRule;
import org.eclipse.xtext.parsetree.unassignedtext.unassignedtext.Model;
import org.eclipse.xtext.parsetree.unassignedtext.unassignedtext.MultiRule;
import org.eclipse.xtext.parsetree.unassignedtext.unassignedtext.PluralRule;
@ -69,6 +70,13 @@ public class UnassignedtextPackageImpl extends EPackageImpl implements Unassigne
*/
private EClass commonTerminalsRuleEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass groupRuleEClass = null;
/**
* Creates an instance of the model <b>Package</b>, registered with
* {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
@ -245,6 +253,16 @@ public class UnassignedtextPackageImpl extends EPackageImpl implements Unassigne
return (EAttribute)commonTerminalsRuleEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getGroupRule()
{
return groupRuleEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@ -291,6 +309,8 @@ public class UnassignedtextPackageImpl extends EPackageImpl implements Unassigne
commonTerminalsRuleEClass = createEClass(COMMON_TERMINALS_RULE);
createEAttribute(commonTerminalsRuleEClass, COMMON_TERMINALS_RULE__VAL);
groupRuleEClass = createEClass(GROUP_RULE);
}
/**
@ -330,6 +350,7 @@ public class UnassignedtextPackageImpl extends EPackageImpl implements Unassigne
multiRuleEClass.getESuperTypes().add(this.getModel());
datatypeRuleEClass.getESuperTypes().add(this.getModel());
commonTerminalsRuleEClass.getESuperTypes().add(this.getModel());
groupRuleEClass.getESuperTypes().add(this.getModel());
// Initialize classes and features; add operations and parameters
initEClass(modelEClass, Model.class, "Model", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
@ -349,6 +370,8 @@ public class UnassignedtextPackageImpl extends EPackageImpl implements Unassigne
initEClass(commonTerminalsRuleEClass, CommonTerminalsRule.class, "CommonTerminalsRule", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEAttribute(getCommonTerminalsRule_Val(), theEcorePackage.getEString(), "val", null, 0, 1, CommonTerminalsRule.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(groupRuleEClass, GroupRule.class, "GroupRule", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
// Create resource
createResource(eNS_URI);
}

View file

@ -106,6 +106,11 @@ public class UnassignedtextAdapterFactory extends AdapterFactoryImpl
return createCommonTerminalsRuleAdapter();
}
@Override
public Adapter caseGroupRule(GroupRule object)
{
return createGroupRuleAdapter();
}
@Override
public Adapter defaultCase(EObject object)
{
return createEObjectAdapter();
@ -217,6 +222,21 @@ public class UnassignedtextAdapterFactory extends AdapterFactoryImpl
return null;
}
/**
* Creates a new adapter for an object of class '{@link org.eclipse.xtext.parsetree.unassignedtext.unassignedtext.GroupRule <em>Group Rule</em>}'.
* <!-- begin-user-doc -->
* This default implementation returns null so that we can easily ignore cases;
* it's useful to ignore a case when inheritance will catch all the cases anyway.
* <!-- end-user-doc -->
* @return the new adapter.
* @see org.eclipse.xtext.parsetree.unassignedtext.unassignedtext.GroupRule
* @generated
*/
public Adapter createGroupRuleAdapter()
{
return null;
}
/**
* Creates a new adapter for the default case.
* <!-- begin-user-doc -->

View file

@ -120,6 +120,14 @@ public class UnassignedtextSwitch<T> extends Switch<T>
if (result == null) result = defaultCase(theEObject);
return result;
}
case UnassignedtextPackage.GROUP_RULE:
{
GroupRule groupRule = (GroupRule)theEObject;
T result = caseGroupRule(groupRule);
if (result == null) result = caseModel(groupRule);
if (result == null) result = defaultCase(theEObject);
return result;
}
default: return defaultCase(theEObject);
}
}
@ -220,6 +228,22 @@ public class UnassignedtextSwitch<T> extends Switch<T>
return null;
}
/**
* Returns the result of interpreting the object as an instance of '<em>Group Rule</em>'.
* <!-- begin-user-doc -->
* This implementation returns null;
* returning a non-null result will terminate the switch.
* <!-- end-user-doc -->
* @param object the target of the switch.
* @return the result of interpreting the object as an instance of '<em>Group Rule</em>'.
* @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
* @generated
*/
public T caseGroupRule(GroupRule object)
{
return null;
}
/**
* Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
* <!-- begin-user-doc -->

View file

@ -1,5 +1,7 @@
package org.eclipse.xtext.parsetree.unassignedtext;
import org.eclipse.xtext.parsetree.unassignedtext.unassignedtext.Model;
import org.eclipse.xtext.parsetree.unassignedtext.unassignedtext.UnassignedtextFactory;
import org.eclipse.xtext.resource.XtextResource;
import org.eclipse.xtext.tests.AbstractXtextTests;
import org.junit.Test;
@ -75,4 +77,17 @@ public class UnassignedTextTest extends AbstractXtextTests {
String s = serialize(getModel(in)).trim();
assertEquals(out, s);
}
@Test public void testGroup() throws Exception {
final String in = "group this is a test";
final String out = "group this is a test";
String s = serialize(getModel(in)).trim();
assertEquals(out, s);
}
@Test public void testGroup_02() throws Exception {
final String out = "group this is a test";
String s = serialize(UnassignedtextFactory.eINSTANCE.createGroupRule()).trim();
assertEquals(out, s);
}
}

View file

@ -13,7 +13,7 @@ import "http://www.eclipse.org/emf/2002/Ecore" as ecore
generate unassignedtext "http://simple/unassignedtext"
Model:
CaseInsensitiveKeywordRule | PluralRule | MultiRule | DatatypeRule | CommonTerminalsRule;
CaseInsensitiveKeywordRule | PluralRule | MultiRule | DatatypeRule | CommonTerminalsRule | GroupRule;
CaseInsensitiveKeywordRule:
CaseInsensitiveKeyword val=INT;
@ -55,3 +55,9 @@ Datatype2 returns ecore::EString:
CommonTerminalsRule:
'terminals' ID INT STRING val=ID;
GroupRule: {GroupRule}'group' GroupDataTypeRule;
GroupDataTypeRule:
('this' 'is' 'a' 'test')
;

View file

@ -499,14 +499,20 @@ import static extension org.eclipse.xtext.xtext.generator.util.GenModelUtil2.*
return ass === null || ass.isBooleanAssignment
}
private def String defaultValue(AbstractElement ele, Set<AbstractElement> visited) {
private def String defaultValue(AbstractElement ele, AbstractRule rule, Set<AbstractElement> visited) {
switch (ele) {
case !visited.add(ele): ""
case ele.isOptionalCardinality(): ""
Alternatives: ele.elements.head.defaultValue(visited)
Group: ele.elements.map[defaultValue(visited)].join
Alternatives: ele.elements.head.defaultValue(rule, visited)
Group:
if (rule instanceof TerminalRule) {
ele.elements.map[defaultValue(rule, visited)].filter[!isNullOrEmpty].join()
} else {
ele.elements.map[defaultValue(rule, visited)].filter[!isNullOrEmpty].join(" ")
}
Keyword: ele.value
RuleCall: ele.rule.alternatives.defaultValue(visited)
RuleCall: ele.rule.alternatives.defaultValue(ele.rule, visited)
default: ''
}
}
@ -549,7 +555,7 @@ import static extension org.eclipse.xtext.xtext.generator.util.GenModelUtil2.*
protected String «rule.unassignedCalledTokenRuleName»(«EObject» semanticObject, «RuleCall» ruleCall, «INode» node) {
if (node != null)
return getTokenText(node);
return "«Strings.convertToJavaString(rule.alternatives.defaultValue(newHashSet))»";
return "«Strings.convertToJavaString(rule.alternatives.defaultValue(rule, newHashSet))»";
}
'''
}

View file

@ -73,6 +73,7 @@ import org.eclipse.xtext.xbase.lib.IterableExtensions;
import org.eclipse.xtext.xbase.lib.ListExtensions;
import org.eclipse.xtext.xbase.lib.Pair;
import org.eclipse.xtext.xbase.lib.Pure;
import org.eclipse.xtext.xbase.lib.StringExtensions;
import org.eclipse.xtext.xtext.generator.AbstractStubGeneratingFragment;
import org.eclipse.xtext.xtext.generator.XtextGeneratorNaming;
import org.eclipse.xtext.xtext.generator.grammarAccess.GrammarAccessExtensions;
@ -1386,7 +1387,7 @@ public class SerializerFragment2 extends AbstractStubGeneratingFragment {
return ((ass == null) || GrammarUtil.isBooleanAssignment(ass));
}
private String defaultValue(final AbstractElement ele, final Set<AbstractElement> visited) {
private String defaultValue(final AbstractElement ele, final AbstractRule rule, final Set<AbstractElement> visited) {
String _switchResult = null;
boolean _matched = false;
boolean _add = visited.add(ele);
@ -1405,16 +1406,33 @@ public class SerializerFragment2 extends AbstractStubGeneratingFragment {
if (!_matched) {
if (ele instanceof Alternatives) {
_matched=true;
_switchResult = this.defaultValue(IterableExtensions.<AbstractElement>head(((Alternatives)ele).getElements()), visited);
_switchResult = this.defaultValue(IterableExtensions.<AbstractElement>head(((Alternatives)ele).getElements()), rule, visited);
}
}
if (!_matched) {
if (ele instanceof Group) {
_matched=true;
final Function1<AbstractElement, String> _function = (AbstractElement it) -> {
return this.defaultValue(it, visited);
};
_switchResult = IterableExtensions.join(ListExtensions.<AbstractElement, String>map(((Group)ele).getElements(), _function));
String _xifexpression = null;
if ((rule instanceof TerminalRule)) {
final Function1<AbstractElement, String> _function = (AbstractElement it) -> {
return this.defaultValue(it, rule, visited);
};
final Function1<String, Boolean> _function_1 = (String it) -> {
boolean _isNullOrEmpty = StringExtensions.isNullOrEmpty(it);
return Boolean.valueOf((!_isNullOrEmpty));
};
_xifexpression = IterableExtensions.join(IterableExtensions.<String>filter(ListExtensions.<AbstractElement, String>map(((Group)ele).getElements(), _function), _function_1));
} else {
final Function1<AbstractElement, String> _function_2 = (AbstractElement it) -> {
return this.defaultValue(it, rule, visited);
};
final Function1<String, Boolean> _function_3 = (String it) -> {
boolean _isNullOrEmpty = StringExtensions.isNullOrEmpty(it);
return Boolean.valueOf((!_isNullOrEmpty));
};
_xifexpression = IterableExtensions.join(IterableExtensions.<String>filter(ListExtensions.<AbstractElement, String>map(((Group)ele).getElements(), _function_2), _function_3), " ");
}
_switchResult = _xifexpression;
}
}
if (!_matched) {
@ -1426,7 +1444,7 @@ public class SerializerFragment2 extends AbstractStubGeneratingFragment {
if (!_matched) {
if (ele instanceof RuleCall) {
_matched=true;
_switchResult = this.defaultValue(((RuleCall)ele).getRule().getAlternatives(), visited);
_switchResult = this.defaultValue(((RuleCall)ele).getRule().getAlternatives(), ((RuleCall)ele).getRule(), visited);
}
}
if (!_matched) {
@ -1593,7 +1611,7 @@ public class SerializerFragment2 extends AbstractStubGeneratingFragment {
_builder.newLine();
_builder.append("\t");
_builder.append("return \"");
String _convertToJavaString = Strings.convertToJavaString(SerializerFragment2.this.defaultValue(rule.getAlternatives(), CollectionLiterals.<AbstractElement>newHashSet()));
String _convertToJavaString = Strings.convertToJavaString(SerializerFragment2.this.defaultValue(rule.getAlternatives(), rule, CollectionLiterals.<AbstractElement>newHashSet()));
_builder.append(_convertToJavaString, "\t");
_builder.append("\";");
_builder.newLineIfNotEmpty();