package org.eclipse.emf.ecore.xcore.ui.contentassist.antlr.internal; 

import java.io.InputStream;
import org.eclipse.xtext.*;
import org.eclipse.xtext.parser.*;
import org.eclipse.xtext.parser.impl.*;
import org.eclipse.emf.ecore.util.EcoreUtil;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.xtext.parser.antlr.XtextTokenStream;
import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.AbstractInternalContentAssistParser;
import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.DFA;
import org.eclipse.emf.ecore.xcore.services.XcoreGrammarAccess;



import org.antlr.runtime.*;
import java.util.Stack;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.util.HashMap;
@SuppressWarnings("all")
public class InternalXcoreParser extends AbstractInternalContentAssistParser {
    public static final String[] tokenNames = new String[] {
        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_INT", "RULE_ID", "RULE_HEX", "RULE_DECIMAL", "RULE_STRING", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'='", "'||'", "'&&'", "'void'", "'?'", "'*'", "'+'", "'get'", "'isSet'", "'set'", "'unset'", "'abstract'", "'annotation'", "'as'", "'class'", "'container'", "'contains'", "'convert'", "'create'", "'derived'", "'enum'", "'extends'", "'extension'", "'id'", "'import'", "'keys'", "'interface'", "'local'", "'op'", "'opposite'", "'package'", "'readonly'", "'refers'", "'resolving'", "'static'", "'throws'", "'transient'", "'unique'", "'unordered'", "'unsettable'", "'volatile'", "'wraps'", "'+='", "'-='", "'*='", "'/='", "'%='", "'=='", "'!='", "'==='", "'!=='", "'>='", "'>'", "'<'", "'->'", "'..<'", "'..'", "'=>'", "'<>'", "'?:'", "'-'", "'**'", "'/'", "'%'", "'!'", "'++'", "'--'", "'.'", "'val'", "'super'", "'false'", "'@'", "'('", "')'", "','", "'type'", "'{'", "'}'", "'&'", "'['", "']'", "';'", "'instanceof'", "'#'", "'if'", "'else'", "'switch'", "':'", "'default'", "'case'", "'for'", "'while'", "'do'", "'new'", "'null'", "'typeof'", "'throw'", "'return'", "'try'", "'finally'", "'synchronized'", "'catch'", "'::'", "'?.'", "'|'", "'var'", "'true'"
    };
    public static final int RULE_HEX=6;
    public static final int T__50=50;
    public static final int T__59=59;
    public static final int T__55=55;
    public static final int T__56=56;
    public static final int T__57=57;
    public static final int T__58=58;
    public static final int T__51=51;
    public static final int T__52=52;
    public static final int T__53=53;
    public static final int T__54=54;
    public static final int T__60=60;
    public static final int T__61=61;
    public static final int RULE_ID=5;
    public static final int RULE_INT=4;
    public static final int T__66=66;
    public static final int RULE_ML_COMMENT=9;
    public static final int T__67=67;
    public static final int T__68=68;
    public static final int T__69=69;
    public static final int T__62=62;
    public static final int T__63=63;
    public static final int T__64=64;
    public static final int T__65=65;
    public static final int T__37=37;
    public static final int T__38=38;
    public static final int T__39=39;
    public static final int T__33=33;
    public static final int T__34=34;
    public static final int T__35=35;
    public static final int T__36=36;
    public static final int T__30=30;
    public static final int T__31=31;
    public static final int T__32=32;
    public static final int T__48=48;
    public static final int T__49=49;
    public static final int T__44=44;
    public static final int T__45=45;
    public static final int T__46=46;
    public static final int T__47=47;
    public static final int T__40=40;
    public static final int T__41=41;
    public static final int T__42=42;
    public static final int T__43=43;
    public static final int T__91=91;
    public static final int T__100=100;
    public static final int T__92=92;
    public static final int T__93=93;
    public static final int T__102=102;
    public static final int T__94=94;
    public static final int T__101=101;
    public static final int T__90=90;
    public static final int T__19=19;
    public static final int T__15=15;
    public static final int T__16=16;
    public static final int T__17=17;
    public static final int T__18=18;
    public static final int T__99=99;
    public static final int T__13=13;
    public static final int T__14=14;
    public static final int T__95=95;
    public static final int T__96=96;
    public static final int T__97=97;
    public static final int T__98=98;
    public static final int RULE_DECIMAL=7;
    public static final int T__26=26;
    public static final int T__27=27;
    public static final int T__28=28;
    public static final int T__29=29;
    public static final int T__22=22;
    public static final int T__23=23;
    public static final int T__24=24;
    public static final int T__25=25;
    public static final int T__20=20;
    public static final int T__21=21;
    public static final int T__70=70;
    public static final int T__71=71;
    public static final int T__72=72;
    public static final int RULE_STRING=8;
    public static final int RULE_SL_COMMENT=10;
    public static final int T__77=77;
    public static final int T__119=119;
    public static final int T__78=78;
    public static final int T__118=118;
    public static final int T__79=79;
    public static final int T__73=73;
    public static final int T__115=115;
    public static final int EOF=-1;
    public static final int T__74=74;
    public static final int T__114=114;
    public static final int T__75=75;
    public static final int T__117=117;
    public static final int T__76=76;
    public static final int T__116=116;
    public static final int T__80=80;
    public static final int T__111=111;
    public static final int T__81=81;
    public static final int T__110=110;
    public static final int T__82=82;
    public static final int T__113=113;
    public static final int T__83=83;
    public static final int T__112=112;
    public static final int RULE_WS=11;
    public static final int RULE_ANY_OTHER=12;
    public static final int T__88=88;
    public static final int T__108=108;
    public static final int T__89=89;
    public static final int T__107=107;
    public static final int T__109=109;
    public static final int T__84=84;
    public static final int T__104=104;
    public static final int T__85=85;
    public static final int T__103=103;
    public static final int T__86=86;
    public static final int T__106=106;
    public static final int T__87=87;
    public static final int T__105=105;

    // delegates
    // delegators


        public InternalXcoreParser(TokenStream input) {
            this(input, new RecognizerSharedState());
        }
        public InternalXcoreParser(TokenStream input, RecognizerSharedState state) {
            super(input, state);
             
        }
        

    public String[] getTokenNames() { return InternalXcoreParser.tokenNames; }
    public String getGrammarFileName() { return "InternalXcore.g"; }


     
     	private XcoreGrammarAccess grammarAccess;
     	
        public void setGrammarAccess(XcoreGrammarAccess grammarAccess) {
        	this.grammarAccess = grammarAccess;
        }
        
        @Override
        protected Grammar getGrammar() {
        	return grammarAccess.getGrammar();
        }
        
        @Override
        protected String getValueForTokenName(String tokenName) {
        	return tokenName;
        }




    // $ANTLR start "entryRuleXPackage"
    // InternalXcore.g:61:1: entryRuleXPackage : ruleXPackage EOF ;
    public final void entryRuleXPackage() throws RecognitionException {
        try {
            // InternalXcore.g:62:1: ( ruleXPackage EOF )
            // InternalXcore.g:63:1: ruleXPackage EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXPackageRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_1);
            ruleXPackage();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXPackageRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleXPackage"


    // $ANTLR start "ruleXPackage"
    // InternalXcore.g:70:1: ruleXPackage : ( ( rule__XPackage__Group__0 ) ) ;
    public final void ruleXPackage() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:74:2: ( ( ( rule__XPackage__Group__0 ) ) )
            // InternalXcore.g:75:1: ( ( rule__XPackage__Group__0 ) )
            {
            // InternalXcore.g:75:1: ( ( rule__XPackage__Group__0 ) )
            // InternalXcore.g:76:1: ( rule__XPackage__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXPackageAccess().getGroup()); 
            }
            // InternalXcore.g:77:1: ( rule__XPackage__Group__0 )
            // InternalXcore.g:77:2: rule__XPackage__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XPackage__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXPackageAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleXPackage"


    // $ANTLR start "entryRuleXAnnotation"
    // InternalXcore.g:89:1: entryRuleXAnnotation : ruleXAnnotation EOF ;
    public final void entryRuleXAnnotation() throws RecognitionException {
        try {
            // InternalXcore.g:90:1: ( ruleXAnnotation EOF )
            // InternalXcore.g:91:1: ruleXAnnotation EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAnnotationRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_1);
            ruleXAnnotation();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAnnotationRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleXAnnotation"


    // $ANTLR start "ruleXAnnotation"
    // InternalXcore.g:98:1: ruleXAnnotation : ( ( rule__XAnnotation__Group__0 ) ) ;
    public final void ruleXAnnotation() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:102:2: ( ( ( rule__XAnnotation__Group__0 ) ) )
            // InternalXcore.g:103:1: ( ( rule__XAnnotation__Group__0 ) )
            {
            // InternalXcore.g:103:1: ( ( rule__XAnnotation__Group__0 ) )
            // InternalXcore.g:104:1: ( rule__XAnnotation__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAnnotationAccess().getGroup()); 
            }
            // InternalXcore.g:105:1: ( rule__XAnnotation__Group__0 )
            // InternalXcore.g:105:2: rule__XAnnotation__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XAnnotation__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAnnotationAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleXAnnotation"


    // $ANTLR start "entryRuleXStringToStringMapEntry"
    // InternalXcore.g:117:1: entryRuleXStringToStringMapEntry : ruleXStringToStringMapEntry EOF ;
    public final void entryRuleXStringToStringMapEntry() throws RecognitionException {
        try {
            // InternalXcore.g:118:1: ( ruleXStringToStringMapEntry EOF )
            // InternalXcore.g:119:1: ruleXStringToStringMapEntry EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXStringToStringMapEntryRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_1);
            ruleXStringToStringMapEntry();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXStringToStringMapEntryRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleXStringToStringMapEntry"


    // $ANTLR start "ruleXStringToStringMapEntry"
    // InternalXcore.g:126:1: ruleXStringToStringMapEntry : ( ( rule__XStringToStringMapEntry__Group__0 ) ) ;
    public final void ruleXStringToStringMapEntry() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:130:2: ( ( ( rule__XStringToStringMapEntry__Group__0 ) ) )
            // InternalXcore.g:131:1: ( ( rule__XStringToStringMapEntry__Group__0 ) )
            {
            // InternalXcore.g:131:1: ( ( rule__XStringToStringMapEntry__Group__0 ) )
            // InternalXcore.g:132:1: ( rule__XStringToStringMapEntry__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXStringToStringMapEntryAccess().getGroup()); 
            }
            // InternalXcore.g:133:1: ( rule__XStringToStringMapEntry__Group__0 )
            // InternalXcore.g:133:2: rule__XStringToStringMapEntry__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XStringToStringMapEntry__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXStringToStringMapEntryAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleXStringToStringMapEntry"


    // $ANTLR start "entryRuleXImportDirective"
    // InternalXcore.g:145:1: entryRuleXImportDirective : ruleXImportDirective EOF ;
    public final void entryRuleXImportDirective() throws RecognitionException {
        try {
            // InternalXcore.g:146:1: ( ruleXImportDirective EOF )
            // InternalXcore.g:147:1: ruleXImportDirective EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXImportDirectiveRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_1);
            ruleXImportDirective();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXImportDirectiveRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleXImportDirective"


    // $ANTLR start "ruleXImportDirective"
    // InternalXcore.g:154:1: ruleXImportDirective : ( ( rule__XImportDirective__Group__0 ) ) ;
    public final void ruleXImportDirective() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:158:2: ( ( ( rule__XImportDirective__Group__0 ) ) )
            // InternalXcore.g:159:1: ( ( rule__XImportDirective__Group__0 ) )
            {
            // InternalXcore.g:159:1: ( ( rule__XImportDirective__Group__0 ) )
            // InternalXcore.g:160:1: ( rule__XImportDirective__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXImportDirectiveAccess().getGroup()); 
            }
            // InternalXcore.g:161:1: ( rule__XImportDirective__Group__0 )
            // InternalXcore.g:161:2: rule__XImportDirective__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XImportDirective__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXImportDirectiveAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleXImportDirective"


    // $ANTLR start "entryRuleXAnnotationDirective"
    // InternalXcore.g:173:1: entryRuleXAnnotationDirective : ruleXAnnotationDirective EOF ;
    public final void entryRuleXAnnotationDirective() throws RecognitionException {
        try {
            // InternalXcore.g:174:1: ( ruleXAnnotationDirective EOF )
            // InternalXcore.g:175:1: ruleXAnnotationDirective EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAnnotationDirectiveRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_1);
            ruleXAnnotationDirective();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAnnotationDirectiveRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleXAnnotationDirective"


    // $ANTLR start "ruleXAnnotationDirective"
    // InternalXcore.g:182:1: ruleXAnnotationDirective : ( ( rule__XAnnotationDirective__Group__0 ) ) ;
    public final void ruleXAnnotationDirective() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:186:2: ( ( ( rule__XAnnotationDirective__Group__0 ) ) )
            // InternalXcore.g:187:1: ( ( rule__XAnnotationDirective__Group__0 ) )
            {
            // InternalXcore.g:187:1: ( ( rule__XAnnotationDirective__Group__0 ) )
            // InternalXcore.g:188:1: ( rule__XAnnotationDirective__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAnnotationDirectiveAccess().getGroup()); 
            }
            // InternalXcore.g:189:1: ( rule__XAnnotationDirective__Group__0 )
            // InternalXcore.g:189:2: rule__XAnnotationDirective__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XAnnotationDirective__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAnnotationDirectiveAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleXAnnotationDirective"


    // $ANTLR start "entryRuleXClassifier"
    // InternalXcore.g:201:1: entryRuleXClassifier : ruleXClassifier EOF ;
    public final void entryRuleXClassifier() throws RecognitionException {
        try {
            // InternalXcore.g:202:1: ( ruleXClassifier EOF )
            // InternalXcore.g:203:1: ruleXClassifier EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClassifierRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_1);
            ruleXClassifier();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXClassifierRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleXClassifier"


    // $ANTLR start "ruleXClassifier"
    // InternalXcore.g:210:1: ruleXClassifier : ( ( rule__XClassifier__Alternatives ) ) ;
    public final void ruleXClassifier() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:214:2: ( ( ( rule__XClassifier__Alternatives ) ) )
            // InternalXcore.g:215:1: ( ( rule__XClassifier__Alternatives ) )
            {
            // InternalXcore.g:215:1: ( ( rule__XClassifier__Alternatives ) )
            // InternalXcore.g:216:1: ( rule__XClassifier__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClassifierAccess().getAlternatives()); 
            }
            // InternalXcore.g:217:1: ( rule__XClassifier__Alternatives )
            // InternalXcore.g:217:2: rule__XClassifier__Alternatives
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XClassifier__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXClassifierAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleXClassifier"


    // $ANTLR start "entryRuleXDataType"
    // InternalXcore.g:229:1: entryRuleXDataType : ruleXDataType EOF ;
    public final void entryRuleXDataType() throws RecognitionException {
        try {
            // InternalXcore.g:230:1: ( ruleXDataType EOF )
            // InternalXcore.g:231:1: ruleXDataType EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXDataTypeRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_1);
            ruleXDataType();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXDataTypeRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleXDataType"


    // $ANTLR start "ruleXDataType"
    // InternalXcore.g:238:1: ruleXDataType : ( ( rule__XDataType__Group__0 ) ) ;
    public final void ruleXDataType() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:242:2: ( ( ( rule__XDataType__Group__0 ) ) )
            // InternalXcore.g:243:1: ( ( rule__XDataType__Group__0 ) )
            {
            // InternalXcore.g:243:1: ( ( rule__XDataType__Group__0 ) )
            // InternalXcore.g:244:1: ( rule__XDataType__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXDataTypeAccess().getGroup()); 
            }
            // InternalXcore.g:245:1: ( rule__XDataType__Group__0 )
            // InternalXcore.g:245:2: rule__XDataType__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XDataType__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXDataTypeAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleXDataType"


    // $ANTLR start "entryRuleXEnum"
    // InternalXcore.g:257:1: entryRuleXEnum : ruleXEnum EOF ;
    public final void entryRuleXEnum() throws RecognitionException {
        try {
            // InternalXcore.g:258:1: ( ruleXEnum EOF )
            // InternalXcore.g:259:1: ruleXEnum EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXEnumRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_1);
            ruleXEnum();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXEnumRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleXEnum"


    // $ANTLR start "ruleXEnum"
    // InternalXcore.g:266:1: ruleXEnum : ( ( rule__XEnum__Group__0 ) ) ;
    public final void ruleXEnum() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:270:2: ( ( ( rule__XEnum__Group__0 ) ) )
            // InternalXcore.g:271:1: ( ( rule__XEnum__Group__0 ) )
            {
            // InternalXcore.g:271:1: ( ( rule__XEnum__Group__0 ) )
            // InternalXcore.g:272:1: ( rule__XEnum__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXEnumAccess().getGroup()); 
            }
            // InternalXcore.g:273:1: ( rule__XEnum__Group__0 )
            // InternalXcore.g:273:2: rule__XEnum__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XEnum__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXEnumAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleXEnum"


    // $ANTLR start "entryRuleXEnumLiteral"
    // InternalXcore.g:285:1: entryRuleXEnumLiteral : ruleXEnumLiteral EOF ;
    public final void entryRuleXEnumLiteral() throws RecognitionException {
        try {
            // InternalXcore.g:286:1: ( ruleXEnumLiteral EOF )
            // InternalXcore.g:287:1: ruleXEnumLiteral EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXEnumLiteralRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_1);
            ruleXEnumLiteral();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXEnumLiteralRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleXEnumLiteral"


    // $ANTLR start "ruleXEnumLiteral"
    // InternalXcore.g:294:1: ruleXEnumLiteral : ( ( rule__XEnumLiteral__Group__0 ) ) ;
    public final void ruleXEnumLiteral() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:298:2: ( ( ( rule__XEnumLiteral__Group__0 ) ) )
            // InternalXcore.g:299:1: ( ( rule__XEnumLiteral__Group__0 ) )
            {
            // InternalXcore.g:299:1: ( ( rule__XEnumLiteral__Group__0 ) )
            // InternalXcore.g:300:1: ( rule__XEnumLiteral__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXEnumLiteralAccess().getGroup()); 
            }
            // InternalXcore.g:301:1: ( rule__XEnumLiteral__Group__0 )
            // InternalXcore.g:301:2: rule__XEnumLiteral__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XEnumLiteral__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXEnumLiteralAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleXEnumLiteral"


    // $ANTLR start "entryRuleSignedInt"
    // InternalXcore.g:313:1: entryRuleSignedInt : ruleSignedInt EOF ;
    public final void entryRuleSignedInt() throws RecognitionException {
        try {
            // InternalXcore.g:314:1: ( ruleSignedInt EOF )
            // InternalXcore.g:315:1: ruleSignedInt EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getSignedIntRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_1);
            ruleSignedInt();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getSignedIntRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleSignedInt"


    // $ANTLR start "ruleSignedInt"
    // InternalXcore.g:322:1: ruleSignedInt : ( ( rule__SignedInt__Group__0 ) ) ;
    public final void ruleSignedInt() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:326:2: ( ( ( rule__SignedInt__Group__0 ) ) )
            // InternalXcore.g:327:1: ( ( rule__SignedInt__Group__0 ) )
            {
            // InternalXcore.g:327:1: ( ( rule__SignedInt__Group__0 ) )
            // InternalXcore.g:328:1: ( rule__SignedInt__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getSignedIntAccess().getGroup()); 
            }
            // InternalXcore.g:329:1: ( rule__SignedInt__Group__0 )
            // InternalXcore.g:329:2: rule__SignedInt__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__SignedInt__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getSignedIntAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleSignedInt"


    // $ANTLR start "entryRuleXClass"
    // InternalXcore.g:341:1: entryRuleXClass : ruleXClass EOF ;
    public final void entryRuleXClass() throws RecognitionException {
        try {
            // InternalXcore.g:342:1: ( ruleXClass EOF )
            // InternalXcore.g:343:1: ruleXClass EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClassRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_1);
            ruleXClass();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXClassRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleXClass"


    // $ANTLR start "ruleXClass"
    // InternalXcore.g:350:1: ruleXClass : ( ( rule__XClass__Group__0 ) ) ;
    public final void ruleXClass() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:354:2: ( ( ( rule__XClass__Group__0 ) ) )
            // InternalXcore.g:355:1: ( ( rule__XClass__Group__0 ) )
            {
            // InternalXcore.g:355:1: ( ( rule__XClass__Group__0 ) )
            // InternalXcore.g:356:1: ( rule__XClass__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClassAccess().getGroup()); 
            }
            // InternalXcore.g:357:1: ( rule__XClass__Group__0 )
            // InternalXcore.g:357:2: rule__XClass__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XClass__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXClassAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleXClass"


    // $ANTLR start "entryRuleXMember"
    // InternalXcore.g:369:1: entryRuleXMember : ruleXMember EOF ;
    public final void entryRuleXMember() throws RecognitionException {
        try {
            // InternalXcore.g:370:1: ( ruleXMember EOF )
            // InternalXcore.g:371:1: ruleXMember EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_1);
            ruleXMember();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXMemberRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleXMember"


    // $ANTLR start "ruleXMember"
    // InternalXcore.g:378:1: ruleXMember : ( ( rule__XMember__Alternatives ) ) ;
    public final void ruleXMember() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:382:2: ( ( ( rule__XMember__Alternatives ) ) )
            // InternalXcore.g:383:1: ( ( rule__XMember__Alternatives ) )
            {
            // InternalXcore.g:383:1: ( ( rule__XMember__Alternatives ) )
            // InternalXcore.g:384:1: ( rule__XMember__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberAccess().getAlternatives()); 
            }
            // InternalXcore.g:385:1: ( rule__XMember__Alternatives )
            // InternalXcore.g:385:2: rule__XMember__Alternatives
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XMember__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXMemberAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleXMember"


    // $ANTLR start "entryRuleXAttribute"
    // InternalXcore.g:397:1: entryRuleXAttribute : ruleXAttribute EOF ;
    public final void entryRuleXAttribute() throws RecognitionException {
        try {
            // InternalXcore.g:398:1: ( ruleXAttribute EOF )
            // InternalXcore.g:399:1: ruleXAttribute EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAttributeRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_1);
            ruleXAttribute();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAttributeRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleXAttribute"


    // $ANTLR start "ruleXAttribute"
    // InternalXcore.g:406:1: ruleXAttribute : ( ( rule__XAttribute__Group__0 ) ) ;
    public final void ruleXAttribute() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:410:2: ( ( ( rule__XAttribute__Group__0 ) ) )
            // InternalXcore.g:411:1: ( ( rule__XAttribute__Group__0 ) )
            {
            // InternalXcore.g:411:1: ( ( rule__XAttribute__Group__0 ) )
            // InternalXcore.g:412:1: ( rule__XAttribute__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAttributeAccess().getGroup()); 
            }
            // InternalXcore.g:413:1: ( rule__XAttribute__Group__0 )
            // InternalXcore.g:413:2: rule__XAttribute__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XAttribute__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAttributeAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleXAttribute"


    // $ANTLR start "entryRuleXReference"
    // InternalXcore.g:425:1: entryRuleXReference : ruleXReference EOF ;
    public final void entryRuleXReference() throws RecognitionException {
        try {
            // InternalXcore.g:426:1: ( ruleXReference EOF )
            // InternalXcore.g:427:1: ruleXReference EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_1);
            ruleXReference();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXReferenceRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleXReference"


    // $ANTLR start "ruleXReference"
    // InternalXcore.g:434:1: ruleXReference : ( ( rule__XReference__Group__0 ) ) ;
    public final void ruleXReference() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:438:2: ( ( ( rule__XReference__Group__0 ) ) )
            // InternalXcore.g:439:1: ( ( rule__XReference__Group__0 ) )
            {
            // InternalXcore.g:439:1: ( ( rule__XReference__Group__0 ) )
            // InternalXcore.g:440:1: ( rule__XReference__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getGroup()); 
            }
            // InternalXcore.g:441:1: ( rule__XReference__Group__0 )
            // InternalXcore.g:441:2: rule__XReference__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XReference__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXReferenceAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleXReference"


    // $ANTLR start "entryRuleXOperation"
    // InternalXcore.g:453:1: entryRuleXOperation : ruleXOperation EOF ;
    public final void entryRuleXOperation() throws RecognitionException {
        try {
            // InternalXcore.g:454:1: ( ruleXOperation EOF )
            // InternalXcore.g:455:1: ruleXOperation EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_1);
            ruleXOperation();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXOperationRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleXOperation"


    // $ANTLR start "ruleXOperation"
    // InternalXcore.g:462:1: ruleXOperation : ( ( rule__XOperation__Group__0 ) ) ;
    public final void ruleXOperation() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:466:2: ( ( ( rule__XOperation__Group__0 ) ) )
            // InternalXcore.g:467:1: ( ( rule__XOperation__Group__0 ) )
            {
            // InternalXcore.g:467:1: ( ( rule__XOperation__Group__0 ) )
            // InternalXcore.g:468:1: ( rule__XOperation__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getGroup()); 
            }
            // InternalXcore.g:469:1: ( rule__XOperation__Group__0 )
            // InternalXcore.g:469:2: rule__XOperation__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XOperation__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXOperationAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleXOperation"


    // $ANTLR start "entryRuleXParameter"
    // InternalXcore.g:481:1: entryRuleXParameter : ruleXParameter EOF ;
    public final void entryRuleXParameter() throws RecognitionException {
        try {
            // InternalXcore.g:482:1: ( ruleXParameter EOF )
            // InternalXcore.g:483:1: ruleXParameter EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXParameterRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_1);
            ruleXParameter();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXParameterRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleXParameter"


    // $ANTLR start "ruleXParameter"
    // InternalXcore.g:490:1: ruleXParameter : ( ( rule__XParameter__Group__0 ) ) ;
    public final void ruleXParameter() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:494:2: ( ( ( rule__XParameter__Group__0 ) ) )
            // InternalXcore.g:495:1: ( ( rule__XParameter__Group__0 ) )
            {
            // InternalXcore.g:495:1: ( ( rule__XParameter__Group__0 ) )
            // InternalXcore.g:496:1: ( rule__XParameter__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXParameterAccess().getGroup()); 
            }
            // InternalXcore.g:497:1: ( rule__XParameter__Group__0 )
            // InternalXcore.g:497:2: rule__XParameter__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XParameter__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXParameterAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleXParameter"


    // $ANTLR start "entryRuleXTypeParameter"
    // InternalXcore.g:509:1: entryRuleXTypeParameter : ruleXTypeParameter EOF ;
    public final void entryRuleXTypeParameter() throws RecognitionException {
        try {
            // InternalXcore.g:510:1: ( ruleXTypeParameter EOF )
            // InternalXcore.g:511:1: ruleXTypeParameter EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXTypeParameterRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_1);
            ruleXTypeParameter();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXTypeParameterRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleXTypeParameter"


    // $ANTLR start "ruleXTypeParameter"
    // InternalXcore.g:518:1: ruleXTypeParameter : ( ( rule__XTypeParameter__Group__0 ) ) ;
    public final void ruleXTypeParameter() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:522:2: ( ( ( rule__XTypeParameter__Group__0 ) ) )
            // InternalXcore.g:523:1: ( ( rule__XTypeParameter__Group__0 ) )
            {
            // InternalXcore.g:523:1: ( ( rule__XTypeParameter__Group__0 ) )
            // InternalXcore.g:524:1: ( rule__XTypeParameter__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXTypeParameterAccess().getGroup()); 
            }
            // InternalXcore.g:525:1: ( rule__XTypeParameter__Group__0 )
            // InternalXcore.g:525:2: rule__XTypeParameter__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XTypeParameter__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXTypeParameterAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleXTypeParameter"


    // $ANTLR start "entryRuleXMultiplicity"
    // InternalXcore.g:537:1: entryRuleXMultiplicity : ruleXMultiplicity EOF ;
    public final void entryRuleXMultiplicity() throws RecognitionException {
        try {
            // InternalXcore.g:538:1: ( ruleXMultiplicity EOF )
            // InternalXcore.g:539:1: ruleXMultiplicity EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMultiplicityRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_1);
            ruleXMultiplicity();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXMultiplicityRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleXMultiplicity"


    // $ANTLR start "ruleXMultiplicity"
    // InternalXcore.g:546:1: ruleXMultiplicity : ( ( rule__XMultiplicity__Group__0 ) ) ;
    public final void ruleXMultiplicity() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:550:2: ( ( ( rule__XMultiplicity__Group__0 ) ) )
            // InternalXcore.g:551:1: ( ( rule__XMultiplicity__Group__0 ) )
            {
            // InternalXcore.g:551:1: ( ( rule__XMultiplicity__Group__0 ) )
            // InternalXcore.g:552:1: ( rule__XMultiplicity__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMultiplicityAccess().getGroup()); 
            }
            // InternalXcore.g:553:1: ( rule__XMultiplicity__Group__0 )
            // InternalXcore.g:553:2: rule__XMultiplicity__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XMultiplicity__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXMultiplicityAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleXMultiplicity"


    // $ANTLR start "entryRuleXBlockExpression"
    // InternalXcore.g:565:1: entryRuleXBlockExpression : ruleXBlockExpression EOF ;
    public final void entryRuleXBlockExpression() throws RecognitionException {
        try {
            // InternalXcore.g:566:1: ( ruleXBlockExpression EOF )
            // InternalXcore.g:567:1: ruleXBlockExpression EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXBlockExpressionRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_1);
            ruleXBlockExpression();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXBlockExpressionRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleXBlockExpression"


    // $ANTLR start "ruleXBlockExpression"
    // InternalXcore.g:574:1: ruleXBlockExpression : ( ( rule__XBlockExpression__Group__0 ) ) ;
    public final void ruleXBlockExpression() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:578:2: ( ( ( rule__XBlockExpression__Group__0 ) ) )
            // InternalXcore.g:579:1: ( ( rule__XBlockExpression__Group__0 ) )
            {
            // InternalXcore.g:579:1: ( ( rule__XBlockExpression__Group__0 ) )
            // InternalXcore.g:580:1: ( rule__XBlockExpression__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXBlockExpressionAccess().getGroup()); 
            }
            // InternalXcore.g:581:1: ( rule__XBlockExpression__Group__0 )
            // InternalXcore.g:581:2: rule__XBlockExpression__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XBlockExpression__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXBlockExpressionAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleXBlockExpression"


    // $ANTLR start "entryRuleXGenericType"
    // InternalXcore.g:593:1: entryRuleXGenericType : ruleXGenericType EOF ;
    public final void entryRuleXGenericType() throws RecognitionException {
        try {
            // InternalXcore.g:594:1: ( ruleXGenericType EOF )
            // InternalXcore.g:595:1: ruleXGenericType EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXGenericTypeRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_1);
            ruleXGenericType();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXGenericTypeRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleXGenericType"


    // $ANTLR start "ruleXGenericType"
    // InternalXcore.g:602:1: ruleXGenericType : ( ( rule__XGenericType__Group__0 ) ) ;
    public final void ruleXGenericType() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:606:2: ( ( ( rule__XGenericType__Group__0 ) ) )
            // InternalXcore.g:607:1: ( ( rule__XGenericType__Group__0 ) )
            {
            // InternalXcore.g:607:1: ( ( rule__XGenericType__Group__0 ) )
            // InternalXcore.g:608:1: ( rule__XGenericType__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXGenericTypeAccess().getGroup()); 
            }
            // InternalXcore.g:609:1: ( rule__XGenericType__Group__0 )
            // InternalXcore.g:609:2: rule__XGenericType__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XGenericType__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXGenericTypeAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleXGenericType"


    // $ANTLR start "entryRuleXGenericTypeArgument"
    // InternalXcore.g:621:1: entryRuleXGenericTypeArgument : ruleXGenericTypeArgument EOF ;
    public final void entryRuleXGenericTypeArgument() throws RecognitionException {
        try {
            // InternalXcore.g:622:1: ( ruleXGenericTypeArgument EOF )
            // InternalXcore.g:623:1: ruleXGenericTypeArgument EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXGenericTypeArgumentRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_1);
            ruleXGenericTypeArgument();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXGenericTypeArgumentRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleXGenericTypeArgument"


    // $ANTLR start "ruleXGenericTypeArgument"
    // InternalXcore.g:630:1: ruleXGenericTypeArgument : ( ( rule__XGenericTypeArgument__Alternatives ) ) ;
    public final void ruleXGenericTypeArgument() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:634:2: ( ( ( rule__XGenericTypeArgument__Alternatives ) ) )
            // InternalXcore.g:635:1: ( ( rule__XGenericTypeArgument__Alternatives ) )
            {
            // InternalXcore.g:635:1: ( ( rule__XGenericTypeArgument__Alternatives ) )
            // InternalXcore.g:636:1: ( rule__XGenericTypeArgument__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXGenericTypeArgumentAccess().getAlternatives()); 
            }
            // InternalXcore.g:637:1: ( rule__XGenericTypeArgument__Alternatives )
            // InternalXcore.g:637:2: rule__XGenericTypeArgument__Alternatives
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XGenericTypeArgument__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXGenericTypeArgumentAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleXGenericTypeArgument"


    // $ANTLR start "entryRuleXGenericWildcardTypeArgument"
    // InternalXcore.g:649:1: entryRuleXGenericWildcardTypeArgument : ruleXGenericWildcardTypeArgument EOF ;
    public final void entryRuleXGenericWildcardTypeArgument() throws RecognitionException {
        try {
            // InternalXcore.g:650:1: ( ruleXGenericWildcardTypeArgument EOF )
            // InternalXcore.g:651:1: ruleXGenericWildcardTypeArgument EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXGenericWildcardTypeArgumentRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_1);
            ruleXGenericWildcardTypeArgument();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXGenericWildcardTypeArgumentRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleXGenericWildcardTypeArgument"


    // $ANTLR start "ruleXGenericWildcardTypeArgument"
    // InternalXcore.g:658:1: ruleXGenericWildcardTypeArgument : ( ( rule__XGenericWildcardTypeArgument__Group__0 ) ) ;
    public final void ruleXGenericWildcardTypeArgument() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:662:2: ( ( ( rule__XGenericWildcardTypeArgument__Group__0 ) ) )
            // InternalXcore.g:663:1: ( ( rule__XGenericWildcardTypeArgument__Group__0 ) )
            {
            // InternalXcore.g:663:1: ( ( rule__XGenericWildcardTypeArgument__Group__0 ) )
            // InternalXcore.g:664:1: ( rule__XGenericWildcardTypeArgument__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXGenericWildcardTypeArgumentAccess().getGroup()); 
            }
            // InternalXcore.g:665:1: ( rule__XGenericWildcardTypeArgument__Group__0 )
            // InternalXcore.g:665:2: rule__XGenericWildcardTypeArgument__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XGenericWildcardTypeArgument__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXGenericWildcardTypeArgumentAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleXGenericWildcardTypeArgument"


    // $ANTLR start "entryRuleXQualifiedName"
    // InternalXcore.g:677:1: entryRuleXQualifiedName : ruleXQualifiedName EOF ;
    public final void entryRuleXQualifiedName() throws RecognitionException {
        try {
            // InternalXcore.g:678:1: ( ruleXQualifiedName EOF )
            // InternalXcore.g:679:1: ruleXQualifiedName EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXQualifiedNameRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_1);
            ruleXQualifiedName();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXQualifiedNameRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleXQualifiedName"


    // $ANTLR start "ruleXQualifiedName"
    // InternalXcore.g:686:1: ruleXQualifiedName : ( ( rule__XQualifiedName__Group__0 ) ) ;
    public final void ruleXQualifiedName() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:690:2: ( ( ( rule__XQualifiedName__Group__0 ) ) )
            // InternalXcore.g:691:1: ( ( rule__XQualifiedName__Group__0 ) )
            {
            // InternalXcore.g:691:1: ( ( rule__XQualifiedName__Group__0 ) )
            // InternalXcore.g:692:1: ( rule__XQualifiedName__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXQualifiedNameAccess().getGroup()); 
            }
            // InternalXcore.g:693:1: ( rule__XQualifiedName__Group__0 )
            // InternalXcore.g:693:2: rule__XQualifiedName__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XQualifiedName__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXQualifiedNameAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleXQualifiedName"


    // $ANTLR start "entryRuleXID"
    // InternalXcore.g:705:1: entryRuleXID : ruleXID EOF ;
    public final void entryRuleXID() throws RecognitionException {
        try {
            // InternalXcore.g:706:1: ( ruleXID EOF )
            // InternalXcore.g:707:1: ruleXID EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXIDRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_1);
            ruleXID();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXIDRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleXID"


    // $ANTLR start "ruleXID"
    // InternalXcore.g:714:1: ruleXID : ( ( rule__XID__Alternatives ) ) ;
    public final void ruleXID() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:718:2: ( ( ( rule__XID__Alternatives ) ) )
            // InternalXcore.g:719:1: ( ( rule__XID__Alternatives ) )
            {
            // InternalXcore.g:719:1: ( ( rule__XID__Alternatives ) )
            // InternalXcore.g:720:1: ( rule__XID__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXIDAccess().getAlternatives()); 
            }
            // InternalXcore.g:721:1: ( rule__XID__Alternatives )
            // InternalXcore.g:721:2: rule__XID__Alternatives
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XID__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXIDAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleXID"


    // $ANTLR start "entryRuleValidID"
    // InternalXcore.g:733:1: entryRuleValidID : ruleValidID EOF ;
    public final void entryRuleValidID() throws RecognitionException {
        try {
            // InternalXcore.g:734:1: ( ruleValidID EOF )
            // InternalXcore.g:735:1: ruleValidID EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getValidIDRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_1);
            ruleValidID();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getValidIDRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleValidID"


    // $ANTLR start "ruleValidID"
    // InternalXcore.g:742:1: ruleValidID : ( ( rule__ValidID__Alternatives ) ) ;
    public final void ruleValidID() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:746:2: ( ( ( rule__ValidID__Alternatives ) ) )
            // InternalXcore.g:747:1: ( ( rule__ValidID__Alternatives ) )
            {
            // InternalXcore.g:747:1: ( ( rule__ValidID__Alternatives ) )
            // InternalXcore.g:748:1: ( rule__ValidID__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getValidIDAccess().getAlternatives()); 
            }
            // InternalXcore.g:749:1: ( rule__ValidID__Alternatives )
            // InternalXcore.g:749:2: rule__ValidID__Alternatives
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__ValidID__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getValidIDAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleValidID"


    // $ANTLR start "entryRuleFeatureCallID"
    // InternalXcore.g:761:1: entryRuleFeatureCallID : ruleFeatureCallID EOF ;
    public final void entryRuleFeatureCallID() throws RecognitionException {
        try {
            // InternalXcore.g:762:1: ( ruleFeatureCallID EOF )
            // InternalXcore.g:763:1: ruleFeatureCallID EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getFeatureCallIDRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_1);
            ruleFeatureCallID();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getFeatureCallIDRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleFeatureCallID"


    // $ANTLR start "ruleFeatureCallID"
    // InternalXcore.g:770:1: ruleFeatureCallID : ( ( rule__FeatureCallID__Alternatives ) ) ;
    public final void ruleFeatureCallID() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:774:2: ( ( ( rule__FeatureCallID__Alternatives ) ) )
            // InternalXcore.g:775:1: ( ( rule__FeatureCallID__Alternatives ) )
            {
            // InternalXcore.g:775:1: ( ( rule__FeatureCallID__Alternatives ) )
            // InternalXcore.g:776:1: ( rule__FeatureCallID__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getFeatureCallIDAccess().getAlternatives()); 
            }
            // InternalXcore.g:777:1: ( rule__FeatureCallID__Alternatives )
            // InternalXcore.g:777:2: rule__FeatureCallID__Alternatives
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__FeatureCallID__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getFeatureCallIDAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleFeatureCallID"


    // $ANTLR start "entryRuleXExpression"
    // InternalXcore.g:789:1: entryRuleXExpression : ruleXExpression EOF ;
    public final void entryRuleXExpression() throws RecognitionException {
        try {
            // InternalXcore.g:790:1: ( ruleXExpression EOF )
            // InternalXcore.g:791:1: ruleXExpression EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXExpressionRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_1);
            ruleXExpression();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXExpressionRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleXExpression"


    // $ANTLR start "ruleXExpression"
    // InternalXcore.g:798:1: ruleXExpression : ( ruleXAssignment ) ;
    public final void ruleXExpression() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:802:2: ( ( ruleXAssignment ) )
            // InternalXcore.g:803:1: ( ruleXAssignment )
            {
            // InternalXcore.g:803:1: ( ruleXAssignment )
            // InternalXcore.g:804:1: ruleXAssignment
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXExpressionAccess().getXAssignmentParserRuleCall()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXAssignment();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXExpressionAccess().getXAssignmentParserRuleCall()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleXExpression"


    // $ANTLR start "entryRuleXAssignment"
    // InternalXcore.g:817:1: entryRuleXAssignment : ruleXAssignment EOF ;
    public final void entryRuleXAssignment() throws RecognitionException {
        try {
            // InternalXcore.g:818:1: ( ruleXAssignment EOF )
            // InternalXcore.g:819:1: ruleXAssignment EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAssignmentRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_1);
            ruleXAssignment();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAssignmentRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleXAssignment"


    // $ANTLR start "ruleXAssignment"
    // InternalXcore.g:826:1: ruleXAssignment : ( ( rule__XAssignment__Alternatives ) ) ;
    public final void ruleXAssignment() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:830:2: ( ( ( rule__XAssignment__Alternatives ) ) )
            // InternalXcore.g:831:1: ( ( rule__XAssignment__Alternatives ) )
            {
            // InternalXcore.g:831:1: ( ( rule__XAssignment__Alternatives ) )
            // InternalXcore.g:832:1: ( rule__XAssignment__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAssignmentAccess().getAlternatives()); 
            }
            // InternalXcore.g:833:1: ( rule__XAssignment__Alternatives )
            // InternalXcore.g:833:2: rule__XAssignment__Alternatives
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XAssignment__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAssignmentAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleXAssignment"


    // $ANTLR start "entryRuleOpSingleAssign"
    // InternalXcore.g:845:1: entryRuleOpSingleAssign : ruleOpSingleAssign EOF ;
    public final void entryRuleOpSingleAssign() throws RecognitionException {
        try {
            // InternalXcore.g:846:1: ( ruleOpSingleAssign EOF )
            // InternalXcore.g:847:1: ruleOpSingleAssign EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOpSingleAssignRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_1);
            ruleOpSingleAssign();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getOpSingleAssignRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleOpSingleAssign"


    // $ANTLR start "ruleOpSingleAssign"
    // InternalXcore.g:854:1: ruleOpSingleAssign : ( '=' ) ;
    public final void ruleOpSingleAssign() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:858:2: ( ( '=' ) )
            // InternalXcore.g:859:1: ( '=' )
            {
            // InternalXcore.g:859:1: ( '=' )
            // InternalXcore.g:860:1: '='
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOpSingleAssignAccess().getEqualsSignKeyword()); 
            }
            match(input,13,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getOpSingleAssignAccess().getEqualsSignKeyword()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleOpSingleAssign"


    // $ANTLR start "entryRuleOpMultiAssign"
    // InternalXcore.g:875:1: entryRuleOpMultiAssign : ruleOpMultiAssign EOF ;
    public final void entryRuleOpMultiAssign() throws RecognitionException {
        try {
            // InternalXcore.g:876:1: ( ruleOpMultiAssign EOF )
            // InternalXcore.g:877:1: ruleOpMultiAssign EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOpMultiAssignRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_1);
            ruleOpMultiAssign();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getOpMultiAssignRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleOpMultiAssign"


    // $ANTLR start "ruleOpMultiAssign"
    // InternalXcore.g:884:1: ruleOpMultiAssign : ( ( rule__OpMultiAssign__Alternatives ) ) ;
    public final void ruleOpMultiAssign() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:888:2: ( ( ( rule__OpMultiAssign__Alternatives ) ) )
            // InternalXcore.g:889:1: ( ( rule__OpMultiAssign__Alternatives ) )
            {
            // InternalXcore.g:889:1: ( ( rule__OpMultiAssign__Alternatives ) )
            // InternalXcore.g:890:1: ( rule__OpMultiAssign__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOpMultiAssignAccess().getAlternatives()); 
            }
            // InternalXcore.g:891:1: ( rule__OpMultiAssign__Alternatives )
            // InternalXcore.g:891:2: rule__OpMultiAssign__Alternatives
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__OpMultiAssign__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getOpMultiAssignAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleOpMultiAssign"


    // $ANTLR start "entryRuleXOrExpression"
    // InternalXcore.g:903:1: entryRuleXOrExpression : ruleXOrExpression EOF ;
    public final void entryRuleXOrExpression() throws RecognitionException {
        try {
            // InternalXcore.g:904:1: ( ruleXOrExpression EOF )
            // InternalXcore.g:905:1: ruleXOrExpression EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOrExpressionRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_1);
            ruleXOrExpression();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXOrExpressionRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleXOrExpression"


    // $ANTLR start "ruleXOrExpression"
    // InternalXcore.g:912:1: ruleXOrExpression : ( ( rule__XOrExpression__Group__0 ) ) ;
    public final void ruleXOrExpression() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:916:2: ( ( ( rule__XOrExpression__Group__0 ) ) )
            // InternalXcore.g:917:1: ( ( rule__XOrExpression__Group__0 ) )
            {
            // InternalXcore.g:917:1: ( ( rule__XOrExpression__Group__0 ) )
            // InternalXcore.g:918:1: ( rule__XOrExpression__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOrExpressionAccess().getGroup()); 
            }
            // InternalXcore.g:919:1: ( rule__XOrExpression__Group__0 )
            // InternalXcore.g:919:2: rule__XOrExpression__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XOrExpression__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXOrExpressionAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleXOrExpression"


    // $ANTLR start "entryRuleOpOr"
    // InternalXcore.g:931:1: entryRuleOpOr : ruleOpOr EOF ;
    public final void entryRuleOpOr() throws RecognitionException {
        try {
            // InternalXcore.g:932:1: ( ruleOpOr EOF )
            // InternalXcore.g:933:1: ruleOpOr EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOpOrRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_1);
            ruleOpOr();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getOpOrRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleOpOr"


    // $ANTLR start "ruleOpOr"
    // InternalXcore.g:940:1: ruleOpOr : ( '||' ) ;
    public final void ruleOpOr() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:944:2: ( ( '||' ) )
            // InternalXcore.g:945:1: ( '||' )
            {
            // InternalXcore.g:945:1: ( '||' )
            // InternalXcore.g:946:1: '||'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOpOrAccess().getVerticalLineVerticalLineKeyword()); 
            }
            match(input,14,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getOpOrAccess().getVerticalLineVerticalLineKeyword()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleOpOr"


    // $ANTLR start "entryRuleXAndExpression"
    // InternalXcore.g:961:1: entryRuleXAndExpression : ruleXAndExpression EOF ;
    public final void entryRuleXAndExpression() throws RecognitionException {
        try {
            // InternalXcore.g:962:1: ( ruleXAndExpression EOF )
            // InternalXcore.g:963:1: ruleXAndExpression EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAndExpressionRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_1);
            ruleXAndExpression();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAndExpressionRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleXAndExpression"


    // $ANTLR start "ruleXAndExpression"
    // InternalXcore.g:970:1: ruleXAndExpression : ( ( rule__XAndExpression__Group__0 ) ) ;
    public final void ruleXAndExpression() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:974:2: ( ( ( rule__XAndExpression__Group__0 ) ) )
            // InternalXcore.g:975:1: ( ( rule__XAndExpression__Group__0 ) )
            {
            // InternalXcore.g:975:1: ( ( rule__XAndExpression__Group__0 ) )
            // InternalXcore.g:976:1: ( rule__XAndExpression__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAndExpressionAccess().getGroup()); 
            }
            // InternalXcore.g:977:1: ( rule__XAndExpression__Group__0 )
            // InternalXcore.g:977:2: rule__XAndExpression__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XAndExpression__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAndExpressionAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleXAndExpression"


    // $ANTLR start "entryRuleOpAnd"
    // InternalXcore.g:989:1: entryRuleOpAnd : ruleOpAnd EOF ;
    public final void entryRuleOpAnd() throws RecognitionException {
        try {
            // InternalXcore.g:990:1: ( ruleOpAnd EOF )
            // InternalXcore.g:991:1: ruleOpAnd EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOpAndRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_1);
            ruleOpAnd();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getOpAndRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleOpAnd"


    // $ANTLR start "ruleOpAnd"
    // InternalXcore.g:998:1: ruleOpAnd : ( '&&' ) ;
    public final void ruleOpAnd() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:1002:2: ( ( '&&' ) )
            // InternalXcore.g:1003:1: ( '&&' )
            {
            // InternalXcore.g:1003:1: ( '&&' )
            // InternalXcore.g:1004:1: '&&'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOpAndAccess().getAmpersandAmpersandKeyword()); 
            }
            match(input,15,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getOpAndAccess().getAmpersandAmpersandKeyword()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleOpAnd"


    // $ANTLR start "entryRuleXEqualityExpression"
    // InternalXcore.g:1019:1: entryRuleXEqualityExpression : ruleXEqualityExpression EOF ;
    public final void entryRuleXEqualityExpression() throws RecognitionException {
        try {
            // InternalXcore.g:1020:1: ( ruleXEqualityExpression EOF )
            // InternalXcore.g:1021:1: ruleXEqualityExpression EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXEqualityExpressionRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_1);
            ruleXEqualityExpression();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXEqualityExpressionRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleXEqualityExpression"


    // $ANTLR start "ruleXEqualityExpression"
    // InternalXcore.g:1028:1: ruleXEqualityExpression : ( ( rule__XEqualityExpression__Group__0 ) ) ;
    public final void ruleXEqualityExpression() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:1032:2: ( ( ( rule__XEqualityExpression__Group__0 ) ) )
            // InternalXcore.g:1033:1: ( ( rule__XEqualityExpression__Group__0 ) )
            {
            // InternalXcore.g:1033:1: ( ( rule__XEqualityExpression__Group__0 ) )
            // InternalXcore.g:1034:1: ( rule__XEqualityExpression__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXEqualityExpressionAccess().getGroup()); 
            }
            // InternalXcore.g:1035:1: ( rule__XEqualityExpression__Group__0 )
            // InternalXcore.g:1035:2: rule__XEqualityExpression__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XEqualityExpression__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXEqualityExpressionAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleXEqualityExpression"


    // $ANTLR start "entryRuleOpEquality"
    // InternalXcore.g:1047:1: entryRuleOpEquality : ruleOpEquality EOF ;
    public final void entryRuleOpEquality() throws RecognitionException {
        try {
            // InternalXcore.g:1048:1: ( ruleOpEquality EOF )
            // InternalXcore.g:1049:1: ruleOpEquality EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOpEqualityRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_1);
            ruleOpEquality();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getOpEqualityRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleOpEquality"


    // $ANTLR start "ruleOpEquality"
    // InternalXcore.g:1056:1: ruleOpEquality : ( ( rule__OpEquality__Alternatives ) ) ;
    public final void ruleOpEquality() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:1060:2: ( ( ( rule__OpEquality__Alternatives ) ) )
            // InternalXcore.g:1061:1: ( ( rule__OpEquality__Alternatives ) )
            {
            // InternalXcore.g:1061:1: ( ( rule__OpEquality__Alternatives ) )
            // InternalXcore.g:1062:1: ( rule__OpEquality__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOpEqualityAccess().getAlternatives()); 
            }
            // InternalXcore.g:1063:1: ( rule__OpEquality__Alternatives )
            // InternalXcore.g:1063:2: rule__OpEquality__Alternatives
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__OpEquality__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getOpEqualityAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleOpEquality"


    // $ANTLR start "entryRuleXRelationalExpression"
    // InternalXcore.g:1075:1: entryRuleXRelationalExpression : ruleXRelationalExpression EOF ;
    public final void entryRuleXRelationalExpression() throws RecognitionException {
        try {
            // InternalXcore.g:1076:1: ( ruleXRelationalExpression EOF )
            // InternalXcore.g:1077:1: ruleXRelationalExpression EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXRelationalExpressionRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_1);
            ruleXRelationalExpression();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXRelationalExpressionRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleXRelationalExpression"


    // $ANTLR start "ruleXRelationalExpression"
    // InternalXcore.g:1084:1: ruleXRelationalExpression : ( ( rule__XRelationalExpression__Group__0 ) ) ;
    public final void ruleXRelationalExpression() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:1088:2: ( ( ( rule__XRelationalExpression__Group__0 ) ) )
            // InternalXcore.g:1089:1: ( ( rule__XRelationalExpression__Group__0 ) )
            {
            // InternalXcore.g:1089:1: ( ( rule__XRelationalExpression__Group__0 ) )
            // InternalXcore.g:1090:1: ( rule__XRelationalExpression__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXRelationalExpressionAccess().getGroup()); 
            }
            // InternalXcore.g:1091:1: ( rule__XRelationalExpression__Group__0 )
            // InternalXcore.g:1091:2: rule__XRelationalExpression__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XRelationalExpression__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXRelationalExpressionAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleXRelationalExpression"


    // $ANTLR start "entryRuleOpCompare"
    // InternalXcore.g:1103:1: entryRuleOpCompare : ruleOpCompare EOF ;
    public final void entryRuleOpCompare() throws RecognitionException {
        try {
            // InternalXcore.g:1104:1: ( ruleOpCompare EOF )
            // InternalXcore.g:1105:1: ruleOpCompare EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOpCompareRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_1);
            ruleOpCompare();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getOpCompareRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleOpCompare"


    // $ANTLR start "ruleOpCompare"
    // InternalXcore.g:1112:1: ruleOpCompare : ( ( rule__OpCompare__Alternatives ) ) ;
    public final void ruleOpCompare() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:1116:2: ( ( ( rule__OpCompare__Alternatives ) ) )
            // InternalXcore.g:1117:1: ( ( rule__OpCompare__Alternatives ) )
            {
            // InternalXcore.g:1117:1: ( ( rule__OpCompare__Alternatives ) )
            // InternalXcore.g:1118:1: ( rule__OpCompare__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOpCompareAccess().getAlternatives()); 
            }
            // InternalXcore.g:1119:1: ( rule__OpCompare__Alternatives )
            // InternalXcore.g:1119:2: rule__OpCompare__Alternatives
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__OpCompare__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getOpCompareAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleOpCompare"


    // $ANTLR start "entryRuleXOtherOperatorExpression"
    // InternalXcore.g:1131:1: entryRuleXOtherOperatorExpression : ruleXOtherOperatorExpression EOF ;
    public final void entryRuleXOtherOperatorExpression() throws RecognitionException {
        try {
            // InternalXcore.g:1132:1: ( ruleXOtherOperatorExpression EOF )
            // InternalXcore.g:1133:1: ruleXOtherOperatorExpression EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOtherOperatorExpressionRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_1);
            ruleXOtherOperatorExpression();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXOtherOperatorExpressionRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleXOtherOperatorExpression"


    // $ANTLR start "ruleXOtherOperatorExpression"
    // InternalXcore.g:1140:1: ruleXOtherOperatorExpression : ( ( rule__XOtherOperatorExpression__Group__0 ) ) ;
    public final void ruleXOtherOperatorExpression() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:1144:2: ( ( ( rule__XOtherOperatorExpression__Group__0 ) ) )
            // InternalXcore.g:1145:1: ( ( rule__XOtherOperatorExpression__Group__0 ) )
            {
            // InternalXcore.g:1145:1: ( ( rule__XOtherOperatorExpression__Group__0 ) )
            // InternalXcore.g:1146:1: ( rule__XOtherOperatorExpression__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOtherOperatorExpressionAccess().getGroup()); 
            }
            // InternalXcore.g:1147:1: ( rule__XOtherOperatorExpression__Group__0 )
            // InternalXcore.g:1147:2: rule__XOtherOperatorExpression__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XOtherOperatorExpression__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXOtherOperatorExpressionAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleXOtherOperatorExpression"


    // $ANTLR start "entryRuleOpOther"
    // InternalXcore.g:1159:1: entryRuleOpOther : ruleOpOther EOF ;
    public final void entryRuleOpOther() throws RecognitionException {
        try {
            // InternalXcore.g:1160:1: ( ruleOpOther EOF )
            // InternalXcore.g:1161:1: ruleOpOther EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOpOtherRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_1);
            ruleOpOther();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getOpOtherRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleOpOther"


    // $ANTLR start "ruleOpOther"
    // InternalXcore.g:1168:1: ruleOpOther : ( ( rule__OpOther__Alternatives ) ) ;
    public final void ruleOpOther() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:1172:2: ( ( ( rule__OpOther__Alternatives ) ) )
            // InternalXcore.g:1173:1: ( ( rule__OpOther__Alternatives ) )
            {
            // InternalXcore.g:1173:1: ( ( rule__OpOther__Alternatives ) )
            // InternalXcore.g:1174:1: ( rule__OpOther__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOpOtherAccess().getAlternatives()); 
            }
            // InternalXcore.g:1175:1: ( rule__OpOther__Alternatives )
            // InternalXcore.g:1175:2: rule__OpOther__Alternatives
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__OpOther__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getOpOtherAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleOpOther"


    // $ANTLR start "entryRuleXAdditiveExpression"
    // InternalXcore.g:1187:1: entryRuleXAdditiveExpression : ruleXAdditiveExpression EOF ;
    public final void entryRuleXAdditiveExpression() throws RecognitionException {
        try {
            // InternalXcore.g:1188:1: ( ruleXAdditiveExpression EOF )
            // InternalXcore.g:1189:1: ruleXAdditiveExpression EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAdditiveExpressionRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_1);
            ruleXAdditiveExpression();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAdditiveExpressionRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleXAdditiveExpression"


    // $ANTLR start "ruleXAdditiveExpression"
    // InternalXcore.g:1196:1: ruleXAdditiveExpression : ( ( rule__XAdditiveExpression__Group__0 ) ) ;
    public final void ruleXAdditiveExpression() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:1200:2: ( ( ( rule__XAdditiveExpression__Group__0 ) ) )
            // InternalXcore.g:1201:1: ( ( rule__XAdditiveExpression__Group__0 ) )
            {
            // InternalXcore.g:1201:1: ( ( rule__XAdditiveExpression__Group__0 ) )
            // InternalXcore.g:1202:1: ( rule__XAdditiveExpression__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAdditiveExpressionAccess().getGroup()); 
            }
            // InternalXcore.g:1203:1: ( rule__XAdditiveExpression__Group__0 )
            // InternalXcore.g:1203:2: rule__XAdditiveExpression__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XAdditiveExpression__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAdditiveExpressionAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleXAdditiveExpression"


    // $ANTLR start "entryRuleOpAdd"
    // InternalXcore.g:1215:1: entryRuleOpAdd : ruleOpAdd EOF ;
    public final void entryRuleOpAdd() throws RecognitionException {
        try {
            // InternalXcore.g:1216:1: ( ruleOpAdd EOF )
            // InternalXcore.g:1217:1: ruleOpAdd EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOpAddRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_1);
            ruleOpAdd();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getOpAddRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleOpAdd"


    // $ANTLR start "ruleOpAdd"
    // InternalXcore.g:1224:1: ruleOpAdd : ( ( rule__OpAdd__Alternatives ) ) ;
    public final void ruleOpAdd() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:1228:2: ( ( ( rule__OpAdd__Alternatives ) ) )
            // InternalXcore.g:1229:1: ( ( rule__OpAdd__Alternatives ) )
            {
            // InternalXcore.g:1229:1: ( ( rule__OpAdd__Alternatives ) )
            // InternalXcore.g:1230:1: ( rule__OpAdd__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOpAddAccess().getAlternatives()); 
            }
            // InternalXcore.g:1231:1: ( rule__OpAdd__Alternatives )
            // InternalXcore.g:1231:2: rule__OpAdd__Alternatives
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__OpAdd__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getOpAddAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleOpAdd"


    // $ANTLR start "entryRuleXMultiplicativeExpression"
    // InternalXcore.g:1243:1: entryRuleXMultiplicativeExpression : ruleXMultiplicativeExpression EOF ;
    public final void entryRuleXMultiplicativeExpression() throws RecognitionException {
        try {
            // InternalXcore.g:1244:1: ( ruleXMultiplicativeExpression EOF )
            // InternalXcore.g:1245:1: ruleXMultiplicativeExpression EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMultiplicativeExpressionRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_1);
            ruleXMultiplicativeExpression();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXMultiplicativeExpressionRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleXMultiplicativeExpression"


    // $ANTLR start "ruleXMultiplicativeExpression"
    // InternalXcore.g:1252:1: ruleXMultiplicativeExpression : ( ( rule__XMultiplicativeExpression__Group__0 ) ) ;
    public final void ruleXMultiplicativeExpression() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:1256:2: ( ( ( rule__XMultiplicativeExpression__Group__0 ) ) )
            // InternalXcore.g:1257:1: ( ( rule__XMultiplicativeExpression__Group__0 ) )
            {
            // InternalXcore.g:1257:1: ( ( rule__XMultiplicativeExpression__Group__0 ) )
            // InternalXcore.g:1258:1: ( rule__XMultiplicativeExpression__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMultiplicativeExpressionAccess().getGroup()); 
            }
            // InternalXcore.g:1259:1: ( rule__XMultiplicativeExpression__Group__0 )
            // InternalXcore.g:1259:2: rule__XMultiplicativeExpression__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XMultiplicativeExpression__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXMultiplicativeExpressionAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleXMultiplicativeExpression"


    // $ANTLR start "entryRuleOpMulti"
    // InternalXcore.g:1271:1: entryRuleOpMulti : ruleOpMulti EOF ;
    public final void entryRuleOpMulti() throws RecognitionException {
        try {
            // InternalXcore.g:1272:1: ( ruleOpMulti EOF )
            // InternalXcore.g:1273:1: ruleOpMulti EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOpMultiRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_1);
            ruleOpMulti();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getOpMultiRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleOpMulti"


    // $ANTLR start "ruleOpMulti"
    // InternalXcore.g:1280:1: ruleOpMulti : ( ( rule__OpMulti__Alternatives ) ) ;
    public final void ruleOpMulti() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:1284:2: ( ( ( rule__OpMulti__Alternatives ) ) )
            // InternalXcore.g:1285:1: ( ( rule__OpMulti__Alternatives ) )
            {
            // InternalXcore.g:1285:1: ( ( rule__OpMulti__Alternatives ) )
            // InternalXcore.g:1286:1: ( rule__OpMulti__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOpMultiAccess().getAlternatives()); 
            }
            // InternalXcore.g:1287:1: ( rule__OpMulti__Alternatives )
            // InternalXcore.g:1287:2: rule__OpMulti__Alternatives
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__OpMulti__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getOpMultiAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleOpMulti"


    // $ANTLR start "entryRuleXUnaryOperation"
    // InternalXcore.g:1299:1: entryRuleXUnaryOperation : ruleXUnaryOperation EOF ;
    public final void entryRuleXUnaryOperation() throws RecognitionException {
        try {
            // InternalXcore.g:1300:1: ( ruleXUnaryOperation EOF )
            // InternalXcore.g:1301:1: ruleXUnaryOperation EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXUnaryOperationRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_1);
            ruleXUnaryOperation();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXUnaryOperationRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleXUnaryOperation"


    // $ANTLR start "ruleXUnaryOperation"
    // InternalXcore.g:1308:1: ruleXUnaryOperation : ( ( rule__XUnaryOperation__Alternatives ) ) ;
    public final void ruleXUnaryOperation() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:1312:2: ( ( ( rule__XUnaryOperation__Alternatives ) ) )
            // InternalXcore.g:1313:1: ( ( rule__XUnaryOperation__Alternatives ) )
            {
            // InternalXcore.g:1313:1: ( ( rule__XUnaryOperation__Alternatives ) )
            // InternalXcore.g:1314:1: ( rule__XUnaryOperation__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXUnaryOperationAccess().getAlternatives()); 
            }
            // InternalXcore.g:1315:1: ( rule__XUnaryOperation__Alternatives )
            // InternalXcore.g:1315:2: rule__XUnaryOperation__Alternatives
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XUnaryOperation__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXUnaryOperationAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleXUnaryOperation"


    // $ANTLR start "entryRuleOpUnary"
    // InternalXcore.g:1327:1: entryRuleOpUnary : ruleOpUnary EOF ;
    public final void entryRuleOpUnary() throws RecognitionException {
        try {
            // InternalXcore.g:1328:1: ( ruleOpUnary EOF )
            // InternalXcore.g:1329:1: ruleOpUnary EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOpUnaryRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_1);
            ruleOpUnary();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getOpUnaryRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleOpUnary"


    // $ANTLR start "ruleOpUnary"
    // InternalXcore.g:1336:1: ruleOpUnary : ( ( rule__OpUnary__Alternatives ) ) ;
    public final void ruleOpUnary() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:1340:2: ( ( ( rule__OpUnary__Alternatives ) ) )
            // InternalXcore.g:1341:1: ( ( rule__OpUnary__Alternatives ) )
            {
            // InternalXcore.g:1341:1: ( ( rule__OpUnary__Alternatives ) )
            // InternalXcore.g:1342:1: ( rule__OpUnary__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOpUnaryAccess().getAlternatives()); 
            }
            // InternalXcore.g:1343:1: ( rule__OpUnary__Alternatives )
            // InternalXcore.g:1343:2: rule__OpUnary__Alternatives
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__OpUnary__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getOpUnaryAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleOpUnary"


    // $ANTLR start "entryRuleXCastedExpression"
    // InternalXcore.g:1355:1: entryRuleXCastedExpression : ruleXCastedExpression EOF ;
    public final void entryRuleXCastedExpression() throws RecognitionException {
        try {
            // InternalXcore.g:1356:1: ( ruleXCastedExpression EOF )
            // InternalXcore.g:1357:1: ruleXCastedExpression EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXCastedExpressionRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_1);
            ruleXCastedExpression();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXCastedExpressionRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleXCastedExpression"


    // $ANTLR start "ruleXCastedExpression"
    // InternalXcore.g:1364:1: ruleXCastedExpression : ( ( rule__XCastedExpression__Group__0 ) ) ;
    public final void ruleXCastedExpression() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:1368:2: ( ( ( rule__XCastedExpression__Group__0 ) ) )
            // InternalXcore.g:1369:1: ( ( rule__XCastedExpression__Group__0 ) )
            {
            // InternalXcore.g:1369:1: ( ( rule__XCastedExpression__Group__0 ) )
            // InternalXcore.g:1370:1: ( rule__XCastedExpression__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXCastedExpressionAccess().getGroup()); 
            }
            // InternalXcore.g:1371:1: ( rule__XCastedExpression__Group__0 )
            // InternalXcore.g:1371:2: rule__XCastedExpression__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XCastedExpression__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXCastedExpressionAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleXCastedExpression"


    // $ANTLR start "entryRuleXPostfixOperation"
    // InternalXcore.g:1383:1: entryRuleXPostfixOperation : ruleXPostfixOperation EOF ;
    public final void entryRuleXPostfixOperation() throws RecognitionException {
        try {
            // InternalXcore.g:1384:1: ( ruleXPostfixOperation EOF )
            // InternalXcore.g:1385:1: ruleXPostfixOperation EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXPostfixOperationRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_1);
            ruleXPostfixOperation();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXPostfixOperationRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleXPostfixOperation"


    // $ANTLR start "ruleXPostfixOperation"
    // InternalXcore.g:1392:1: ruleXPostfixOperation : ( ( rule__XPostfixOperation__Group__0 ) ) ;
    public final void ruleXPostfixOperation() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:1396:2: ( ( ( rule__XPostfixOperation__Group__0 ) ) )
            // InternalXcore.g:1397:1: ( ( rule__XPostfixOperation__Group__0 ) )
            {
            // InternalXcore.g:1397:1: ( ( rule__XPostfixOperation__Group__0 ) )
            // InternalXcore.g:1398:1: ( rule__XPostfixOperation__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXPostfixOperationAccess().getGroup()); 
            }
            // InternalXcore.g:1399:1: ( rule__XPostfixOperation__Group__0 )
            // InternalXcore.g:1399:2: rule__XPostfixOperation__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XPostfixOperation__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXPostfixOperationAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleXPostfixOperation"


    // $ANTLR start "entryRuleOpPostfix"
    // InternalXcore.g:1411:1: entryRuleOpPostfix : ruleOpPostfix EOF ;
    public final void entryRuleOpPostfix() throws RecognitionException {
        try {
            // InternalXcore.g:1412:1: ( ruleOpPostfix EOF )
            // InternalXcore.g:1413:1: ruleOpPostfix EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOpPostfixRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_1);
            ruleOpPostfix();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getOpPostfixRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleOpPostfix"


    // $ANTLR start "ruleOpPostfix"
    // InternalXcore.g:1420:1: ruleOpPostfix : ( ( rule__OpPostfix__Alternatives ) ) ;
    public final void ruleOpPostfix() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:1424:2: ( ( ( rule__OpPostfix__Alternatives ) ) )
            // InternalXcore.g:1425:1: ( ( rule__OpPostfix__Alternatives ) )
            {
            // InternalXcore.g:1425:1: ( ( rule__OpPostfix__Alternatives ) )
            // InternalXcore.g:1426:1: ( rule__OpPostfix__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOpPostfixAccess().getAlternatives()); 
            }
            // InternalXcore.g:1427:1: ( rule__OpPostfix__Alternatives )
            // InternalXcore.g:1427:2: rule__OpPostfix__Alternatives
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__OpPostfix__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getOpPostfixAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleOpPostfix"


    // $ANTLR start "entryRuleXMemberFeatureCall"
    // InternalXcore.g:1439:1: entryRuleXMemberFeatureCall : ruleXMemberFeatureCall EOF ;
    public final void entryRuleXMemberFeatureCall() throws RecognitionException {
        try {
            // InternalXcore.g:1440:1: ( ruleXMemberFeatureCall EOF )
            // InternalXcore.g:1441:1: ruleXMemberFeatureCall EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberFeatureCallRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_1);
            ruleXMemberFeatureCall();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXMemberFeatureCallRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleXMemberFeatureCall"


    // $ANTLR start "ruleXMemberFeatureCall"
    // InternalXcore.g:1448:1: ruleXMemberFeatureCall : ( ( rule__XMemberFeatureCall__Group__0 ) ) ;
    public final void ruleXMemberFeatureCall() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:1452:2: ( ( ( rule__XMemberFeatureCall__Group__0 ) ) )
            // InternalXcore.g:1453:1: ( ( rule__XMemberFeatureCall__Group__0 ) )
            {
            // InternalXcore.g:1453:1: ( ( rule__XMemberFeatureCall__Group__0 ) )
            // InternalXcore.g:1454:1: ( rule__XMemberFeatureCall__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberFeatureCallAccess().getGroup()); 
            }
            // InternalXcore.g:1455:1: ( rule__XMemberFeatureCall__Group__0 )
            // InternalXcore.g:1455:2: rule__XMemberFeatureCall__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XMemberFeatureCall__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXMemberFeatureCallAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleXMemberFeatureCall"


    // $ANTLR start "entryRuleXPrimaryExpression"
    // InternalXcore.g:1467:1: entryRuleXPrimaryExpression : ruleXPrimaryExpression EOF ;
    public final void entryRuleXPrimaryExpression() throws RecognitionException {
        try {
            // InternalXcore.g:1468:1: ( ruleXPrimaryExpression EOF )
            // InternalXcore.g:1469:1: ruleXPrimaryExpression EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXPrimaryExpressionRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_1);
            ruleXPrimaryExpression();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXPrimaryExpressionRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleXPrimaryExpression"


    // $ANTLR start "ruleXPrimaryExpression"
    // InternalXcore.g:1476:1: ruleXPrimaryExpression : ( ( rule__XPrimaryExpression__Alternatives ) ) ;
    public final void ruleXPrimaryExpression() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:1480:2: ( ( ( rule__XPrimaryExpression__Alternatives ) ) )
            // InternalXcore.g:1481:1: ( ( rule__XPrimaryExpression__Alternatives ) )
            {
            // InternalXcore.g:1481:1: ( ( rule__XPrimaryExpression__Alternatives ) )
            // InternalXcore.g:1482:1: ( rule__XPrimaryExpression__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXPrimaryExpressionAccess().getAlternatives()); 
            }
            // InternalXcore.g:1483:1: ( rule__XPrimaryExpression__Alternatives )
            // InternalXcore.g:1483:2: rule__XPrimaryExpression__Alternatives
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XPrimaryExpression__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXPrimaryExpressionAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleXPrimaryExpression"


    // $ANTLR start "entryRuleXLiteral"
    // InternalXcore.g:1495:1: entryRuleXLiteral : ruleXLiteral EOF ;
    public final void entryRuleXLiteral() throws RecognitionException {
        try {
            // InternalXcore.g:1496:1: ( ruleXLiteral EOF )
            // InternalXcore.g:1497:1: ruleXLiteral EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXLiteralRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_1);
            ruleXLiteral();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXLiteralRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleXLiteral"


    // $ANTLR start "ruleXLiteral"
    // InternalXcore.g:1504:1: ruleXLiteral : ( ( rule__XLiteral__Alternatives ) ) ;
    public final void ruleXLiteral() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:1508:2: ( ( ( rule__XLiteral__Alternatives ) ) )
            // InternalXcore.g:1509:1: ( ( rule__XLiteral__Alternatives ) )
            {
            // InternalXcore.g:1509:1: ( ( rule__XLiteral__Alternatives ) )
            // InternalXcore.g:1510:1: ( rule__XLiteral__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXLiteralAccess().getAlternatives()); 
            }
            // InternalXcore.g:1511:1: ( rule__XLiteral__Alternatives )
            // InternalXcore.g:1511:2: rule__XLiteral__Alternatives
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XLiteral__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXLiteralAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleXLiteral"


    // $ANTLR start "entryRuleXCollectionLiteral"
    // InternalXcore.g:1523:1: entryRuleXCollectionLiteral : ruleXCollectionLiteral EOF ;
    public final void entryRuleXCollectionLiteral() throws RecognitionException {
        try {
            // InternalXcore.g:1524:1: ( ruleXCollectionLiteral EOF )
            // InternalXcore.g:1525:1: ruleXCollectionLiteral EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXCollectionLiteralRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_1);
            ruleXCollectionLiteral();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXCollectionLiteralRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleXCollectionLiteral"


    // $ANTLR start "ruleXCollectionLiteral"
    // InternalXcore.g:1532:1: ruleXCollectionLiteral : ( ( rule__XCollectionLiteral__Alternatives ) ) ;
    public final void ruleXCollectionLiteral() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:1536:2: ( ( ( rule__XCollectionLiteral__Alternatives ) ) )
            // InternalXcore.g:1537:1: ( ( rule__XCollectionLiteral__Alternatives ) )
            {
            // InternalXcore.g:1537:1: ( ( rule__XCollectionLiteral__Alternatives ) )
            // InternalXcore.g:1538:1: ( rule__XCollectionLiteral__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXCollectionLiteralAccess().getAlternatives()); 
            }
            // InternalXcore.g:1539:1: ( rule__XCollectionLiteral__Alternatives )
            // InternalXcore.g:1539:2: rule__XCollectionLiteral__Alternatives
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XCollectionLiteral__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXCollectionLiteralAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleXCollectionLiteral"


    // $ANTLR start "entryRuleXSetLiteral"
    // InternalXcore.g:1551:1: entryRuleXSetLiteral : ruleXSetLiteral EOF ;
    public final void entryRuleXSetLiteral() throws RecognitionException {
        try {
            // InternalXcore.g:1552:1: ( ruleXSetLiteral EOF )
            // InternalXcore.g:1553:1: ruleXSetLiteral EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSetLiteralRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_1);
            ruleXSetLiteral();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXSetLiteralRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleXSetLiteral"


    // $ANTLR start "ruleXSetLiteral"
    // InternalXcore.g:1560:1: ruleXSetLiteral : ( ( rule__XSetLiteral__Group__0 ) ) ;
    public final void ruleXSetLiteral() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:1564:2: ( ( ( rule__XSetLiteral__Group__0 ) ) )
            // InternalXcore.g:1565:1: ( ( rule__XSetLiteral__Group__0 ) )
            {
            // InternalXcore.g:1565:1: ( ( rule__XSetLiteral__Group__0 ) )
            // InternalXcore.g:1566:1: ( rule__XSetLiteral__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSetLiteralAccess().getGroup()); 
            }
            // InternalXcore.g:1567:1: ( rule__XSetLiteral__Group__0 )
            // InternalXcore.g:1567:2: rule__XSetLiteral__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XSetLiteral__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXSetLiteralAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleXSetLiteral"


    // $ANTLR start "entryRuleXListLiteral"
    // InternalXcore.g:1579:1: entryRuleXListLiteral : ruleXListLiteral EOF ;
    public final void entryRuleXListLiteral() throws RecognitionException {
        try {
            // InternalXcore.g:1580:1: ( ruleXListLiteral EOF )
            // InternalXcore.g:1581:1: ruleXListLiteral EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXListLiteralRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_1);
            ruleXListLiteral();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXListLiteralRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleXListLiteral"


    // $ANTLR start "ruleXListLiteral"
    // InternalXcore.g:1588:1: ruleXListLiteral : ( ( rule__XListLiteral__Group__0 ) ) ;
    public final void ruleXListLiteral() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:1592:2: ( ( ( rule__XListLiteral__Group__0 ) ) )
            // InternalXcore.g:1593:1: ( ( rule__XListLiteral__Group__0 ) )
            {
            // InternalXcore.g:1593:1: ( ( rule__XListLiteral__Group__0 ) )
            // InternalXcore.g:1594:1: ( rule__XListLiteral__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXListLiteralAccess().getGroup()); 
            }
            // InternalXcore.g:1595:1: ( rule__XListLiteral__Group__0 )
            // InternalXcore.g:1595:2: rule__XListLiteral__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XListLiteral__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXListLiteralAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleXListLiteral"


    // $ANTLR start "entryRuleXClosure"
    // InternalXcore.g:1607:1: entryRuleXClosure : ruleXClosure EOF ;
    public final void entryRuleXClosure() throws RecognitionException {
        try {
            // InternalXcore.g:1608:1: ( ruleXClosure EOF )
            // InternalXcore.g:1609:1: ruleXClosure EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClosureRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_1);
            ruleXClosure();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXClosureRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleXClosure"


    // $ANTLR start "ruleXClosure"
    // InternalXcore.g:1616:1: ruleXClosure : ( ( rule__XClosure__Group__0 ) ) ;
    public final void ruleXClosure() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:1620:2: ( ( ( rule__XClosure__Group__0 ) ) )
            // InternalXcore.g:1621:1: ( ( rule__XClosure__Group__0 ) )
            {
            // InternalXcore.g:1621:1: ( ( rule__XClosure__Group__0 ) )
            // InternalXcore.g:1622:1: ( rule__XClosure__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClosureAccess().getGroup()); 
            }
            // InternalXcore.g:1623:1: ( rule__XClosure__Group__0 )
            // InternalXcore.g:1623:2: rule__XClosure__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XClosure__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXClosureAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleXClosure"


    // $ANTLR start "entryRuleXExpressionInClosure"
    // InternalXcore.g:1635:1: entryRuleXExpressionInClosure : ruleXExpressionInClosure EOF ;
    public final void entryRuleXExpressionInClosure() throws RecognitionException {
        try {
            // InternalXcore.g:1636:1: ( ruleXExpressionInClosure EOF )
            // InternalXcore.g:1637:1: ruleXExpressionInClosure EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXExpressionInClosureRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_1);
            ruleXExpressionInClosure();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXExpressionInClosureRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleXExpressionInClosure"


    // $ANTLR start "ruleXExpressionInClosure"
    // InternalXcore.g:1644:1: ruleXExpressionInClosure : ( ( rule__XExpressionInClosure__Group__0 ) ) ;
    public final void ruleXExpressionInClosure() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:1648:2: ( ( ( rule__XExpressionInClosure__Group__0 ) ) )
            // InternalXcore.g:1649:1: ( ( rule__XExpressionInClosure__Group__0 ) )
            {
            // InternalXcore.g:1649:1: ( ( rule__XExpressionInClosure__Group__0 ) )
            // InternalXcore.g:1650:1: ( rule__XExpressionInClosure__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXExpressionInClosureAccess().getGroup()); 
            }
            // InternalXcore.g:1651:1: ( rule__XExpressionInClosure__Group__0 )
            // InternalXcore.g:1651:2: rule__XExpressionInClosure__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XExpressionInClosure__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXExpressionInClosureAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleXExpressionInClosure"


    // $ANTLR start "entryRuleXShortClosure"
    // InternalXcore.g:1663:1: entryRuleXShortClosure : ruleXShortClosure EOF ;
    public final void entryRuleXShortClosure() throws RecognitionException {
        try {
            // InternalXcore.g:1664:1: ( ruleXShortClosure EOF )
            // InternalXcore.g:1665:1: ruleXShortClosure EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXShortClosureRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_1);
            ruleXShortClosure();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXShortClosureRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleXShortClosure"


    // $ANTLR start "ruleXShortClosure"
    // InternalXcore.g:1672:1: ruleXShortClosure : ( ( rule__XShortClosure__Group__0 ) ) ;
    public final void ruleXShortClosure() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:1676:2: ( ( ( rule__XShortClosure__Group__0 ) ) )
            // InternalXcore.g:1677:1: ( ( rule__XShortClosure__Group__0 ) )
            {
            // InternalXcore.g:1677:1: ( ( rule__XShortClosure__Group__0 ) )
            // InternalXcore.g:1678:1: ( rule__XShortClosure__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXShortClosureAccess().getGroup()); 
            }
            // InternalXcore.g:1679:1: ( rule__XShortClosure__Group__0 )
            // InternalXcore.g:1679:2: rule__XShortClosure__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XShortClosure__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXShortClosureAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleXShortClosure"


    // $ANTLR start "entryRuleXParenthesizedExpression"
    // InternalXcore.g:1691:1: entryRuleXParenthesizedExpression : ruleXParenthesizedExpression EOF ;
    public final void entryRuleXParenthesizedExpression() throws RecognitionException {
        try {
            // InternalXcore.g:1692:1: ( ruleXParenthesizedExpression EOF )
            // InternalXcore.g:1693:1: ruleXParenthesizedExpression EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXParenthesizedExpressionRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_1);
            ruleXParenthesizedExpression();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXParenthesizedExpressionRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleXParenthesizedExpression"


    // $ANTLR start "ruleXParenthesizedExpression"
    // InternalXcore.g:1700:1: ruleXParenthesizedExpression : ( ( rule__XParenthesizedExpression__Group__0 ) ) ;
    public final void ruleXParenthesizedExpression() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:1704:2: ( ( ( rule__XParenthesizedExpression__Group__0 ) ) )
            // InternalXcore.g:1705:1: ( ( rule__XParenthesizedExpression__Group__0 ) )
            {
            // InternalXcore.g:1705:1: ( ( rule__XParenthesizedExpression__Group__0 ) )
            // InternalXcore.g:1706:1: ( rule__XParenthesizedExpression__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXParenthesizedExpressionAccess().getGroup()); 
            }
            // InternalXcore.g:1707:1: ( rule__XParenthesizedExpression__Group__0 )
            // InternalXcore.g:1707:2: rule__XParenthesizedExpression__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XParenthesizedExpression__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXParenthesizedExpressionAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleXParenthesizedExpression"


    // $ANTLR start "entryRuleXIfExpression"
    // InternalXcore.g:1719:1: entryRuleXIfExpression : ruleXIfExpression EOF ;
    public final void entryRuleXIfExpression() throws RecognitionException {
        try {
            // InternalXcore.g:1720:1: ( ruleXIfExpression EOF )
            // InternalXcore.g:1721:1: ruleXIfExpression EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXIfExpressionRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_1);
            ruleXIfExpression();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXIfExpressionRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleXIfExpression"


    // $ANTLR start "ruleXIfExpression"
    // InternalXcore.g:1728:1: ruleXIfExpression : ( ( rule__XIfExpression__Group__0 ) ) ;
    public final void ruleXIfExpression() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:1732:2: ( ( ( rule__XIfExpression__Group__0 ) ) )
            // InternalXcore.g:1733:1: ( ( rule__XIfExpression__Group__0 ) )
            {
            // InternalXcore.g:1733:1: ( ( rule__XIfExpression__Group__0 ) )
            // InternalXcore.g:1734:1: ( rule__XIfExpression__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXIfExpressionAccess().getGroup()); 
            }
            // InternalXcore.g:1735:1: ( rule__XIfExpression__Group__0 )
            // InternalXcore.g:1735:2: rule__XIfExpression__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XIfExpression__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXIfExpressionAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleXIfExpression"


    // $ANTLR start "entryRuleXSwitchExpression"
    // InternalXcore.g:1747:1: entryRuleXSwitchExpression : ruleXSwitchExpression EOF ;
    public final void entryRuleXSwitchExpression() throws RecognitionException {
        try {
            // InternalXcore.g:1748:1: ( ruleXSwitchExpression EOF )
            // InternalXcore.g:1749:1: ruleXSwitchExpression EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSwitchExpressionRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_1);
            ruleXSwitchExpression();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXSwitchExpressionRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleXSwitchExpression"


    // $ANTLR start "ruleXSwitchExpression"
    // InternalXcore.g:1756:1: ruleXSwitchExpression : ( ( rule__XSwitchExpression__Group__0 ) ) ;
    public final void ruleXSwitchExpression() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:1760:2: ( ( ( rule__XSwitchExpression__Group__0 ) ) )
            // InternalXcore.g:1761:1: ( ( rule__XSwitchExpression__Group__0 ) )
            {
            // InternalXcore.g:1761:1: ( ( rule__XSwitchExpression__Group__0 ) )
            // InternalXcore.g:1762:1: ( rule__XSwitchExpression__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSwitchExpressionAccess().getGroup()); 
            }
            // InternalXcore.g:1763:1: ( rule__XSwitchExpression__Group__0 )
            // InternalXcore.g:1763:2: rule__XSwitchExpression__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XSwitchExpression__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXSwitchExpressionAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleXSwitchExpression"


    // $ANTLR start "entryRuleXCasePart"
    // InternalXcore.g:1775:1: entryRuleXCasePart : ruleXCasePart EOF ;
    public final void entryRuleXCasePart() throws RecognitionException {
        try {
            // InternalXcore.g:1776:1: ( ruleXCasePart EOF )
            // InternalXcore.g:1777:1: ruleXCasePart EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXCasePartRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_1);
            ruleXCasePart();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXCasePartRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleXCasePart"


    // $ANTLR start "ruleXCasePart"
    // InternalXcore.g:1784:1: ruleXCasePart : ( ( rule__XCasePart__Group__0 ) ) ;
    public final void ruleXCasePart() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:1788:2: ( ( ( rule__XCasePart__Group__0 ) ) )
            // InternalXcore.g:1789:1: ( ( rule__XCasePart__Group__0 ) )
            {
            // InternalXcore.g:1789:1: ( ( rule__XCasePart__Group__0 ) )
            // InternalXcore.g:1790:1: ( rule__XCasePart__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXCasePartAccess().getGroup()); 
            }
            // InternalXcore.g:1791:1: ( rule__XCasePart__Group__0 )
            // InternalXcore.g:1791:2: rule__XCasePart__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XCasePart__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXCasePartAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleXCasePart"


    // $ANTLR start "entryRuleXForLoopExpression"
    // InternalXcore.g:1803:1: entryRuleXForLoopExpression : ruleXForLoopExpression EOF ;
    public final void entryRuleXForLoopExpression() throws RecognitionException {
        try {
            // InternalXcore.g:1804:1: ( ruleXForLoopExpression EOF )
            // InternalXcore.g:1805:1: ruleXForLoopExpression EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXForLoopExpressionRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_1);
            ruleXForLoopExpression();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXForLoopExpressionRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleXForLoopExpression"


    // $ANTLR start "ruleXForLoopExpression"
    // InternalXcore.g:1812:1: ruleXForLoopExpression : ( ( rule__XForLoopExpression__Group__0 ) ) ;
    public final void ruleXForLoopExpression() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:1816:2: ( ( ( rule__XForLoopExpression__Group__0 ) ) )
            // InternalXcore.g:1817:1: ( ( rule__XForLoopExpression__Group__0 ) )
            {
            // InternalXcore.g:1817:1: ( ( rule__XForLoopExpression__Group__0 ) )
            // InternalXcore.g:1818:1: ( rule__XForLoopExpression__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXForLoopExpressionAccess().getGroup()); 
            }
            // InternalXcore.g:1819:1: ( rule__XForLoopExpression__Group__0 )
            // InternalXcore.g:1819:2: rule__XForLoopExpression__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XForLoopExpression__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXForLoopExpressionAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleXForLoopExpression"


    // $ANTLR start "entryRuleXBasicForLoopExpression"
    // InternalXcore.g:1831:1: entryRuleXBasicForLoopExpression : ruleXBasicForLoopExpression EOF ;
    public final void entryRuleXBasicForLoopExpression() throws RecognitionException {
        try {
            // InternalXcore.g:1832:1: ( ruleXBasicForLoopExpression EOF )
            // InternalXcore.g:1833:1: ruleXBasicForLoopExpression EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXBasicForLoopExpressionRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_1);
            ruleXBasicForLoopExpression();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXBasicForLoopExpressionRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleXBasicForLoopExpression"


    // $ANTLR start "ruleXBasicForLoopExpression"
    // InternalXcore.g:1840:1: ruleXBasicForLoopExpression : ( ( rule__XBasicForLoopExpression__Group__0 ) ) ;
    public final void ruleXBasicForLoopExpression() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:1844:2: ( ( ( rule__XBasicForLoopExpression__Group__0 ) ) )
            // InternalXcore.g:1845:1: ( ( rule__XBasicForLoopExpression__Group__0 ) )
            {
            // InternalXcore.g:1845:1: ( ( rule__XBasicForLoopExpression__Group__0 ) )
            // InternalXcore.g:1846:1: ( rule__XBasicForLoopExpression__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXBasicForLoopExpressionAccess().getGroup()); 
            }
            // InternalXcore.g:1847:1: ( rule__XBasicForLoopExpression__Group__0 )
            // InternalXcore.g:1847:2: rule__XBasicForLoopExpression__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XBasicForLoopExpression__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXBasicForLoopExpressionAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleXBasicForLoopExpression"


    // $ANTLR start "entryRuleXWhileExpression"
    // InternalXcore.g:1859:1: entryRuleXWhileExpression : ruleXWhileExpression EOF ;
    public final void entryRuleXWhileExpression() throws RecognitionException {
        try {
            // InternalXcore.g:1860:1: ( ruleXWhileExpression EOF )
            // InternalXcore.g:1861:1: ruleXWhileExpression EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXWhileExpressionRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_1);
            ruleXWhileExpression();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXWhileExpressionRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleXWhileExpression"


    // $ANTLR start "ruleXWhileExpression"
    // InternalXcore.g:1868:1: ruleXWhileExpression : ( ( rule__XWhileExpression__Group__0 ) ) ;
    public final void ruleXWhileExpression() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:1872:2: ( ( ( rule__XWhileExpression__Group__0 ) ) )
            // InternalXcore.g:1873:1: ( ( rule__XWhileExpression__Group__0 ) )
            {
            // InternalXcore.g:1873:1: ( ( rule__XWhileExpression__Group__0 ) )
            // InternalXcore.g:1874:1: ( rule__XWhileExpression__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXWhileExpressionAccess().getGroup()); 
            }
            // InternalXcore.g:1875:1: ( rule__XWhileExpression__Group__0 )
            // InternalXcore.g:1875:2: rule__XWhileExpression__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XWhileExpression__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXWhileExpressionAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleXWhileExpression"


    // $ANTLR start "entryRuleXDoWhileExpression"
    // InternalXcore.g:1887:1: entryRuleXDoWhileExpression : ruleXDoWhileExpression EOF ;
    public final void entryRuleXDoWhileExpression() throws RecognitionException {
        try {
            // InternalXcore.g:1888:1: ( ruleXDoWhileExpression EOF )
            // InternalXcore.g:1889:1: ruleXDoWhileExpression EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXDoWhileExpressionRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_1);
            ruleXDoWhileExpression();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXDoWhileExpressionRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleXDoWhileExpression"


    // $ANTLR start "ruleXDoWhileExpression"
    // InternalXcore.g:1896:1: ruleXDoWhileExpression : ( ( rule__XDoWhileExpression__Group__0 ) ) ;
    public final void ruleXDoWhileExpression() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:1900:2: ( ( ( rule__XDoWhileExpression__Group__0 ) ) )
            // InternalXcore.g:1901:1: ( ( rule__XDoWhileExpression__Group__0 ) )
            {
            // InternalXcore.g:1901:1: ( ( rule__XDoWhileExpression__Group__0 ) )
            // InternalXcore.g:1902:1: ( rule__XDoWhileExpression__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXDoWhileExpressionAccess().getGroup()); 
            }
            // InternalXcore.g:1903:1: ( rule__XDoWhileExpression__Group__0 )
            // InternalXcore.g:1903:2: rule__XDoWhileExpression__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XDoWhileExpression__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXDoWhileExpressionAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleXDoWhileExpression"


    // $ANTLR start "entryRuleXExpressionOrVarDeclaration"
    // InternalXcore.g:1915:1: entryRuleXExpressionOrVarDeclaration : ruleXExpressionOrVarDeclaration EOF ;
    public final void entryRuleXExpressionOrVarDeclaration() throws RecognitionException {
        try {
            // InternalXcore.g:1916:1: ( ruleXExpressionOrVarDeclaration EOF )
            // InternalXcore.g:1917:1: ruleXExpressionOrVarDeclaration EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXExpressionOrVarDeclarationRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_1);
            ruleXExpressionOrVarDeclaration();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXExpressionOrVarDeclarationRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleXExpressionOrVarDeclaration"


    // $ANTLR start "ruleXExpressionOrVarDeclaration"
    // InternalXcore.g:1924:1: ruleXExpressionOrVarDeclaration : ( ( rule__XExpressionOrVarDeclaration__Alternatives ) ) ;
    public final void ruleXExpressionOrVarDeclaration() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:1928:2: ( ( ( rule__XExpressionOrVarDeclaration__Alternatives ) ) )
            // InternalXcore.g:1929:1: ( ( rule__XExpressionOrVarDeclaration__Alternatives ) )
            {
            // InternalXcore.g:1929:1: ( ( rule__XExpressionOrVarDeclaration__Alternatives ) )
            // InternalXcore.g:1930:1: ( rule__XExpressionOrVarDeclaration__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXExpressionOrVarDeclarationAccess().getAlternatives()); 
            }
            // InternalXcore.g:1931:1: ( rule__XExpressionOrVarDeclaration__Alternatives )
            // InternalXcore.g:1931:2: rule__XExpressionOrVarDeclaration__Alternatives
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XExpressionOrVarDeclaration__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXExpressionOrVarDeclarationAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleXExpressionOrVarDeclaration"


    // $ANTLR start "entryRuleXVariableDeclaration"
    // InternalXcore.g:1943:1: entryRuleXVariableDeclaration : ruleXVariableDeclaration EOF ;
    public final void entryRuleXVariableDeclaration() throws RecognitionException {
        try {
            // InternalXcore.g:1944:1: ( ruleXVariableDeclaration EOF )
            // InternalXcore.g:1945:1: ruleXVariableDeclaration EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXVariableDeclarationRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_1);
            ruleXVariableDeclaration();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXVariableDeclarationRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleXVariableDeclaration"


    // $ANTLR start "ruleXVariableDeclaration"
    // InternalXcore.g:1952:1: ruleXVariableDeclaration : ( ( rule__XVariableDeclaration__Group__0 ) ) ;
    public final void ruleXVariableDeclaration() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:1956:2: ( ( ( rule__XVariableDeclaration__Group__0 ) ) )
            // InternalXcore.g:1957:1: ( ( rule__XVariableDeclaration__Group__0 ) )
            {
            // InternalXcore.g:1957:1: ( ( rule__XVariableDeclaration__Group__0 ) )
            // InternalXcore.g:1958:1: ( rule__XVariableDeclaration__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXVariableDeclarationAccess().getGroup()); 
            }
            // InternalXcore.g:1959:1: ( rule__XVariableDeclaration__Group__0 )
            // InternalXcore.g:1959:2: rule__XVariableDeclaration__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XVariableDeclaration__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXVariableDeclarationAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleXVariableDeclaration"


    // $ANTLR start "entryRuleJvmFormalParameter"
    // InternalXcore.g:1971:1: entryRuleJvmFormalParameter : ruleJvmFormalParameter EOF ;
    public final void entryRuleJvmFormalParameter() throws RecognitionException {
        try {
            // InternalXcore.g:1972:1: ( ruleJvmFormalParameter EOF )
            // InternalXcore.g:1973:1: ruleJvmFormalParameter EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmFormalParameterRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_1);
            ruleJvmFormalParameter();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getJvmFormalParameterRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleJvmFormalParameter"


    // $ANTLR start "ruleJvmFormalParameter"
    // InternalXcore.g:1980:1: ruleJvmFormalParameter : ( ( rule__JvmFormalParameter__Group__0 ) ) ;
    public final void ruleJvmFormalParameter() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:1984:2: ( ( ( rule__JvmFormalParameter__Group__0 ) ) )
            // InternalXcore.g:1985:1: ( ( rule__JvmFormalParameter__Group__0 ) )
            {
            // InternalXcore.g:1985:1: ( ( rule__JvmFormalParameter__Group__0 ) )
            // InternalXcore.g:1986:1: ( rule__JvmFormalParameter__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmFormalParameterAccess().getGroup()); 
            }
            // InternalXcore.g:1987:1: ( rule__JvmFormalParameter__Group__0 )
            // InternalXcore.g:1987:2: rule__JvmFormalParameter__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__JvmFormalParameter__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getJvmFormalParameterAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleJvmFormalParameter"


    // $ANTLR start "entryRuleFullJvmFormalParameter"
    // InternalXcore.g:1999:1: entryRuleFullJvmFormalParameter : ruleFullJvmFormalParameter EOF ;
    public final void entryRuleFullJvmFormalParameter() throws RecognitionException {
        try {
            // InternalXcore.g:2000:1: ( ruleFullJvmFormalParameter EOF )
            // InternalXcore.g:2001:1: ruleFullJvmFormalParameter EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getFullJvmFormalParameterRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_1);
            ruleFullJvmFormalParameter();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getFullJvmFormalParameterRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleFullJvmFormalParameter"


    // $ANTLR start "ruleFullJvmFormalParameter"
    // InternalXcore.g:2008:1: ruleFullJvmFormalParameter : ( ( rule__FullJvmFormalParameter__Group__0 ) ) ;
    public final void ruleFullJvmFormalParameter() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:2012:2: ( ( ( rule__FullJvmFormalParameter__Group__0 ) ) )
            // InternalXcore.g:2013:1: ( ( rule__FullJvmFormalParameter__Group__0 ) )
            {
            // InternalXcore.g:2013:1: ( ( rule__FullJvmFormalParameter__Group__0 ) )
            // InternalXcore.g:2014:1: ( rule__FullJvmFormalParameter__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getFullJvmFormalParameterAccess().getGroup()); 
            }
            // InternalXcore.g:2015:1: ( rule__FullJvmFormalParameter__Group__0 )
            // InternalXcore.g:2015:2: rule__FullJvmFormalParameter__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__FullJvmFormalParameter__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getFullJvmFormalParameterAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleFullJvmFormalParameter"


    // $ANTLR start "entryRuleXFeatureCall"
    // InternalXcore.g:2027:1: entryRuleXFeatureCall : ruleXFeatureCall EOF ;
    public final void entryRuleXFeatureCall() throws RecognitionException {
        try {
            // InternalXcore.g:2028:1: ( ruleXFeatureCall EOF )
            // InternalXcore.g:2029:1: ruleXFeatureCall EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXFeatureCallRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_1);
            ruleXFeatureCall();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXFeatureCallRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleXFeatureCall"


    // $ANTLR start "ruleXFeatureCall"
    // InternalXcore.g:2036:1: ruleXFeatureCall : ( ( rule__XFeatureCall__Group__0 ) ) ;
    public final void ruleXFeatureCall() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:2040:2: ( ( ( rule__XFeatureCall__Group__0 ) ) )
            // InternalXcore.g:2041:1: ( ( rule__XFeatureCall__Group__0 ) )
            {
            // InternalXcore.g:2041:1: ( ( rule__XFeatureCall__Group__0 ) )
            // InternalXcore.g:2042:1: ( rule__XFeatureCall__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXFeatureCallAccess().getGroup()); 
            }
            // InternalXcore.g:2043:1: ( rule__XFeatureCall__Group__0 )
            // InternalXcore.g:2043:2: rule__XFeatureCall__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XFeatureCall__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXFeatureCallAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleXFeatureCall"


    // $ANTLR start "entryRuleIdOrSuper"
    // InternalXcore.g:2055:1: entryRuleIdOrSuper : ruleIdOrSuper EOF ;
    public final void entryRuleIdOrSuper() throws RecognitionException {
        try {
            // InternalXcore.g:2056:1: ( ruleIdOrSuper EOF )
            // InternalXcore.g:2057:1: ruleIdOrSuper EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getIdOrSuperRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_1);
            ruleIdOrSuper();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getIdOrSuperRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleIdOrSuper"


    // $ANTLR start "ruleIdOrSuper"
    // InternalXcore.g:2064:1: ruleIdOrSuper : ( ( rule__IdOrSuper__Alternatives ) ) ;
    public final void ruleIdOrSuper() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:2068:2: ( ( ( rule__IdOrSuper__Alternatives ) ) )
            // InternalXcore.g:2069:1: ( ( rule__IdOrSuper__Alternatives ) )
            {
            // InternalXcore.g:2069:1: ( ( rule__IdOrSuper__Alternatives ) )
            // InternalXcore.g:2070:1: ( rule__IdOrSuper__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getIdOrSuperAccess().getAlternatives()); 
            }
            // InternalXcore.g:2071:1: ( rule__IdOrSuper__Alternatives )
            // InternalXcore.g:2071:2: rule__IdOrSuper__Alternatives
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__IdOrSuper__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getIdOrSuperAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleIdOrSuper"


    // $ANTLR start "entryRuleXConstructorCall"
    // InternalXcore.g:2083:1: entryRuleXConstructorCall : ruleXConstructorCall EOF ;
    public final void entryRuleXConstructorCall() throws RecognitionException {
        try {
            // InternalXcore.g:2084:1: ( ruleXConstructorCall EOF )
            // InternalXcore.g:2085:1: ruleXConstructorCall EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXConstructorCallRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_1);
            ruleXConstructorCall();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXConstructorCallRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleXConstructorCall"


    // $ANTLR start "ruleXConstructorCall"
    // InternalXcore.g:2092:1: ruleXConstructorCall : ( ( rule__XConstructorCall__Group__0 ) ) ;
    public final void ruleXConstructorCall() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:2096:2: ( ( ( rule__XConstructorCall__Group__0 ) ) )
            // InternalXcore.g:2097:1: ( ( rule__XConstructorCall__Group__0 ) )
            {
            // InternalXcore.g:2097:1: ( ( rule__XConstructorCall__Group__0 ) )
            // InternalXcore.g:2098:1: ( rule__XConstructorCall__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXConstructorCallAccess().getGroup()); 
            }
            // InternalXcore.g:2099:1: ( rule__XConstructorCall__Group__0 )
            // InternalXcore.g:2099:2: rule__XConstructorCall__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XConstructorCall__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXConstructorCallAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleXConstructorCall"


    // $ANTLR start "entryRuleXBooleanLiteral"
    // InternalXcore.g:2111:1: entryRuleXBooleanLiteral : ruleXBooleanLiteral EOF ;
    public final void entryRuleXBooleanLiteral() throws RecognitionException {
        try {
            // InternalXcore.g:2112:1: ( ruleXBooleanLiteral EOF )
            // InternalXcore.g:2113:1: ruleXBooleanLiteral EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXBooleanLiteralRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_1);
            ruleXBooleanLiteral();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXBooleanLiteralRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleXBooleanLiteral"


    // $ANTLR start "ruleXBooleanLiteral"
    // InternalXcore.g:2120:1: ruleXBooleanLiteral : ( ( rule__XBooleanLiteral__Group__0 ) ) ;
    public final void ruleXBooleanLiteral() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:2124:2: ( ( ( rule__XBooleanLiteral__Group__0 ) ) )
            // InternalXcore.g:2125:1: ( ( rule__XBooleanLiteral__Group__0 ) )
            {
            // InternalXcore.g:2125:1: ( ( rule__XBooleanLiteral__Group__0 ) )
            // InternalXcore.g:2126:1: ( rule__XBooleanLiteral__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXBooleanLiteralAccess().getGroup()); 
            }
            // InternalXcore.g:2127:1: ( rule__XBooleanLiteral__Group__0 )
            // InternalXcore.g:2127:2: rule__XBooleanLiteral__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XBooleanLiteral__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXBooleanLiteralAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleXBooleanLiteral"


    // $ANTLR start "entryRuleXNullLiteral"
    // InternalXcore.g:2139:1: entryRuleXNullLiteral : ruleXNullLiteral EOF ;
    public final void entryRuleXNullLiteral() throws RecognitionException {
        try {
            // InternalXcore.g:2140:1: ( ruleXNullLiteral EOF )
            // InternalXcore.g:2141:1: ruleXNullLiteral EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXNullLiteralRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_1);
            ruleXNullLiteral();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXNullLiteralRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleXNullLiteral"


    // $ANTLR start "ruleXNullLiteral"
    // InternalXcore.g:2148:1: ruleXNullLiteral : ( ( rule__XNullLiteral__Group__0 ) ) ;
    public final void ruleXNullLiteral() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:2152:2: ( ( ( rule__XNullLiteral__Group__0 ) ) )
            // InternalXcore.g:2153:1: ( ( rule__XNullLiteral__Group__0 ) )
            {
            // InternalXcore.g:2153:1: ( ( rule__XNullLiteral__Group__0 ) )
            // InternalXcore.g:2154:1: ( rule__XNullLiteral__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXNullLiteralAccess().getGroup()); 
            }
            // InternalXcore.g:2155:1: ( rule__XNullLiteral__Group__0 )
            // InternalXcore.g:2155:2: rule__XNullLiteral__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XNullLiteral__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXNullLiteralAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleXNullLiteral"


    // $ANTLR start "entryRuleXNumberLiteral"
    // InternalXcore.g:2167:1: entryRuleXNumberLiteral : ruleXNumberLiteral EOF ;
    public final void entryRuleXNumberLiteral() throws RecognitionException {
        try {
            // InternalXcore.g:2168:1: ( ruleXNumberLiteral EOF )
            // InternalXcore.g:2169:1: ruleXNumberLiteral EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXNumberLiteralRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_1);
            ruleXNumberLiteral();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXNumberLiteralRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleXNumberLiteral"


    // $ANTLR start "ruleXNumberLiteral"
    // InternalXcore.g:2176:1: ruleXNumberLiteral : ( ( rule__XNumberLiteral__Group__0 ) ) ;
    public final void ruleXNumberLiteral() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:2180:2: ( ( ( rule__XNumberLiteral__Group__0 ) ) )
            // InternalXcore.g:2181:1: ( ( rule__XNumberLiteral__Group__0 ) )
            {
            // InternalXcore.g:2181:1: ( ( rule__XNumberLiteral__Group__0 ) )
            // InternalXcore.g:2182:1: ( rule__XNumberLiteral__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXNumberLiteralAccess().getGroup()); 
            }
            // InternalXcore.g:2183:1: ( rule__XNumberLiteral__Group__0 )
            // InternalXcore.g:2183:2: rule__XNumberLiteral__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XNumberLiteral__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXNumberLiteralAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleXNumberLiteral"


    // $ANTLR start "entryRuleXStringLiteral"
    // InternalXcore.g:2195:1: entryRuleXStringLiteral : ruleXStringLiteral EOF ;
    public final void entryRuleXStringLiteral() throws RecognitionException {
        try {
            // InternalXcore.g:2196:1: ( ruleXStringLiteral EOF )
            // InternalXcore.g:2197:1: ruleXStringLiteral EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXStringLiteralRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_1);
            ruleXStringLiteral();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXStringLiteralRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleXStringLiteral"


    // $ANTLR start "ruleXStringLiteral"
    // InternalXcore.g:2204:1: ruleXStringLiteral : ( ( rule__XStringLiteral__Group__0 ) ) ;
    public final void ruleXStringLiteral() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:2208:2: ( ( ( rule__XStringLiteral__Group__0 ) ) )
            // InternalXcore.g:2209:1: ( ( rule__XStringLiteral__Group__0 ) )
            {
            // InternalXcore.g:2209:1: ( ( rule__XStringLiteral__Group__0 ) )
            // InternalXcore.g:2210:1: ( rule__XStringLiteral__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXStringLiteralAccess().getGroup()); 
            }
            // InternalXcore.g:2211:1: ( rule__XStringLiteral__Group__0 )
            // InternalXcore.g:2211:2: rule__XStringLiteral__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XStringLiteral__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXStringLiteralAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleXStringLiteral"


    // $ANTLR start "entryRuleXTypeLiteral"
    // InternalXcore.g:2223:1: entryRuleXTypeLiteral : ruleXTypeLiteral EOF ;
    public final void entryRuleXTypeLiteral() throws RecognitionException {
        try {
            // InternalXcore.g:2224:1: ( ruleXTypeLiteral EOF )
            // InternalXcore.g:2225:1: ruleXTypeLiteral EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXTypeLiteralRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_1);
            ruleXTypeLiteral();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXTypeLiteralRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleXTypeLiteral"


    // $ANTLR start "ruleXTypeLiteral"
    // InternalXcore.g:2232:1: ruleXTypeLiteral : ( ( rule__XTypeLiteral__Group__0 ) ) ;
    public final void ruleXTypeLiteral() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:2236:2: ( ( ( rule__XTypeLiteral__Group__0 ) ) )
            // InternalXcore.g:2237:1: ( ( rule__XTypeLiteral__Group__0 ) )
            {
            // InternalXcore.g:2237:1: ( ( rule__XTypeLiteral__Group__0 ) )
            // InternalXcore.g:2238:1: ( rule__XTypeLiteral__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXTypeLiteralAccess().getGroup()); 
            }
            // InternalXcore.g:2239:1: ( rule__XTypeLiteral__Group__0 )
            // InternalXcore.g:2239:2: rule__XTypeLiteral__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XTypeLiteral__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXTypeLiteralAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleXTypeLiteral"


    // $ANTLR start "entryRuleXThrowExpression"
    // InternalXcore.g:2251:1: entryRuleXThrowExpression : ruleXThrowExpression EOF ;
    public final void entryRuleXThrowExpression() throws RecognitionException {
        try {
            // InternalXcore.g:2252:1: ( ruleXThrowExpression EOF )
            // InternalXcore.g:2253:1: ruleXThrowExpression EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXThrowExpressionRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_1);
            ruleXThrowExpression();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXThrowExpressionRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleXThrowExpression"


    // $ANTLR start "ruleXThrowExpression"
    // InternalXcore.g:2260:1: ruleXThrowExpression : ( ( rule__XThrowExpression__Group__0 ) ) ;
    public final void ruleXThrowExpression() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:2264:2: ( ( ( rule__XThrowExpression__Group__0 ) ) )
            // InternalXcore.g:2265:1: ( ( rule__XThrowExpression__Group__0 ) )
            {
            // InternalXcore.g:2265:1: ( ( rule__XThrowExpression__Group__0 ) )
            // InternalXcore.g:2266:1: ( rule__XThrowExpression__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXThrowExpressionAccess().getGroup()); 
            }
            // InternalXcore.g:2267:1: ( rule__XThrowExpression__Group__0 )
            // InternalXcore.g:2267:2: rule__XThrowExpression__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XThrowExpression__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXThrowExpressionAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleXThrowExpression"


    // $ANTLR start "entryRuleXReturnExpression"
    // InternalXcore.g:2279:1: entryRuleXReturnExpression : ruleXReturnExpression EOF ;
    public final void entryRuleXReturnExpression() throws RecognitionException {
        try {
            // InternalXcore.g:2280:1: ( ruleXReturnExpression EOF )
            // InternalXcore.g:2281:1: ruleXReturnExpression EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReturnExpressionRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_1);
            ruleXReturnExpression();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXReturnExpressionRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleXReturnExpression"


    // $ANTLR start "ruleXReturnExpression"
    // InternalXcore.g:2288:1: ruleXReturnExpression : ( ( rule__XReturnExpression__Group__0 ) ) ;
    public final void ruleXReturnExpression() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:2292:2: ( ( ( rule__XReturnExpression__Group__0 ) ) )
            // InternalXcore.g:2293:1: ( ( rule__XReturnExpression__Group__0 ) )
            {
            // InternalXcore.g:2293:1: ( ( rule__XReturnExpression__Group__0 ) )
            // InternalXcore.g:2294:1: ( rule__XReturnExpression__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReturnExpressionAccess().getGroup()); 
            }
            // InternalXcore.g:2295:1: ( rule__XReturnExpression__Group__0 )
            // InternalXcore.g:2295:2: rule__XReturnExpression__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XReturnExpression__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXReturnExpressionAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleXReturnExpression"


    // $ANTLR start "entryRuleXTryCatchFinallyExpression"
    // InternalXcore.g:2307:1: entryRuleXTryCatchFinallyExpression : ruleXTryCatchFinallyExpression EOF ;
    public final void entryRuleXTryCatchFinallyExpression() throws RecognitionException {
        try {
            // InternalXcore.g:2308:1: ( ruleXTryCatchFinallyExpression EOF )
            // InternalXcore.g:2309:1: ruleXTryCatchFinallyExpression EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXTryCatchFinallyExpressionRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_1);
            ruleXTryCatchFinallyExpression();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXTryCatchFinallyExpressionRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleXTryCatchFinallyExpression"


    // $ANTLR start "ruleXTryCatchFinallyExpression"
    // InternalXcore.g:2316:1: ruleXTryCatchFinallyExpression : ( ( rule__XTryCatchFinallyExpression__Group__0 ) ) ;
    public final void ruleXTryCatchFinallyExpression() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:2320:2: ( ( ( rule__XTryCatchFinallyExpression__Group__0 ) ) )
            // InternalXcore.g:2321:1: ( ( rule__XTryCatchFinallyExpression__Group__0 ) )
            {
            // InternalXcore.g:2321:1: ( ( rule__XTryCatchFinallyExpression__Group__0 ) )
            // InternalXcore.g:2322:1: ( rule__XTryCatchFinallyExpression__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup()); 
            }
            // InternalXcore.g:2323:1: ( rule__XTryCatchFinallyExpression__Group__0 )
            // InternalXcore.g:2323:2: rule__XTryCatchFinallyExpression__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XTryCatchFinallyExpression__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleXTryCatchFinallyExpression"


    // $ANTLR start "entryRuleXSynchronizedExpression"
    // InternalXcore.g:2335:1: entryRuleXSynchronizedExpression : ruleXSynchronizedExpression EOF ;
    public final void entryRuleXSynchronizedExpression() throws RecognitionException {
        try {
            // InternalXcore.g:2336:1: ( ruleXSynchronizedExpression EOF )
            // InternalXcore.g:2337:1: ruleXSynchronizedExpression EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSynchronizedExpressionRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_1);
            ruleXSynchronizedExpression();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXSynchronizedExpressionRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleXSynchronizedExpression"


    // $ANTLR start "ruleXSynchronizedExpression"
    // InternalXcore.g:2344:1: ruleXSynchronizedExpression : ( ( rule__XSynchronizedExpression__Group__0 ) ) ;
    public final void ruleXSynchronizedExpression() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:2348:2: ( ( ( rule__XSynchronizedExpression__Group__0 ) ) )
            // InternalXcore.g:2349:1: ( ( rule__XSynchronizedExpression__Group__0 ) )
            {
            // InternalXcore.g:2349:1: ( ( rule__XSynchronizedExpression__Group__0 ) )
            // InternalXcore.g:2350:1: ( rule__XSynchronizedExpression__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSynchronizedExpressionAccess().getGroup()); 
            }
            // InternalXcore.g:2351:1: ( rule__XSynchronizedExpression__Group__0 )
            // InternalXcore.g:2351:2: rule__XSynchronizedExpression__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XSynchronizedExpression__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXSynchronizedExpressionAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleXSynchronizedExpression"


    // $ANTLR start "entryRuleXCatchClause"
    // InternalXcore.g:2363:1: entryRuleXCatchClause : ruleXCatchClause EOF ;
    public final void entryRuleXCatchClause() throws RecognitionException {
        try {
            // InternalXcore.g:2364:1: ( ruleXCatchClause EOF )
            // InternalXcore.g:2365:1: ruleXCatchClause EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXCatchClauseRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_1);
            ruleXCatchClause();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXCatchClauseRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleXCatchClause"


    // $ANTLR start "ruleXCatchClause"
    // InternalXcore.g:2372:1: ruleXCatchClause : ( ( rule__XCatchClause__Group__0 ) ) ;
    public final void ruleXCatchClause() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:2376:2: ( ( ( rule__XCatchClause__Group__0 ) ) )
            // InternalXcore.g:2377:1: ( ( rule__XCatchClause__Group__0 ) )
            {
            // InternalXcore.g:2377:1: ( ( rule__XCatchClause__Group__0 ) )
            // InternalXcore.g:2378:1: ( rule__XCatchClause__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXCatchClauseAccess().getGroup()); 
            }
            // InternalXcore.g:2379:1: ( rule__XCatchClause__Group__0 )
            // InternalXcore.g:2379:2: rule__XCatchClause__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XCatchClause__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXCatchClauseAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleXCatchClause"


    // $ANTLR start "entryRuleQualifiedName"
    // InternalXcore.g:2391:1: entryRuleQualifiedName : ruleQualifiedName EOF ;
    public final void entryRuleQualifiedName() throws RecognitionException {
        try {
            // InternalXcore.g:2392:1: ( ruleQualifiedName EOF )
            // InternalXcore.g:2393:1: ruleQualifiedName EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getQualifiedNameRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_1);
            ruleQualifiedName();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getQualifiedNameRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleQualifiedName"


    // $ANTLR start "ruleQualifiedName"
    // InternalXcore.g:2400:1: ruleQualifiedName : ( ( rule__QualifiedName__Group__0 ) ) ;
    public final void ruleQualifiedName() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:2404:2: ( ( ( rule__QualifiedName__Group__0 ) ) )
            // InternalXcore.g:2405:1: ( ( rule__QualifiedName__Group__0 ) )
            {
            // InternalXcore.g:2405:1: ( ( rule__QualifiedName__Group__0 ) )
            // InternalXcore.g:2406:1: ( rule__QualifiedName__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getQualifiedNameAccess().getGroup()); 
            }
            // InternalXcore.g:2407:1: ( rule__QualifiedName__Group__0 )
            // InternalXcore.g:2407:2: rule__QualifiedName__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__QualifiedName__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getQualifiedNameAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleQualifiedName"


    // $ANTLR start "entryRuleNumber"
    // InternalXcore.g:2419:1: entryRuleNumber : ruleNumber EOF ;
    public final void entryRuleNumber() throws RecognitionException {

        	HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens();

        try {
            // InternalXcore.g:2423:1: ( ruleNumber EOF )
            // InternalXcore.g:2424:1: ruleNumber EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getNumberRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_1);
            ruleNumber();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getNumberRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	myHiddenTokenState.restore();

        }
        return ;
    }
    // $ANTLR end "entryRuleNumber"


    // $ANTLR start "ruleNumber"
    // InternalXcore.g:2434:1: ruleNumber : ( ( rule__Number__Alternatives ) ) ;
    public final void ruleNumber() throws RecognitionException {

        		HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens();
        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:2439:2: ( ( ( rule__Number__Alternatives ) ) )
            // InternalXcore.g:2440:1: ( ( rule__Number__Alternatives ) )
            {
            // InternalXcore.g:2440:1: ( ( rule__Number__Alternatives ) )
            // InternalXcore.g:2441:1: ( rule__Number__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getNumberAccess().getAlternatives()); 
            }
            // InternalXcore.g:2442:1: ( rule__Number__Alternatives )
            // InternalXcore.g:2442:2: rule__Number__Alternatives
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__Number__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getNumberAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);
            	myHiddenTokenState.restore();

        }
        return ;
    }
    // $ANTLR end "ruleNumber"


    // $ANTLR start "entryRuleJvmTypeReference"
    // InternalXcore.g:2457:1: entryRuleJvmTypeReference : ruleJvmTypeReference EOF ;
    public final void entryRuleJvmTypeReference() throws RecognitionException {
        try {
            // InternalXcore.g:2458:1: ( ruleJvmTypeReference EOF )
            // InternalXcore.g:2459:1: ruleJvmTypeReference EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmTypeReferenceRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_1);
            ruleJvmTypeReference();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getJvmTypeReferenceRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleJvmTypeReference"


    // $ANTLR start "ruleJvmTypeReference"
    // InternalXcore.g:2466:1: ruleJvmTypeReference : ( ( rule__JvmTypeReference__Alternatives ) ) ;
    public final void ruleJvmTypeReference() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:2470:2: ( ( ( rule__JvmTypeReference__Alternatives ) ) )
            // InternalXcore.g:2471:1: ( ( rule__JvmTypeReference__Alternatives ) )
            {
            // InternalXcore.g:2471:1: ( ( rule__JvmTypeReference__Alternatives ) )
            // InternalXcore.g:2472:1: ( rule__JvmTypeReference__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmTypeReferenceAccess().getAlternatives()); 
            }
            // InternalXcore.g:2473:1: ( rule__JvmTypeReference__Alternatives )
            // InternalXcore.g:2473:2: rule__JvmTypeReference__Alternatives
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__JvmTypeReference__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getJvmTypeReferenceAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleJvmTypeReference"


    // $ANTLR start "entryRuleArrayBrackets"
    // InternalXcore.g:2485:1: entryRuleArrayBrackets : ruleArrayBrackets EOF ;
    public final void entryRuleArrayBrackets() throws RecognitionException {
        try {
            // InternalXcore.g:2486:1: ( ruleArrayBrackets EOF )
            // InternalXcore.g:2487:1: ruleArrayBrackets EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getArrayBracketsRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_1);
            ruleArrayBrackets();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getArrayBracketsRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleArrayBrackets"


    // $ANTLR start "ruleArrayBrackets"
    // InternalXcore.g:2494:1: ruleArrayBrackets : ( ( rule__ArrayBrackets__Group__0 ) ) ;
    public final void ruleArrayBrackets() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:2498:2: ( ( ( rule__ArrayBrackets__Group__0 ) ) )
            // InternalXcore.g:2499:1: ( ( rule__ArrayBrackets__Group__0 ) )
            {
            // InternalXcore.g:2499:1: ( ( rule__ArrayBrackets__Group__0 ) )
            // InternalXcore.g:2500:1: ( rule__ArrayBrackets__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getArrayBracketsAccess().getGroup()); 
            }
            // InternalXcore.g:2501:1: ( rule__ArrayBrackets__Group__0 )
            // InternalXcore.g:2501:2: rule__ArrayBrackets__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__ArrayBrackets__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getArrayBracketsAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleArrayBrackets"


    // $ANTLR start "entryRuleXFunctionTypeRef"
    // InternalXcore.g:2513:1: entryRuleXFunctionTypeRef : ruleXFunctionTypeRef EOF ;
    public final void entryRuleXFunctionTypeRef() throws RecognitionException {
        try {
            // InternalXcore.g:2514:1: ( ruleXFunctionTypeRef EOF )
            // InternalXcore.g:2515:1: ruleXFunctionTypeRef EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXFunctionTypeRefRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_1);
            ruleXFunctionTypeRef();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXFunctionTypeRefRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleXFunctionTypeRef"


    // $ANTLR start "ruleXFunctionTypeRef"
    // InternalXcore.g:2522:1: ruleXFunctionTypeRef : ( ( rule__XFunctionTypeRef__Group__0 ) ) ;
    public final void ruleXFunctionTypeRef() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:2526:2: ( ( ( rule__XFunctionTypeRef__Group__0 ) ) )
            // InternalXcore.g:2527:1: ( ( rule__XFunctionTypeRef__Group__0 ) )
            {
            // InternalXcore.g:2527:1: ( ( rule__XFunctionTypeRef__Group__0 ) )
            // InternalXcore.g:2528:1: ( rule__XFunctionTypeRef__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXFunctionTypeRefAccess().getGroup()); 
            }
            // InternalXcore.g:2529:1: ( rule__XFunctionTypeRef__Group__0 )
            // InternalXcore.g:2529:2: rule__XFunctionTypeRef__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XFunctionTypeRef__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXFunctionTypeRefAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleXFunctionTypeRef"


    // $ANTLR start "entryRuleJvmParameterizedTypeReference"
    // InternalXcore.g:2541:1: entryRuleJvmParameterizedTypeReference : ruleJvmParameterizedTypeReference EOF ;
    public final void entryRuleJvmParameterizedTypeReference() throws RecognitionException {
        try {
            // InternalXcore.g:2542:1: ( ruleJvmParameterizedTypeReference EOF )
            // InternalXcore.g:2543:1: ruleJvmParameterizedTypeReference EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmParameterizedTypeReferenceRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_1);
            ruleJvmParameterizedTypeReference();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getJvmParameterizedTypeReferenceRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleJvmParameterizedTypeReference"


    // $ANTLR start "ruleJvmParameterizedTypeReference"
    // InternalXcore.g:2550:1: ruleJvmParameterizedTypeReference : ( ( rule__JvmParameterizedTypeReference__Group__0 ) ) ;
    public final void ruleJvmParameterizedTypeReference() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:2554:2: ( ( ( rule__JvmParameterizedTypeReference__Group__0 ) ) )
            // InternalXcore.g:2555:1: ( ( rule__JvmParameterizedTypeReference__Group__0 ) )
            {
            // InternalXcore.g:2555:1: ( ( rule__JvmParameterizedTypeReference__Group__0 ) )
            // InternalXcore.g:2556:1: ( rule__JvmParameterizedTypeReference__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup()); 
            }
            // InternalXcore.g:2557:1: ( rule__JvmParameterizedTypeReference__Group__0 )
            // InternalXcore.g:2557:2: rule__JvmParameterizedTypeReference__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__JvmParameterizedTypeReference__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleJvmParameterizedTypeReference"


    // $ANTLR start "entryRuleJvmArgumentTypeReference"
    // InternalXcore.g:2569:1: entryRuleJvmArgumentTypeReference : ruleJvmArgumentTypeReference EOF ;
    public final void entryRuleJvmArgumentTypeReference() throws RecognitionException {
        try {
            // InternalXcore.g:2570:1: ( ruleJvmArgumentTypeReference EOF )
            // InternalXcore.g:2571:1: ruleJvmArgumentTypeReference EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmArgumentTypeReferenceRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_1);
            ruleJvmArgumentTypeReference();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getJvmArgumentTypeReferenceRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleJvmArgumentTypeReference"


    // $ANTLR start "ruleJvmArgumentTypeReference"
    // InternalXcore.g:2578:1: ruleJvmArgumentTypeReference : ( ( rule__JvmArgumentTypeReference__Alternatives ) ) ;
    public final void ruleJvmArgumentTypeReference() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:2582:2: ( ( ( rule__JvmArgumentTypeReference__Alternatives ) ) )
            // InternalXcore.g:2583:1: ( ( rule__JvmArgumentTypeReference__Alternatives ) )
            {
            // InternalXcore.g:2583:1: ( ( rule__JvmArgumentTypeReference__Alternatives ) )
            // InternalXcore.g:2584:1: ( rule__JvmArgumentTypeReference__Alternatives )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmArgumentTypeReferenceAccess().getAlternatives()); 
            }
            // InternalXcore.g:2585:1: ( rule__JvmArgumentTypeReference__Alternatives )
            // InternalXcore.g:2585:2: rule__JvmArgumentTypeReference__Alternatives
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__JvmArgumentTypeReference__Alternatives();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getJvmArgumentTypeReferenceAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleJvmArgumentTypeReference"


    // $ANTLR start "entryRuleJvmWildcardTypeReference"
    // InternalXcore.g:2597:1: entryRuleJvmWildcardTypeReference : ruleJvmWildcardTypeReference EOF ;
    public final void entryRuleJvmWildcardTypeReference() throws RecognitionException {
        try {
            // InternalXcore.g:2598:1: ( ruleJvmWildcardTypeReference EOF )
            // InternalXcore.g:2599:1: ruleJvmWildcardTypeReference EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmWildcardTypeReferenceRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_1);
            ruleJvmWildcardTypeReference();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getJvmWildcardTypeReferenceRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleJvmWildcardTypeReference"


    // $ANTLR start "ruleJvmWildcardTypeReference"
    // InternalXcore.g:2606:1: ruleJvmWildcardTypeReference : ( ( rule__JvmWildcardTypeReference__Group__0 ) ) ;
    public final void ruleJvmWildcardTypeReference() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:2610:2: ( ( ( rule__JvmWildcardTypeReference__Group__0 ) ) )
            // InternalXcore.g:2611:1: ( ( rule__JvmWildcardTypeReference__Group__0 ) )
            {
            // InternalXcore.g:2611:1: ( ( rule__JvmWildcardTypeReference__Group__0 ) )
            // InternalXcore.g:2612:1: ( rule__JvmWildcardTypeReference__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmWildcardTypeReferenceAccess().getGroup()); 
            }
            // InternalXcore.g:2613:1: ( rule__JvmWildcardTypeReference__Group__0 )
            // InternalXcore.g:2613:2: rule__JvmWildcardTypeReference__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__JvmWildcardTypeReference__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getJvmWildcardTypeReferenceAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleJvmWildcardTypeReference"


    // $ANTLR start "entryRuleJvmUpperBound"
    // InternalXcore.g:2625:1: entryRuleJvmUpperBound : ruleJvmUpperBound EOF ;
    public final void entryRuleJvmUpperBound() throws RecognitionException {
        try {
            // InternalXcore.g:2626:1: ( ruleJvmUpperBound EOF )
            // InternalXcore.g:2627:1: ruleJvmUpperBound EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmUpperBoundRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_1);
            ruleJvmUpperBound();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getJvmUpperBoundRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleJvmUpperBound"


    // $ANTLR start "ruleJvmUpperBound"
    // InternalXcore.g:2634:1: ruleJvmUpperBound : ( ( rule__JvmUpperBound__Group__0 ) ) ;
    public final void ruleJvmUpperBound() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:2638:2: ( ( ( rule__JvmUpperBound__Group__0 ) ) )
            // InternalXcore.g:2639:1: ( ( rule__JvmUpperBound__Group__0 ) )
            {
            // InternalXcore.g:2639:1: ( ( rule__JvmUpperBound__Group__0 ) )
            // InternalXcore.g:2640:1: ( rule__JvmUpperBound__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmUpperBoundAccess().getGroup()); 
            }
            // InternalXcore.g:2641:1: ( rule__JvmUpperBound__Group__0 )
            // InternalXcore.g:2641:2: rule__JvmUpperBound__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__JvmUpperBound__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getJvmUpperBoundAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleJvmUpperBound"


    // $ANTLR start "entryRuleJvmUpperBoundAnded"
    // InternalXcore.g:2653:1: entryRuleJvmUpperBoundAnded : ruleJvmUpperBoundAnded EOF ;
    public final void entryRuleJvmUpperBoundAnded() throws RecognitionException {
        try {
            // InternalXcore.g:2654:1: ( ruleJvmUpperBoundAnded EOF )
            // InternalXcore.g:2655:1: ruleJvmUpperBoundAnded EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmUpperBoundAndedRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_1);
            ruleJvmUpperBoundAnded();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getJvmUpperBoundAndedRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleJvmUpperBoundAnded"


    // $ANTLR start "ruleJvmUpperBoundAnded"
    // InternalXcore.g:2662:1: ruleJvmUpperBoundAnded : ( ( rule__JvmUpperBoundAnded__Group__0 ) ) ;
    public final void ruleJvmUpperBoundAnded() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:2666:2: ( ( ( rule__JvmUpperBoundAnded__Group__0 ) ) )
            // InternalXcore.g:2667:1: ( ( rule__JvmUpperBoundAnded__Group__0 ) )
            {
            // InternalXcore.g:2667:1: ( ( rule__JvmUpperBoundAnded__Group__0 ) )
            // InternalXcore.g:2668:1: ( rule__JvmUpperBoundAnded__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmUpperBoundAndedAccess().getGroup()); 
            }
            // InternalXcore.g:2669:1: ( rule__JvmUpperBoundAnded__Group__0 )
            // InternalXcore.g:2669:2: rule__JvmUpperBoundAnded__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__JvmUpperBoundAnded__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getJvmUpperBoundAndedAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleJvmUpperBoundAnded"


    // $ANTLR start "entryRuleJvmLowerBound"
    // InternalXcore.g:2681:1: entryRuleJvmLowerBound : ruleJvmLowerBound EOF ;
    public final void entryRuleJvmLowerBound() throws RecognitionException {
        try {
            // InternalXcore.g:2682:1: ( ruleJvmLowerBound EOF )
            // InternalXcore.g:2683:1: ruleJvmLowerBound EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmLowerBoundRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_1);
            ruleJvmLowerBound();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getJvmLowerBoundRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleJvmLowerBound"


    // $ANTLR start "ruleJvmLowerBound"
    // InternalXcore.g:2690:1: ruleJvmLowerBound : ( ( rule__JvmLowerBound__Group__0 ) ) ;
    public final void ruleJvmLowerBound() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:2694:2: ( ( ( rule__JvmLowerBound__Group__0 ) ) )
            // InternalXcore.g:2695:1: ( ( rule__JvmLowerBound__Group__0 ) )
            {
            // InternalXcore.g:2695:1: ( ( rule__JvmLowerBound__Group__0 ) )
            // InternalXcore.g:2696:1: ( rule__JvmLowerBound__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmLowerBoundAccess().getGroup()); 
            }
            // InternalXcore.g:2697:1: ( rule__JvmLowerBound__Group__0 )
            // InternalXcore.g:2697:2: rule__JvmLowerBound__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__JvmLowerBound__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getJvmLowerBoundAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleJvmLowerBound"


    // $ANTLR start "entryRuleJvmLowerBoundAnded"
    // InternalXcore.g:2709:1: entryRuleJvmLowerBoundAnded : ruleJvmLowerBoundAnded EOF ;
    public final void entryRuleJvmLowerBoundAnded() throws RecognitionException {
        try {
            // InternalXcore.g:2710:1: ( ruleJvmLowerBoundAnded EOF )
            // InternalXcore.g:2711:1: ruleJvmLowerBoundAnded EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmLowerBoundAndedRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_1);
            ruleJvmLowerBoundAnded();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getJvmLowerBoundAndedRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleJvmLowerBoundAnded"


    // $ANTLR start "ruleJvmLowerBoundAnded"
    // InternalXcore.g:2718:1: ruleJvmLowerBoundAnded : ( ( rule__JvmLowerBoundAnded__Group__0 ) ) ;
    public final void ruleJvmLowerBoundAnded() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:2722:2: ( ( ( rule__JvmLowerBoundAnded__Group__0 ) ) )
            // InternalXcore.g:2723:1: ( ( rule__JvmLowerBoundAnded__Group__0 ) )
            {
            // InternalXcore.g:2723:1: ( ( rule__JvmLowerBoundAnded__Group__0 ) )
            // InternalXcore.g:2724:1: ( rule__JvmLowerBoundAnded__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmLowerBoundAndedAccess().getGroup()); 
            }
            // InternalXcore.g:2725:1: ( rule__JvmLowerBoundAnded__Group__0 )
            // InternalXcore.g:2725:2: rule__JvmLowerBoundAnded__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__JvmLowerBoundAnded__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getJvmLowerBoundAndedAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleJvmLowerBoundAnded"


    // $ANTLR start "entryRuleQualifiedNameWithWildcard"
    // InternalXcore.g:2739:1: entryRuleQualifiedNameWithWildcard : ruleQualifiedNameWithWildcard EOF ;
    public final void entryRuleQualifiedNameWithWildcard() throws RecognitionException {
        try {
            // InternalXcore.g:2740:1: ( ruleQualifiedNameWithWildcard EOF )
            // InternalXcore.g:2741:1: ruleQualifiedNameWithWildcard EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getQualifiedNameWithWildcardRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_1);
            ruleQualifiedNameWithWildcard();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getQualifiedNameWithWildcardRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleQualifiedNameWithWildcard"


    // $ANTLR start "ruleQualifiedNameWithWildcard"
    // InternalXcore.g:2748:1: ruleQualifiedNameWithWildcard : ( ( rule__QualifiedNameWithWildcard__Group__0 ) ) ;
    public final void ruleQualifiedNameWithWildcard() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:2752:2: ( ( ( rule__QualifiedNameWithWildcard__Group__0 ) ) )
            // InternalXcore.g:2753:1: ( ( rule__QualifiedNameWithWildcard__Group__0 ) )
            {
            // InternalXcore.g:2753:1: ( ( rule__QualifiedNameWithWildcard__Group__0 ) )
            // InternalXcore.g:2754:1: ( rule__QualifiedNameWithWildcard__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getQualifiedNameWithWildcardAccess().getGroup()); 
            }
            // InternalXcore.g:2755:1: ( rule__QualifiedNameWithWildcard__Group__0 )
            // InternalXcore.g:2755:2: rule__QualifiedNameWithWildcard__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__QualifiedNameWithWildcard__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getQualifiedNameWithWildcardAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleQualifiedNameWithWildcard"


    // $ANTLR start "entryRuleXImportDeclaration"
    // InternalXcore.g:2769:1: entryRuleXImportDeclaration : ruleXImportDeclaration EOF ;
    public final void entryRuleXImportDeclaration() throws RecognitionException {
        try {
            // InternalXcore.g:2770:1: ( ruleXImportDeclaration EOF )
            // InternalXcore.g:2771:1: ruleXImportDeclaration EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXImportDeclarationRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_1);
            ruleXImportDeclaration();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXImportDeclarationRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleXImportDeclaration"


    // $ANTLR start "ruleXImportDeclaration"
    // InternalXcore.g:2778:1: ruleXImportDeclaration : ( ( rule__XImportDeclaration__Group__0 ) ) ;
    public final void ruleXImportDeclaration() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:2782:2: ( ( ( rule__XImportDeclaration__Group__0 ) ) )
            // InternalXcore.g:2783:1: ( ( rule__XImportDeclaration__Group__0 ) )
            {
            // InternalXcore.g:2783:1: ( ( rule__XImportDeclaration__Group__0 ) )
            // InternalXcore.g:2784:1: ( rule__XImportDeclaration__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXImportDeclarationAccess().getGroup()); 
            }
            // InternalXcore.g:2785:1: ( rule__XImportDeclaration__Group__0 )
            // InternalXcore.g:2785:2: rule__XImportDeclaration__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XImportDeclaration__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXImportDeclarationAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleXImportDeclaration"


    // $ANTLR start "entryRuleQualifiedNameInStaticImport"
    // InternalXcore.g:2797:1: entryRuleQualifiedNameInStaticImport : ruleQualifiedNameInStaticImport EOF ;
    public final void entryRuleQualifiedNameInStaticImport() throws RecognitionException {
        try {
            // InternalXcore.g:2798:1: ( ruleQualifiedNameInStaticImport EOF )
            // InternalXcore.g:2799:1: ruleQualifiedNameInStaticImport EOF
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getQualifiedNameInStaticImportRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_1);
            ruleQualifiedNameInStaticImport();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getQualifiedNameInStaticImportRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleQualifiedNameInStaticImport"


    // $ANTLR start "ruleQualifiedNameInStaticImport"
    // InternalXcore.g:2806:1: ruleQualifiedNameInStaticImport : ( ( ( rule__QualifiedNameInStaticImport__Group__0 ) ) ( ( rule__QualifiedNameInStaticImport__Group__0 )* ) ) ;
    public final void ruleQualifiedNameInStaticImport() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:2810:2: ( ( ( ( rule__QualifiedNameInStaticImport__Group__0 ) ) ( ( rule__QualifiedNameInStaticImport__Group__0 )* ) ) )
            // InternalXcore.g:2811:1: ( ( ( rule__QualifiedNameInStaticImport__Group__0 ) ) ( ( rule__QualifiedNameInStaticImport__Group__0 )* ) )
            {
            // InternalXcore.g:2811:1: ( ( ( rule__QualifiedNameInStaticImport__Group__0 ) ) ( ( rule__QualifiedNameInStaticImport__Group__0 )* ) )
            // InternalXcore.g:2812:1: ( ( rule__QualifiedNameInStaticImport__Group__0 ) ) ( ( rule__QualifiedNameInStaticImport__Group__0 )* )
            {
            // InternalXcore.g:2812:1: ( ( rule__QualifiedNameInStaticImport__Group__0 ) )
            // InternalXcore.g:2813:1: ( rule__QualifiedNameInStaticImport__Group__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getQualifiedNameInStaticImportAccess().getGroup()); 
            }
            // InternalXcore.g:2814:1: ( rule__QualifiedNameInStaticImport__Group__0 )
            // InternalXcore.g:2814:2: rule__QualifiedNameInStaticImport__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_3);
            rule__QualifiedNameInStaticImport__Group__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getQualifiedNameInStaticImportAccess().getGroup()); 
            }

            }

            // InternalXcore.g:2817:1: ( ( rule__QualifiedNameInStaticImport__Group__0 )* )
            // InternalXcore.g:2818:1: ( rule__QualifiedNameInStaticImport__Group__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getQualifiedNameInStaticImportAccess().getGroup()); 
            }
            // InternalXcore.g:2819:1: ( rule__QualifiedNameInStaticImport__Group__0 )*
            loop1:
            do {
                int alt1=2;
                switch ( input.LA(1) ) {
                case RULE_ID:
                    {
                    int LA1_2 = input.LA(2);

                    if ( (LA1_2==80) ) {
                        alt1=1;
                    }


                    }
                    break;
                case 20:
                    {
                    int LA1_3 = input.LA(2);

                    if ( (LA1_3==80) ) {
                        alt1=1;
                    }


                    }
                    break;
                case 21:
                    {
                    int LA1_4 = input.LA(2);

                    if ( (LA1_4==80) ) {
                        alt1=1;
                    }


                    }
                    break;
                case 22:
                    {
                    int LA1_5 = input.LA(2);

                    if ( (LA1_5==80) ) {
                        alt1=1;
                    }


                    }
                    break;
                case 23:
                    {
                    int LA1_6 = input.LA(2);

                    if ( (LA1_6==80) ) {
                        alt1=1;
                    }


                    }
                    break;
                case 16:
                    {
                    int LA1_7 = input.LA(2);

                    if ( (LA1_7==80) ) {
                        alt1=1;
                    }


                    }
                    break;

                }

                switch (alt1) {
            	case 1 :
            	    // InternalXcore.g:2819:2: rule__QualifiedNameInStaticImport__Group__0
            	    {
            	    pushFollow(FollowSets000.FOLLOW_3);
            	    rule__QualifiedNameInStaticImport__Group__0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop1;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getQualifiedNameInStaticImportAccess().getGroup()); 
            }

            }


            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleQualifiedNameInStaticImport"


    // $ANTLR start "rule__XImportDirective__Alternatives_2"
    // InternalXcore.g:2832:1: rule__XImportDirective__Alternatives_2 : ( ( ( rule__XImportDirective__ImportedNamespaceAssignment_2_0 ) ) | ( ( rule__XImportDirective__ImportedObjectAssignment_2_1 ) ) );
    public final void rule__XImportDirective__Alternatives_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:2836:1: ( ( ( rule__XImportDirective__ImportedNamespaceAssignment_2_0 ) ) | ( ( rule__XImportDirective__ImportedObjectAssignment_2_1 ) ) )
            int alt2=2;
            alt2 = dfa2.predict(input);
            switch (alt2) {
                case 1 :
                    // InternalXcore.g:2837:1: ( ( rule__XImportDirective__ImportedNamespaceAssignment_2_0 ) )
                    {
                    // InternalXcore.g:2837:1: ( ( rule__XImportDirective__ImportedNamespaceAssignment_2_0 ) )
                    // InternalXcore.g:2838:1: ( rule__XImportDirective__ImportedNamespaceAssignment_2_0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXImportDirectiveAccess().getImportedNamespaceAssignment_2_0()); 
                    }
                    // InternalXcore.g:2839:1: ( rule__XImportDirective__ImportedNamespaceAssignment_2_0 )
                    // InternalXcore.g:2839:2: rule__XImportDirective__ImportedNamespaceAssignment_2_0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XImportDirective__ImportedNamespaceAssignment_2_0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXImportDirectiveAccess().getImportedNamespaceAssignment_2_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // InternalXcore.g:2843:6: ( ( rule__XImportDirective__ImportedObjectAssignment_2_1 ) )
                    {
                    // InternalXcore.g:2843:6: ( ( rule__XImportDirective__ImportedObjectAssignment_2_1 ) )
                    // InternalXcore.g:2844:1: ( rule__XImportDirective__ImportedObjectAssignment_2_1 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXImportDirectiveAccess().getImportedObjectAssignment_2_1()); 
                    }
                    // InternalXcore.g:2845:1: ( rule__XImportDirective__ImportedObjectAssignment_2_1 )
                    // InternalXcore.g:2845:2: rule__XImportDirective__ImportedObjectAssignment_2_1
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XImportDirective__ImportedObjectAssignment_2_1();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXImportDirectiveAccess().getImportedObjectAssignment_2_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XImportDirective__Alternatives_2"


    // $ANTLR start "rule__XClassifier__Alternatives"
    // InternalXcore.g:2854:1: rule__XClassifier__Alternatives : ( ( ruleXClass ) | ( ruleXDataType ) | ( ruleXEnum ) );
    public final void rule__XClassifier__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:2858:1: ( ( ruleXClass ) | ( ruleXDataType ) | ( ruleXEnum ) )
            int alt3=3;
            alt3 = dfa3.predict(input);
            switch (alt3) {
                case 1 :
                    // InternalXcore.g:2859:1: ( ruleXClass )
                    {
                    // InternalXcore.g:2859:1: ( ruleXClass )
                    // InternalXcore.g:2860:1: ruleXClass
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXClassifierAccess().getXClassParserRuleCall_0()); 
                    }
                    pushFollow(FollowSets000.FOLLOW_2);
                    ruleXClass();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXClassifierAccess().getXClassParserRuleCall_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // InternalXcore.g:2865:6: ( ruleXDataType )
                    {
                    // InternalXcore.g:2865:6: ( ruleXDataType )
                    // InternalXcore.g:2866:1: ruleXDataType
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXClassifierAccess().getXDataTypeParserRuleCall_1()); 
                    }
                    pushFollow(FollowSets000.FOLLOW_2);
                    ruleXDataType();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXClassifierAccess().getXDataTypeParserRuleCall_1()); 
                    }

                    }


                    }
                    break;
                case 3 :
                    // InternalXcore.g:2871:6: ( ruleXEnum )
                    {
                    // InternalXcore.g:2871:6: ( ruleXEnum )
                    // InternalXcore.g:2872:1: ruleXEnum
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXClassifierAccess().getXEnumParserRuleCall_2()); 
                    }
                    pushFollow(FollowSets000.FOLLOW_2);
                    ruleXEnum();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXClassifierAccess().getXEnumParserRuleCall_2()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XClassifier__Alternatives"


    // $ANTLR start "rule__XClass__Alternatives_2"
    // InternalXcore.g:2882:1: rule__XClass__Alternatives_2 : ( ( ( rule__XClass__Group_2_0__0 ) ) | ( ( rule__XClass__InterfaceAssignment_2_1 ) ) );
    public final void rule__XClass__Alternatives_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:2886:1: ( ( ( rule__XClass__Group_2_0__0 ) ) | ( ( rule__XClass__InterfaceAssignment_2_1 ) ) )
            int alt4=2;
            int LA4_0 = input.LA(1);

            if ( (LA4_0==24||LA4_0==27) ) {
                alt4=1;
            }
            else if ( (LA4_0==39) ) {
                alt4=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 4, 0, input);

                throw nvae;
            }
            switch (alt4) {
                case 1 :
                    // InternalXcore.g:2887:1: ( ( rule__XClass__Group_2_0__0 ) )
                    {
                    // InternalXcore.g:2887:1: ( ( rule__XClass__Group_2_0__0 ) )
                    // InternalXcore.g:2888:1: ( rule__XClass__Group_2_0__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXClassAccess().getGroup_2_0()); 
                    }
                    // InternalXcore.g:2889:1: ( rule__XClass__Group_2_0__0 )
                    // InternalXcore.g:2889:2: rule__XClass__Group_2_0__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XClass__Group_2_0__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXClassAccess().getGroup_2_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // InternalXcore.g:2893:6: ( ( rule__XClass__InterfaceAssignment_2_1 ) )
                    {
                    // InternalXcore.g:2893:6: ( ( rule__XClass__InterfaceAssignment_2_1 ) )
                    // InternalXcore.g:2894:1: ( rule__XClass__InterfaceAssignment_2_1 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXClassAccess().getInterfaceAssignment_2_1()); 
                    }
                    // InternalXcore.g:2895:1: ( rule__XClass__InterfaceAssignment_2_1 )
                    // InternalXcore.g:2895:2: rule__XClass__InterfaceAssignment_2_1
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XClass__InterfaceAssignment_2_1();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXClassAccess().getInterfaceAssignment_2_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XClass__Alternatives_2"


    // $ANTLR start "rule__XMember__Alternatives"
    // InternalXcore.g:2904:1: rule__XMember__Alternatives : ( ( ruleXOperation ) | ( ruleXAttribute ) | ( ruleXReference ) );
    public final void rule__XMember__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:2908:1: ( ( ruleXOperation ) | ( ruleXAttribute ) | ( ruleXReference ) )
            int alt5=3;
            alt5 = dfa5.predict(input);
            switch (alt5) {
                case 1 :
                    // InternalXcore.g:2909:1: ( ruleXOperation )
                    {
                    // InternalXcore.g:2909:1: ( ruleXOperation )
                    // InternalXcore.g:2910:1: ruleXOperation
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXMemberAccess().getXOperationParserRuleCall_0()); 
                    }
                    pushFollow(FollowSets000.FOLLOW_2);
                    ruleXOperation();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXMemberAccess().getXOperationParserRuleCall_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // InternalXcore.g:2915:6: ( ruleXAttribute )
                    {
                    // InternalXcore.g:2915:6: ( ruleXAttribute )
                    // InternalXcore.g:2916:1: ruleXAttribute
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXMemberAccess().getXAttributeParserRuleCall_1()); 
                    }
                    pushFollow(FollowSets000.FOLLOW_2);
                    ruleXAttribute();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXMemberAccess().getXAttributeParserRuleCall_1()); 
                    }

                    }


                    }
                    break;
                case 3 :
                    // InternalXcore.g:2921:6: ( ruleXReference )
                    {
                    // InternalXcore.g:2921:6: ( ruleXReference )
                    // InternalXcore.g:2922:1: ruleXReference
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXMemberAccess().getXReferenceParserRuleCall_2()); 
                    }
                    pushFollow(FollowSets000.FOLLOW_2);
                    ruleXReference();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXMemberAccess().getXReferenceParserRuleCall_2()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMember__Alternatives"


    // $ANTLR start "rule__XReference__Alternatives_2"
    // InternalXcore.g:2932:1: rule__XReference__Alternatives_2 : ( ( ( rule__XReference__Group_2_0__0 ) ) | ( ( rule__XReference__Group_2_1__0 ) ) | ( ( rule__XReference__Group_2_2__0 ) ) | ( ( rule__XReference__Group_2_3__0 ) ) | ( ( rule__XReference__Group_2_4__0 ) ) | ( ( rule__XReference__Group_2_5__0 ) ) );
    public final void rule__XReference__Alternatives_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:2936:1: ( ( ( rule__XReference__Group_2_0__0 ) ) | ( ( rule__XReference__Group_2_1__0 ) ) | ( ( rule__XReference__Group_2_2__0 ) ) | ( ( rule__XReference__Group_2_3__0 ) ) | ( ( rule__XReference__Group_2_4__0 ) ) | ( ( rule__XReference__Group_2_5__0 ) ) )
            int alt6=6;
            switch ( input.LA(1) ) {
            case 29:
                {
                alt6=1;
                }
                break;
            case 46:
                {
                int LA6_2 = input.LA(2);

                if ( (LA6_2==28) ) {
                    alt6=4;
                }
                else if ( (LA6_2==29) ) {
                    alt6=2;
                }
                else {
                    if (state.backtracking>0) {state.failed=true; return ;}
                    NoViableAltException nvae =
                        new NoViableAltException("", 6, 2, input);

                    throw nvae;
                }
                }
                break;
            case 28:
                {
                alt6=3;
                }
                break;
            case 45:
                {
                alt6=5;
                }
                break;
            case 40:
                {
                alt6=6;
                }
                break;
            default:
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 6, 0, input);

                throw nvae;
            }

            switch (alt6) {
                case 1 :
                    // InternalXcore.g:2937:1: ( ( rule__XReference__Group_2_0__0 ) )
                    {
                    // InternalXcore.g:2937:1: ( ( rule__XReference__Group_2_0__0 ) )
                    // InternalXcore.g:2938:1: ( rule__XReference__Group_2_0__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXReferenceAccess().getGroup_2_0()); 
                    }
                    // InternalXcore.g:2939:1: ( rule__XReference__Group_2_0__0 )
                    // InternalXcore.g:2939:2: rule__XReference__Group_2_0__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XReference__Group_2_0__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXReferenceAccess().getGroup_2_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // InternalXcore.g:2943:6: ( ( rule__XReference__Group_2_1__0 ) )
                    {
                    // InternalXcore.g:2943:6: ( ( rule__XReference__Group_2_1__0 ) )
                    // InternalXcore.g:2944:1: ( rule__XReference__Group_2_1__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXReferenceAccess().getGroup_2_1()); 
                    }
                    // InternalXcore.g:2945:1: ( rule__XReference__Group_2_1__0 )
                    // InternalXcore.g:2945:2: rule__XReference__Group_2_1__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XReference__Group_2_1__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXReferenceAccess().getGroup_2_1()); 
                    }

                    }


                    }
                    break;
                case 3 :
                    // InternalXcore.g:2949:6: ( ( rule__XReference__Group_2_2__0 ) )
                    {
                    // InternalXcore.g:2949:6: ( ( rule__XReference__Group_2_2__0 ) )
                    // InternalXcore.g:2950:1: ( rule__XReference__Group_2_2__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXReferenceAccess().getGroup_2_2()); 
                    }
                    // InternalXcore.g:2951:1: ( rule__XReference__Group_2_2__0 )
                    // InternalXcore.g:2951:2: rule__XReference__Group_2_2__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XReference__Group_2_2__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXReferenceAccess().getGroup_2_2()); 
                    }

                    }


                    }
                    break;
                case 4 :
                    // InternalXcore.g:2955:6: ( ( rule__XReference__Group_2_3__0 ) )
                    {
                    // InternalXcore.g:2955:6: ( ( rule__XReference__Group_2_3__0 ) )
                    // InternalXcore.g:2956:1: ( rule__XReference__Group_2_3__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXReferenceAccess().getGroup_2_3()); 
                    }
                    // InternalXcore.g:2957:1: ( rule__XReference__Group_2_3__0 )
                    // InternalXcore.g:2957:2: rule__XReference__Group_2_3__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XReference__Group_2_3__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXReferenceAccess().getGroup_2_3()); 
                    }

                    }


                    }
                    break;
                case 5 :
                    // InternalXcore.g:2961:6: ( ( rule__XReference__Group_2_4__0 ) )
                    {
                    // InternalXcore.g:2961:6: ( ( rule__XReference__Group_2_4__0 ) )
                    // InternalXcore.g:2962:1: ( rule__XReference__Group_2_4__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXReferenceAccess().getGroup_2_4()); 
                    }
                    // InternalXcore.g:2963:1: ( rule__XReference__Group_2_4__0 )
                    // InternalXcore.g:2963:2: rule__XReference__Group_2_4__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XReference__Group_2_4__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXReferenceAccess().getGroup_2_4()); 
                    }

                    }


                    }
                    break;
                case 6 :
                    // InternalXcore.g:2967:6: ( ( rule__XReference__Group_2_5__0 ) )
                    {
                    // InternalXcore.g:2967:6: ( ( rule__XReference__Group_2_5__0 ) )
                    // InternalXcore.g:2968:1: ( rule__XReference__Group_2_5__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXReferenceAccess().getGroup_2_5()); 
                    }
                    // InternalXcore.g:2969:1: ( rule__XReference__Group_2_5__0 )
                    // InternalXcore.g:2969:2: rule__XReference__Group_2_5__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XReference__Group_2_5__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXReferenceAccess().getGroup_2_5()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__Alternatives_2"


    // $ANTLR start "rule__XOperation__Alternatives_3"
    // InternalXcore.g:2978:1: rule__XOperation__Alternatives_3 : ( ( ( rule__XOperation__Group_3_0__0 ) ) | ( ( rule__XOperation__Group_3_1__0 ) ) );
    public final void rule__XOperation__Alternatives_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:2982:1: ( ( ( rule__XOperation__Group_3_0__0 ) ) | ( ( rule__XOperation__Group_3_1__0 ) ) )
            int alt7=2;
            int LA7_0 = input.LA(1);

            if ( (LA7_0==51) ) {
                alt7=1;
            }
            else if ( (LA7_0==50) ) {
                alt7=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 7, 0, input);

                throw nvae;
            }
            switch (alt7) {
                case 1 :
                    // InternalXcore.g:2983:1: ( ( rule__XOperation__Group_3_0__0 ) )
                    {
                    // InternalXcore.g:2983:1: ( ( rule__XOperation__Group_3_0__0 ) )
                    // InternalXcore.g:2984:1: ( rule__XOperation__Group_3_0__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXOperationAccess().getGroup_3_0()); 
                    }
                    // InternalXcore.g:2985:1: ( rule__XOperation__Group_3_0__0 )
                    // InternalXcore.g:2985:2: rule__XOperation__Group_3_0__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XOperation__Group_3_0__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXOperationAccess().getGroup_3_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // InternalXcore.g:2989:6: ( ( rule__XOperation__Group_3_1__0 ) )
                    {
                    // InternalXcore.g:2989:6: ( ( rule__XOperation__Group_3_1__0 ) )
                    // InternalXcore.g:2990:1: ( rule__XOperation__Group_3_1__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXOperationAccess().getGroup_3_1()); 
                    }
                    // InternalXcore.g:2991:1: ( rule__XOperation__Group_3_1__0 )
                    // InternalXcore.g:2991:2: rule__XOperation__Group_3_1__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XOperation__Group_3_1__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXOperationAccess().getGroup_3_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOperation__Alternatives_3"


    // $ANTLR start "rule__XOperation__Alternatives_5"
    // InternalXcore.g:3000:1: rule__XOperation__Alternatives_5 : ( ( ( rule__XOperation__TypeAssignment_5_0 ) ) | ( 'void' ) );
    public final void rule__XOperation__Alternatives_5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:3004:1: ( ( ( rule__XOperation__TypeAssignment_5_0 ) ) | ( 'void' ) )
            int alt8=2;
            int LA8_0 = input.LA(1);

            if ( (LA8_0==RULE_ID||(LA8_0>=20 && LA8_0<=23)) ) {
                alt8=1;
            }
            else if ( (LA8_0==16) ) {
                alt8=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 8, 0, input);

                throw nvae;
            }
            switch (alt8) {
                case 1 :
                    // InternalXcore.g:3005:1: ( ( rule__XOperation__TypeAssignment_5_0 ) )
                    {
                    // InternalXcore.g:3005:1: ( ( rule__XOperation__TypeAssignment_5_0 ) )
                    // InternalXcore.g:3006:1: ( rule__XOperation__TypeAssignment_5_0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXOperationAccess().getTypeAssignment_5_0()); 
                    }
                    // InternalXcore.g:3007:1: ( rule__XOperation__TypeAssignment_5_0 )
                    // InternalXcore.g:3007:2: rule__XOperation__TypeAssignment_5_0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XOperation__TypeAssignment_5_0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXOperationAccess().getTypeAssignment_5_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // InternalXcore.g:3011:6: ( 'void' )
                    {
                    // InternalXcore.g:3011:6: ( 'void' )
                    // InternalXcore.g:3012:1: 'void'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXOperationAccess().getVoidKeyword_5_1()); 
                    }
                    match(input,16,FollowSets000.FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXOperationAccess().getVoidKeyword_5_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOperation__Alternatives_5"


    // $ANTLR start "rule__XParameter__Alternatives_1"
    // InternalXcore.g:3024:1: rule__XParameter__Alternatives_1 : ( ( ( rule__XParameter__Group_1_0__0 ) ) | ( ( rule__XParameter__Group_1_1__0 ) ) );
    public final void rule__XParameter__Alternatives_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:3028:1: ( ( ( rule__XParameter__Group_1_0__0 ) ) | ( ( rule__XParameter__Group_1_1__0 ) ) )
            int alt9=2;
            int LA9_0 = input.LA(1);

            if ( (LA9_0==51) ) {
                alt9=1;
            }
            else if ( (LA9_0==50) ) {
                alt9=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 9, 0, input);

                throw nvae;
            }
            switch (alt9) {
                case 1 :
                    // InternalXcore.g:3029:1: ( ( rule__XParameter__Group_1_0__0 ) )
                    {
                    // InternalXcore.g:3029:1: ( ( rule__XParameter__Group_1_0__0 ) )
                    // InternalXcore.g:3030:1: ( rule__XParameter__Group_1_0__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXParameterAccess().getGroup_1_0()); 
                    }
                    // InternalXcore.g:3031:1: ( rule__XParameter__Group_1_0__0 )
                    // InternalXcore.g:3031:2: rule__XParameter__Group_1_0__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XParameter__Group_1_0__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXParameterAccess().getGroup_1_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // InternalXcore.g:3035:6: ( ( rule__XParameter__Group_1_1__0 ) )
                    {
                    // InternalXcore.g:3035:6: ( ( rule__XParameter__Group_1_1__0 ) )
                    // InternalXcore.g:3036:1: ( rule__XParameter__Group_1_1__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXParameterAccess().getGroup_1_1()); 
                    }
                    // InternalXcore.g:3037:1: ( rule__XParameter__Group_1_1__0 )
                    // InternalXcore.g:3037:2: rule__XParameter__Group_1_1__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XParameter__Group_1_1__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXParameterAccess().getGroup_1_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XParameter__Alternatives_1"


    // $ANTLR start "rule__XMultiplicity__Alternatives_1"
    // InternalXcore.g:3046:1: rule__XMultiplicity__Alternatives_1 : ( ( '?' ) | ( '*' ) | ( '+' ) | ( ( rule__XMultiplicity__Group_1_3__0 ) ) );
    public final void rule__XMultiplicity__Alternatives_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:3050:1: ( ( '?' ) | ( '*' ) | ( '+' ) | ( ( rule__XMultiplicity__Group_1_3__0 ) ) )
            int alt10=4;
            switch ( input.LA(1) ) {
            case 17:
                {
                alt10=1;
                }
                break;
            case 18:
                {
                alt10=2;
                }
                break;
            case 19:
                {
                alt10=3;
                }
                break;
            case RULE_INT:
                {
                alt10=4;
                }
                break;
            default:
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 10, 0, input);

                throw nvae;
            }

            switch (alt10) {
                case 1 :
                    // InternalXcore.g:3051:1: ( '?' )
                    {
                    // InternalXcore.g:3051:1: ( '?' )
                    // InternalXcore.g:3052:1: '?'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXMultiplicityAccess().getQuestionMarkKeyword_1_0()); 
                    }
                    match(input,17,FollowSets000.FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXMultiplicityAccess().getQuestionMarkKeyword_1_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // InternalXcore.g:3059:6: ( '*' )
                    {
                    // InternalXcore.g:3059:6: ( '*' )
                    // InternalXcore.g:3060:1: '*'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXMultiplicityAccess().getAsteriskKeyword_1_1()); 
                    }
                    match(input,18,FollowSets000.FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXMultiplicityAccess().getAsteriskKeyword_1_1()); 
                    }

                    }


                    }
                    break;
                case 3 :
                    // InternalXcore.g:3067:6: ( '+' )
                    {
                    // InternalXcore.g:3067:6: ( '+' )
                    // InternalXcore.g:3068:1: '+'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXMultiplicityAccess().getPlusSignKeyword_1_2()); 
                    }
                    match(input,19,FollowSets000.FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXMultiplicityAccess().getPlusSignKeyword_1_2()); 
                    }

                    }


                    }
                    break;
                case 4 :
                    // InternalXcore.g:3075:6: ( ( rule__XMultiplicity__Group_1_3__0 ) )
                    {
                    // InternalXcore.g:3075:6: ( ( rule__XMultiplicity__Group_1_3__0 ) )
                    // InternalXcore.g:3076:1: ( rule__XMultiplicity__Group_1_3__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXMultiplicityAccess().getGroup_1_3()); 
                    }
                    // InternalXcore.g:3077:1: ( rule__XMultiplicity__Group_1_3__0 )
                    // InternalXcore.g:3077:2: rule__XMultiplicity__Group_1_3__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XMultiplicity__Group_1_3__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXMultiplicityAccess().getGroup_1_3()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMultiplicity__Alternatives_1"


    // $ANTLR start "rule__XMultiplicity__Alternatives_1_3_1_1"
    // InternalXcore.g:3086:1: rule__XMultiplicity__Alternatives_1_3_1_1 : ( ( RULE_INT ) | ( '?' ) | ( '*' ) );
    public final void rule__XMultiplicity__Alternatives_1_3_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:3090:1: ( ( RULE_INT ) | ( '?' ) | ( '*' ) )
            int alt11=3;
            switch ( input.LA(1) ) {
            case RULE_INT:
                {
                alt11=1;
                }
                break;
            case 17:
                {
                alt11=2;
                }
                break;
            case 18:
                {
                alt11=3;
                }
                break;
            default:
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 11, 0, input);

                throw nvae;
            }

            switch (alt11) {
                case 1 :
                    // InternalXcore.g:3091:1: ( RULE_INT )
                    {
                    // InternalXcore.g:3091:1: ( RULE_INT )
                    // InternalXcore.g:3092:1: RULE_INT
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXMultiplicityAccess().getINTTerminalRuleCall_1_3_1_1_0()); 
                    }
                    match(input,RULE_INT,FollowSets000.FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXMultiplicityAccess().getINTTerminalRuleCall_1_3_1_1_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // InternalXcore.g:3097:6: ( '?' )
                    {
                    // InternalXcore.g:3097:6: ( '?' )
                    // InternalXcore.g:3098:1: '?'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXMultiplicityAccess().getQuestionMarkKeyword_1_3_1_1_1()); 
                    }
                    match(input,17,FollowSets000.FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXMultiplicityAccess().getQuestionMarkKeyword_1_3_1_1_1()); 
                    }

                    }


                    }
                    break;
                case 3 :
                    // InternalXcore.g:3105:6: ( '*' )
                    {
                    // InternalXcore.g:3105:6: ( '*' )
                    // InternalXcore.g:3106:1: '*'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXMultiplicityAccess().getAsteriskKeyword_1_3_1_1_2()); 
                    }
                    match(input,18,FollowSets000.FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXMultiplicityAccess().getAsteriskKeyword_1_3_1_1_2()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMultiplicity__Alternatives_1_3_1_1"


    // $ANTLR start "rule__XGenericTypeArgument__Alternatives"
    // InternalXcore.g:3118:1: rule__XGenericTypeArgument__Alternatives : ( ( ruleXGenericType ) | ( ruleXGenericWildcardTypeArgument ) );
    public final void rule__XGenericTypeArgument__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:3122:1: ( ( ruleXGenericType ) | ( ruleXGenericWildcardTypeArgument ) )
            int alt12=2;
            int LA12_0 = input.LA(1);

            if ( (LA12_0==RULE_ID||(LA12_0>=20 && LA12_0<=23)) ) {
                alt12=1;
            }
            else if ( (LA12_0==17) ) {
                alt12=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 12, 0, input);

                throw nvae;
            }
            switch (alt12) {
                case 1 :
                    // InternalXcore.g:3123:1: ( ruleXGenericType )
                    {
                    // InternalXcore.g:3123:1: ( ruleXGenericType )
                    // InternalXcore.g:3124:1: ruleXGenericType
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXGenericTypeArgumentAccess().getXGenericTypeParserRuleCall_0()); 
                    }
                    pushFollow(FollowSets000.FOLLOW_2);
                    ruleXGenericType();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXGenericTypeArgumentAccess().getXGenericTypeParserRuleCall_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // InternalXcore.g:3129:6: ( ruleXGenericWildcardTypeArgument )
                    {
                    // InternalXcore.g:3129:6: ( ruleXGenericWildcardTypeArgument )
                    // InternalXcore.g:3130:1: ruleXGenericWildcardTypeArgument
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXGenericTypeArgumentAccess().getXGenericWildcardTypeArgumentParserRuleCall_1()); 
                    }
                    pushFollow(FollowSets000.FOLLOW_2);
                    ruleXGenericWildcardTypeArgument();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXGenericTypeArgumentAccess().getXGenericWildcardTypeArgumentParserRuleCall_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XGenericTypeArgument__Alternatives"


    // $ANTLR start "rule__XGenericWildcardTypeArgument__Alternatives_2"
    // InternalXcore.g:3140:1: rule__XGenericWildcardTypeArgument__Alternatives_2 : ( ( ( rule__XGenericWildcardTypeArgument__Group_2_0__0 ) ) | ( ( rule__XGenericWildcardTypeArgument__Group_2_1__0 ) ) );
    public final void rule__XGenericWildcardTypeArgument__Alternatives_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:3144:1: ( ( ( rule__XGenericWildcardTypeArgument__Group_2_0__0 ) ) | ( ( rule__XGenericWildcardTypeArgument__Group_2_1__0 ) ) )
            int alt13=2;
            int LA13_0 = input.LA(1);

            if ( (LA13_0==34) ) {
                alt13=1;
            }
            else if ( (LA13_0==82) ) {
                alt13=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 13, 0, input);

                throw nvae;
            }
            switch (alt13) {
                case 1 :
                    // InternalXcore.g:3145:1: ( ( rule__XGenericWildcardTypeArgument__Group_2_0__0 ) )
                    {
                    // InternalXcore.g:3145:1: ( ( rule__XGenericWildcardTypeArgument__Group_2_0__0 ) )
                    // InternalXcore.g:3146:1: ( rule__XGenericWildcardTypeArgument__Group_2_0__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXGenericWildcardTypeArgumentAccess().getGroup_2_0()); 
                    }
                    // InternalXcore.g:3147:1: ( rule__XGenericWildcardTypeArgument__Group_2_0__0 )
                    // InternalXcore.g:3147:2: rule__XGenericWildcardTypeArgument__Group_2_0__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XGenericWildcardTypeArgument__Group_2_0__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXGenericWildcardTypeArgumentAccess().getGroup_2_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // InternalXcore.g:3151:6: ( ( rule__XGenericWildcardTypeArgument__Group_2_1__0 ) )
                    {
                    // InternalXcore.g:3151:6: ( ( rule__XGenericWildcardTypeArgument__Group_2_1__0 ) )
                    // InternalXcore.g:3152:1: ( rule__XGenericWildcardTypeArgument__Group_2_1__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXGenericWildcardTypeArgumentAccess().getGroup_2_1()); 
                    }
                    // InternalXcore.g:3153:1: ( rule__XGenericWildcardTypeArgument__Group_2_1__0 )
                    // InternalXcore.g:3153:2: rule__XGenericWildcardTypeArgument__Group_2_1__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XGenericWildcardTypeArgument__Group_2_1__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXGenericWildcardTypeArgumentAccess().getGroup_2_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XGenericWildcardTypeArgument__Alternatives_2"


    // $ANTLR start "rule__XID__Alternatives"
    // InternalXcore.g:3162:1: rule__XID__Alternatives : ( ( RULE_ID ) | ( 'get' ) | ( 'isSet' ) | ( 'set' ) | ( 'unset' ) );
    public final void rule__XID__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:3166:1: ( ( RULE_ID ) | ( 'get' ) | ( 'isSet' ) | ( 'set' ) | ( 'unset' ) )
            int alt14=5;
            switch ( input.LA(1) ) {
            case RULE_ID:
                {
                alt14=1;
                }
                break;
            case 20:
                {
                alt14=2;
                }
                break;
            case 21:
                {
                alt14=3;
                }
                break;
            case 22:
                {
                alt14=4;
                }
                break;
            case 23:
                {
                alt14=5;
                }
                break;
            default:
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 14, 0, input);

                throw nvae;
            }

            switch (alt14) {
                case 1 :
                    // InternalXcore.g:3167:1: ( RULE_ID )
                    {
                    // InternalXcore.g:3167:1: ( RULE_ID )
                    // InternalXcore.g:3168:1: RULE_ID
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXIDAccess().getIDTerminalRuleCall_0()); 
                    }
                    match(input,RULE_ID,FollowSets000.FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXIDAccess().getIDTerminalRuleCall_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // InternalXcore.g:3173:6: ( 'get' )
                    {
                    // InternalXcore.g:3173:6: ( 'get' )
                    // InternalXcore.g:3174:1: 'get'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXIDAccess().getGetKeyword_1()); 
                    }
                    match(input,20,FollowSets000.FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXIDAccess().getGetKeyword_1()); 
                    }

                    }


                    }
                    break;
                case 3 :
                    // InternalXcore.g:3181:6: ( 'isSet' )
                    {
                    // InternalXcore.g:3181:6: ( 'isSet' )
                    // InternalXcore.g:3182:1: 'isSet'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXIDAccess().getIsSetKeyword_2()); 
                    }
                    match(input,21,FollowSets000.FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXIDAccess().getIsSetKeyword_2()); 
                    }

                    }


                    }
                    break;
                case 4 :
                    // InternalXcore.g:3189:6: ( 'set' )
                    {
                    // InternalXcore.g:3189:6: ( 'set' )
                    // InternalXcore.g:3190:1: 'set'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXIDAccess().getSetKeyword_3()); 
                    }
                    match(input,22,FollowSets000.FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXIDAccess().getSetKeyword_3()); 
                    }

                    }


                    }
                    break;
                case 5 :
                    // InternalXcore.g:3197:6: ( 'unset' )
                    {
                    // InternalXcore.g:3197:6: ( 'unset' )
                    // InternalXcore.g:3198:1: 'unset'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXIDAccess().getUnsetKeyword_4()); 
                    }
                    match(input,23,FollowSets000.FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXIDAccess().getUnsetKeyword_4()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XID__Alternatives"


    // $ANTLR start "rule__ValidID__Alternatives"
    // InternalXcore.g:3210:1: rule__ValidID__Alternatives : ( ( ruleXID ) | ( 'void' ) );
    public final void rule__ValidID__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:3214:1: ( ( ruleXID ) | ( 'void' ) )
            int alt15=2;
            int LA15_0 = input.LA(1);

            if ( (LA15_0==RULE_ID||(LA15_0>=20 && LA15_0<=23)) ) {
                alt15=1;
            }
            else if ( (LA15_0==16) ) {
                alt15=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 15, 0, input);

                throw nvae;
            }
            switch (alt15) {
                case 1 :
                    // InternalXcore.g:3215:1: ( ruleXID )
                    {
                    // InternalXcore.g:3215:1: ( ruleXID )
                    // InternalXcore.g:3216:1: ruleXID
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getValidIDAccess().getXIDParserRuleCall_0()); 
                    }
                    pushFollow(FollowSets000.FOLLOW_2);
                    ruleXID();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getValidIDAccess().getXIDParserRuleCall_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // InternalXcore.g:3221:6: ( 'void' )
                    {
                    // InternalXcore.g:3221:6: ( 'void' )
                    // InternalXcore.g:3222:1: 'void'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getValidIDAccess().getVoidKeyword_1()); 
                    }
                    match(input,16,FollowSets000.FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getValidIDAccess().getVoidKeyword_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ValidID__Alternatives"


    // $ANTLR start "rule__FeatureCallID__Alternatives"
    // InternalXcore.g:3234:1: rule__FeatureCallID__Alternatives : ( ( ruleValidID ) | ( 'abstract' ) | ( 'annotation' ) | ( 'as' ) | ( 'class' ) | ( 'container' ) | ( 'contains' ) | ( 'convert' ) | ( 'create' ) | ( 'derived' ) | ( 'enum' ) | ( 'extends' ) | ( 'extension' ) | ( 'id' ) | ( 'import' ) | ( 'keys' ) | ( 'interface' ) | ( 'local' ) | ( 'op' ) | ( 'opposite' ) | ( 'package' ) | ( 'readonly' ) | ( 'refers' ) | ( 'resolving' ) | ( 'static' ) | ( 'throws' ) | ( 'transient' ) | ( 'unique' ) | ( 'unordered' ) | ( 'unsettable' ) | ( 'volatile' ) | ( 'wraps' ) );
    public final void rule__FeatureCallID__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:3238:1: ( ( ruleValidID ) | ( 'abstract' ) | ( 'annotation' ) | ( 'as' ) | ( 'class' ) | ( 'container' ) | ( 'contains' ) | ( 'convert' ) | ( 'create' ) | ( 'derived' ) | ( 'enum' ) | ( 'extends' ) | ( 'extension' ) | ( 'id' ) | ( 'import' ) | ( 'keys' ) | ( 'interface' ) | ( 'local' ) | ( 'op' ) | ( 'opposite' ) | ( 'package' ) | ( 'readonly' ) | ( 'refers' ) | ( 'resolving' ) | ( 'static' ) | ( 'throws' ) | ( 'transient' ) | ( 'unique' ) | ( 'unordered' ) | ( 'unsettable' ) | ( 'volatile' ) | ( 'wraps' ) )
            int alt16=32;
            switch ( input.LA(1) ) {
            case RULE_ID:
            case 16:
            case 20:
            case 21:
            case 22:
            case 23:
                {
                alt16=1;
                }
                break;
            case 24:
                {
                alt16=2;
                }
                break;
            case 25:
                {
                alt16=3;
                }
                break;
            case 26:
                {
                alt16=4;
                }
                break;
            case 27:
                {
                alt16=5;
                }
                break;
            case 28:
                {
                alt16=6;
                }
                break;
            case 29:
                {
                alt16=7;
                }
                break;
            case 30:
                {
                alt16=8;
                }
                break;
            case 31:
                {
                alt16=9;
                }
                break;
            case 32:
                {
                alt16=10;
                }
                break;
            case 33:
                {
                alt16=11;
                }
                break;
            case 34:
                {
                alt16=12;
                }
                break;
            case 35:
                {
                alt16=13;
                }
                break;
            case 36:
                {
                alt16=14;
                }
                break;
            case 37:
                {
                alt16=15;
                }
                break;
            case 38:
                {
                alt16=16;
                }
                break;
            case 39:
                {
                alt16=17;
                }
                break;
            case 40:
                {
                alt16=18;
                }
                break;
            case 41:
                {
                alt16=19;
                }
                break;
            case 42:
                {
                alt16=20;
                }
                break;
            case 43:
                {
                alt16=21;
                }
                break;
            case 44:
                {
                alt16=22;
                }
                break;
            case 45:
                {
                alt16=23;
                }
                break;
            case 46:
                {
                alt16=24;
                }
                break;
            case 47:
                {
                alt16=25;
                }
                break;
            case 48:
                {
                alt16=26;
                }
                break;
            case 49:
                {
                alt16=27;
                }
                break;
            case 50:
                {
                alt16=28;
                }
                break;
            case 51:
                {
                alt16=29;
                }
                break;
            case 52:
                {
                alt16=30;
                }
                break;
            case 53:
                {
                alt16=31;
                }
                break;
            case 54:
                {
                alt16=32;
                }
                break;
            default:
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 16, 0, input);

                throw nvae;
            }

            switch (alt16) {
                case 1 :
                    // InternalXcore.g:3239:1: ( ruleValidID )
                    {
                    // InternalXcore.g:3239:1: ( ruleValidID )
                    // InternalXcore.g:3240:1: ruleValidID
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getFeatureCallIDAccess().getValidIDParserRuleCall_0()); 
                    }
                    pushFollow(FollowSets000.FOLLOW_2);
                    ruleValidID();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getFeatureCallIDAccess().getValidIDParserRuleCall_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // InternalXcore.g:3245:6: ( 'abstract' )
                    {
                    // InternalXcore.g:3245:6: ( 'abstract' )
                    // InternalXcore.g:3246:1: 'abstract'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getFeatureCallIDAccess().getAbstractKeyword_1()); 
                    }
                    match(input,24,FollowSets000.FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getFeatureCallIDAccess().getAbstractKeyword_1()); 
                    }

                    }


                    }
                    break;
                case 3 :
                    // InternalXcore.g:3253:6: ( 'annotation' )
                    {
                    // InternalXcore.g:3253:6: ( 'annotation' )
                    // InternalXcore.g:3254:1: 'annotation'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getFeatureCallIDAccess().getAnnotationKeyword_2()); 
                    }
                    match(input,25,FollowSets000.FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getFeatureCallIDAccess().getAnnotationKeyword_2()); 
                    }

                    }


                    }
                    break;
                case 4 :
                    // InternalXcore.g:3261:6: ( 'as' )
                    {
                    // InternalXcore.g:3261:6: ( 'as' )
                    // InternalXcore.g:3262:1: 'as'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getFeatureCallIDAccess().getAsKeyword_3()); 
                    }
                    match(input,26,FollowSets000.FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getFeatureCallIDAccess().getAsKeyword_3()); 
                    }

                    }


                    }
                    break;
                case 5 :
                    // InternalXcore.g:3269:6: ( 'class' )
                    {
                    // InternalXcore.g:3269:6: ( 'class' )
                    // InternalXcore.g:3270:1: 'class'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getFeatureCallIDAccess().getClassKeyword_4()); 
                    }
                    match(input,27,FollowSets000.FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getFeatureCallIDAccess().getClassKeyword_4()); 
                    }

                    }


                    }
                    break;
                case 6 :
                    // InternalXcore.g:3277:6: ( 'container' )
                    {
                    // InternalXcore.g:3277:6: ( 'container' )
                    // InternalXcore.g:3278:1: 'container'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getFeatureCallIDAccess().getContainerKeyword_5()); 
                    }
                    match(input,28,FollowSets000.FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getFeatureCallIDAccess().getContainerKeyword_5()); 
                    }

                    }


                    }
                    break;
                case 7 :
                    // InternalXcore.g:3285:6: ( 'contains' )
                    {
                    // InternalXcore.g:3285:6: ( 'contains' )
                    // InternalXcore.g:3286:1: 'contains'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getFeatureCallIDAccess().getContainsKeyword_6()); 
                    }
                    match(input,29,FollowSets000.FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getFeatureCallIDAccess().getContainsKeyword_6()); 
                    }

                    }


                    }
                    break;
                case 8 :
                    // InternalXcore.g:3293:6: ( 'convert' )
                    {
                    // InternalXcore.g:3293:6: ( 'convert' )
                    // InternalXcore.g:3294:1: 'convert'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getFeatureCallIDAccess().getConvertKeyword_7()); 
                    }
                    match(input,30,FollowSets000.FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getFeatureCallIDAccess().getConvertKeyword_7()); 
                    }

                    }


                    }
                    break;
                case 9 :
                    // InternalXcore.g:3301:6: ( 'create' )
                    {
                    // InternalXcore.g:3301:6: ( 'create' )
                    // InternalXcore.g:3302:1: 'create'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getFeatureCallIDAccess().getCreateKeyword_8()); 
                    }
                    match(input,31,FollowSets000.FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getFeatureCallIDAccess().getCreateKeyword_8()); 
                    }

                    }


                    }
                    break;
                case 10 :
                    // InternalXcore.g:3309:6: ( 'derived' )
                    {
                    // InternalXcore.g:3309:6: ( 'derived' )
                    // InternalXcore.g:3310:1: 'derived'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getFeatureCallIDAccess().getDerivedKeyword_9()); 
                    }
                    match(input,32,FollowSets000.FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getFeatureCallIDAccess().getDerivedKeyword_9()); 
                    }

                    }


                    }
                    break;
                case 11 :
                    // InternalXcore.g:3317:6: ( 'enum' )
                    {
                    // InternalXcore.g:3317:6: ( 'enum' )
                    // InternalXcore.g:3318:1: 'enum'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getFeatureCallIDAccess().getEnumKeyword_10()); 
                    }
                    match(input,33,FollowSets000.FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getFeatureCallIDAccess().getEnumKeyword_10()); 
                    }

                    }


                    }
                    break;
                case 12 :
                    // InternalXcore.g:3325:6: ( 'extends' )
                    {
                    // InternalXcore.g:3325:6: ( 'extends' )
                    // InternalXcore.g:3326:1: 'extends'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getFeatureCallIDAccess().getExtendsKeyword_11()); 
                    }
                    match(input,34,FollowSets000.FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getFeatureCallIDAccess().getExtendsKeyword_11()); 
                    }

                    }


                    }
                    break;
                case 13 :
                    // InternalXcore.g:3333:6: ( 'extension' )
                    {
                    // InternalXcore.g:3333:6: ( 'extension' )
                    // InternalXcore.g:3334:1: 'extension'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getFeatureCallIDAccess().getExtensionKeyword_12()); 
                    }
                    match(input,35,FollowSets000.FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getFeatureCallIDAccess().getExtensionKeyword_12()); 
                    }

                    }


                    }
                    break;
                case 14 :
                    // InternalXcore.g:3341:6: ( 'id' )
                    {
                    // InternalXcore.g:3341:6: ( 'id' )
                    // InternalXcore.g:3342:1: 'id'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getFeatureCallIDAccess().getIdKeyword_13()); 
                    }
                    match(input,36,FollowSets000.FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getFeatureCallIDAccess().getIdKeyword_13()); 
                    }

                    }


                    }
                    break;
                case 15 :
                    // InternalXcore.g:3349:6: ( 'import' )
                    {
                    // InternalXcore.g:3349:6: ( 'import' )
                    // InternalXcore.g:3350:1: 'import'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getFeatureCallIDAccess().getImportKeyword_14()); 
                    }
                    match(input,37,FollowSets000.FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getFeatureCallIDAccess().getImportKeyword_14()); 
                    }

                    }


                    }
                    break;
                case 16 :
                    // InternalXcore.g:3357:6: ( 'keys' )
                    {
                    // InternalXcore.g:3357:6: ( 'keys' )
                    // InternalXcore.g:3358:1: 'keys'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getFeatureCallIDAccess().getKeysKeyword_15()); 
                    }
                    match(input,38,FollowSets000.FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getFeatureCallIDAccess().getKeysKeyword_15()); 
                    }

                    }


                    }
                    break;
                case 17 :
                    // InternalXcore.g:3365:6: ( 'interface' )
                    {
                    // InternalXcore.g:3365:6: ( 'interface' )
                    // InternalXcore.g:3366:1: 'interface'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getFeatureCallIDAccess().getInterfaceKeyword_16()); 
                    }
                    match(input,39,FollowSets000.FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getFeatureCallIDAccess().getInterfaceKeyword_16()); 
                    }

                    }


                    }
                    break;
                case 18 :
                    // InternalXcore.g:3373:6: ( 'local' )
                    {
                    // InternalXcore.g:3373:6: ( 'local' )
                    // InternalXcore.g:3374:1: 'local'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getFeatureCallIDAccess().getLocalKeyword_17()); 
                    }
                    match(input,40,FollowSets000.FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getFeatureCallIDAccess().getLocalKeyword_17()); 
                    }

                    }


                    }
                    break;
                case 19 :
                    // InternalXcore.g:3381:6: ( 'op' )
                    {
                    // InternalXcore.g:3381:6: ( 'op' )
                    // InternalXcore.g:3382:1: 'op'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getFeatureCallIDAccess().getOpKeyword_18()); 
                    }
                    match(input,41,FollowSets000.FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getFeatureCallIDAccess().getOpKeyword_18()); 
                    }

                    }


                    }
                    break;
                case 20 :
                    // InternalXcore.g:3389:6: ( 'opposite' )
                    {
                    // InternalXcore.g:3389:6: ( 'opposite' )
                    // InternalXcore.g:3390:1: 'opposite'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getFeatureCallIDAccess().getOppositeKeyword_19()); 
                    }
                    match(input,42,FollowSets000.FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getFeatureCallIDAccess().getOppositeKeyword_19()); 
                    }

                    }


                    }
                    break;
                case 21 :
                    // InternalXcore.g:3397:6: ( 'package' )
                    {
                    // InternalXcore.g:3397:6: ( 'package' )
                    // InternalXcore.g:3398:1: 'package'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getFeatureCallIDAccess().getPackageKeyword_20()); 
                    }
                    match(input,43,FollowSets000.FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getFeatureCallIDAccess().getPackageKeyword_20()); 
                    }

                    }


                    }
                    break;
                case 22 :
                    // InternalXcore.g:3405:6: ( 'readonly' )
                    {
                    // InternalXcore.g:3405:6: ( 'readonly' )
                    // InternalXcore.g:3406:1: 'readonly'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getFeatureCallIDAccess().getReadonlyKeyword_21()); 
                    }
                    match(input,44,FollowSets000.FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getFeatureCallIDAccess().getReadonlyKeyword_21()); 
                    }

                    }


                    }
                    break;
                case 23 :
                    // InternalXcore.g:3413:6: ( 'refers' )
                    {
                    // InternalXcore.g:3413:6: ( 'refers' )
                    // InternalXcore.g:3414:1: 'refers'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getFeatureCallIDAccess().getRefersKeyword_22()); 
                    }
                    match(input,45,FollowSets000.FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getFeatureCallIDAccess().getRefersKeyword_22()); 
                    }

                    }


                    }
                    break;
                case 24 :
                    // InternalXcore.g:3421:6: ( 'resolving' )
                    {
                    // InternalXcore.g:3421:6: ( 'resolving' )
                    // InternalXcore.g:3422:1: 'resolving'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getFeatureCallIDAccess().getResolvingKeyword_23()); 
                    }
                    match(input,46,FollowSets000.FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getFeatureCallIDAccess().getResolvingKeyword_23()); 
                    }

                    }


                    }
                    break;
                case 25 :
                    // InternalXcore.g:3429:6: ( 'static' )
                    {
                    // InternalXcore.g:3429:6: ( 'static' )
                    // InternalXcore.g:3430:1: 'static'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getFeatureCallIDAccess().getStaticKeyword_24()); 
                    }
                    match(input,47,FollowSets000.FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getFeatureCallIDAccess().getStaticKeyword_24()); 
                    }

                    }


                    }
                    break;
                case 26 :
                    // InternalXcore.g:3437:6: ( 'throws' )
                    {
                    // InternalXcore.g:3437:6: ( 'throws' )
                    // InternalXcore.g:3438:1: 'throws'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getFeatureCallIDAccess().getThrowsKeyword_25()); 
                    }
                    match(input,48,FollowSets000.FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getFeatureCallIDAccess().getThrowsKeyword_25()); 
                    }

                    }


                    }
                    break;
                case 27 :
                    // InternalXcore.g:3445:6: ( 'transient' )
                    {
                    // InternalXcore.g:3445:6: ( 'transient' )
                    // InternalXcore.g:3446:1: 'transient'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getFeatureCallIDAccess().getTransientKeyword_26()); 
                    }
                    match(input,49,FollowSets000.FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getFeatureCallIDAccess().getTransientKeyword_26()); 
                    }

                    }


                    }
                    break;
                case 28 :
                    // InternalXcore.g:3453:6: ( 'unique' )
                    {
                    // InternalXcore.g:3453:6: ( 'unique' )
                    // InternalXcore.g:3454:1: 'unique'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getFeatureCallIDAccess().getUniqueKeyword_27()); 
                    }
                    match(input,50,FollowSets000.FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getFeatureCallIDAccess().getUniqueKeyword_27()); 
                    }

                    }


                    }
                    break;
                case 29 :
                    // InternalXcore.g:3461:6: ( 'unordered' )
                    {
                    // InternalXcore.g:3461:6: ( 'unordered' )
                    // InternalXcore.g:3462:1: 'unordered'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getFeatureCallIDAccess().getUnorderedKeyword_28()); 
                    }
                    match(input,51,FollowSets000.FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getFeatureCallIDAccess().getUnorderedKeyword_28()); 
                    }

                    }


                    }
                    break;
                case 30 :
                    // InternalXcore.g:3469:6: ( 'unsettable' )
                    {
                    // InternalXcore.g:3469:6: ( 'unsettable' )
                    // InternalXcore.g:3470:1: 'unsettable'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getFeatureCallIDAccess().getUnsettableKeyword_29()); 
                    }
                    match(input,52,FollowSets000.FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getFeatureCallIDAccess().getUnsettableKeyword_29()); 
                    }

                    }


                    }
                    break;
                case 31 :
                    // InternalXcore.g:3477:6: ( 'volatile' )
                    {
                    // InternalXcore.g:3477:6: ( 'volatile' )
                    // InternalXcore.g:3478:1: 'volatile'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getFeatureCallIDAccess().getVolatileKeyword_30()); 
                    }
                    match(input,53,FollowSets000.FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getFeatureCallIDAccess().getVolatileKeyword_30()); 
                    }

                    }


                    }
                    break;
                case 32 :
                    // InternalXcore.g:3485:6: ( 'wraps' )
                    {
                    // InternalXcore.g:3485:6: ( 'wraps' )
                    // InternalXcore.g:3486:1: 'wraps'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getFeatureCallIDAccess().getWrapsKeyword_31()); 
                    }
                    match(input,54,FollowSets000.FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getFeatureCallIDAccess().getWrapsKeyword_31()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__FeatureCallID__Alternatives"


    // $ANTLR start "rule__XAssignment__Alternatives"
    // InternalXcore.g:3498:1: rule__XAssignment__Alternatives : ( ( ( rule__XAssignment__Group_0__0 ) ) | ( ( rule__XAssignment__Group_1__0 ) ) );
    public final void rule__XAssignment__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:3502:1: ( ( ( rule__XAssignment__Group_0__0 ) ) | ( ( rule__XAssignment__Group_1__0 ) ) )
            int alt17=2;
            alt17 = dfa17.predict(input);
            switch (alt17) {
                case 1 :
                    // InternalXcore.g:3503:1: ( ( rule__XAssignment__Group_0__0 ) )
                    {
                    // InternalXcore.g:3503:1: ( ( rule__XAssignment__Group_0__0 ) )
                    // InternalXcore.g:3504:1: ( rule__XAssignment__Group_0__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXAssignmentAccess().getGroup_0()); 
                    }
                    // InternalXcore.g:3505:1: ( rule__XAssignment__Group_0__0 )
                    // InternalXcore.g:3505:2: rule__XAssignment__Group_0__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XAssignment__Group_0__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXAssignmentAccess().getGroup_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // InternalXcore.g:3509:6: ( ( rule__XAssignment__Group_1__0 ) )
                    {
                    // InternalXcore.g:3509:6: ( ( rule__XAssignment__Group_1__0 ) )
                    // InternalXcore.g:3510:1: ( rule__XAssignment__Group_1__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXAssignmentAccess().getGroup_1()); 
                    }
                    // InternalXcore.g:3511:1: ( rule__XAssignment__Group_1__0 )
                    // InternalXcore.g:3511:2: rule__XAssignment__Group_1__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XAssignment__Group_1__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXAssignmentAccess().getGroup_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAssignment__Alternatives"


    // $ANTLR start "rule__OpMultiAssign__Alternatives"
    // InternalXcore.g:3520:1: rule__OpMultiAssign__Alternatives : ( ( '+=' ) | ( '-=' ) | ( '*=' ) | ( '/=' ) | ( '%=' ) | ( ( rule__OpMultiAssign__Group_5__0 ) ) | ( ( rule__OpMultiAssign__Group_6__0 ) ) );
    public final void rule__OpMultiAssign__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:3524:1: ( ( '+=' ) | ( '-=' ) | ( '*=' ) | ( '/=' ) | ( '%=' ) | ( ( rule__OpMultiAssign__Group_5__0 ) ) | ( ( rule__OpMultiAssign__Group_6__0 ) ) )
            int alt18=7;
            switch ( input.LA(1) ) {
            case 55:
                {
                alt18=1;
                }
                break;
            case 56:
                {
                alt18=2;
                }
                break;
            case 57:
                {
                alt18=3;
                }
                break;
            case 58:
                {
                alt18=4;
                }
                break;
            case 59:
                {
                alt18=5;
                }
                break;
            case 66:
                {
                alt18=6;
                }
                break;
            case 65:
                {
                alt18=7;
                }
                break;
            default:
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 18, 0, input);

                throw nvae;
            }

            switch (alt18) {
                case 1 :
                    // InternalXcore.g:3525:1: ( '+=' )
                    {
                    // InternalXcore.g:3525:1: ( '+=' )
                    // InternalXcore.g:3526:1: '+='
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getOpMultiAssignAccess().getPlusSignEqualsSignKeyword_0()); 
                    }
                    match(input,55,FollowSets000.FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getOpMultiAssignAccess().getPlusSignEqualsSignKeyword_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // InternalXcore.g:3533:6: ( '-=' )
                    {
                    // InternalXcore.g:3533:6: ( '-=' )
                    // InternalXcore.g:3534:1: '-='
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getOpMultiAssignAccess().getHyphenMinusEqualsSignKeyword_1()); 
                    }
                    match(input,56,FollowSets000.FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getOpMultiAssignAccess().getHyphenMinusEqualsSignKeyword_1()); 
                    }

                    }


                    }
                    break;
                case 3 :
                    // InternalXcore.g:3541:6: ( '*=' )
                    {
                    // InternalXcore.g:3541:6: ( '*=' )
                    // InternalXcore.g:3542:1: '*='
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getOpMultiAssignAccess().getAsteriskEqualsSignKeyword_2()); 
                    }
                    match(input,57,FollowSets000.FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getOpMultiAssignAccess().getAsteriskEqualsSignKeyword_2()); 
                    }

                    }


                    }
                    break;
                case 4 :
                    // InternalXcore.g:3549:6: ( '/=' )
                    {
                    // InternalXcore.g:3549:6: ( '/=' )
                    // InternalXcore.g:3550:1: '/='
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getOpMultiAssignAccess().getSolidusEqualsSignKeyword_3()); 
                    }
                    match(input,58,FollowSets000.FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getOpMultiAssignAccess().getSolidusEqualsSignKeyword_3()); 
                    }

                    }


                    }
                    break;
                case 5 :
                    // InternalXcore.g:3557:6: ( '%=' )
                    {
                    // InternalXcore.g:3557:6: ( '%=' )
                    // InternalXcore.g:3558:1: '%='
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getOpMultiAssignAccess().getPercentSignEqualsSignKeyword_4()); 
                    }
                    match(input,59,FollowSets000.FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getOpMultiAssignAccess().getPercentSignEqualsSignKeyword_4()); 
                    }

                    }


                    }
                    break;
                case 6 :
                    // InternalXcore.g:3565:6: ( ( rule__OpMultiAssign__Group_5__0 ) )
                    {
                    // InternalXcore.g:3565:6: ( ( rule__OpMultiAssign__Group_5__0 ) )
                    // InternalXcore.g:3566:1: ( rule__OpMultiAssign__Group_5__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getOpMultiAssignAccess().getGroup_5()); 
                    }
                    // InternalXcore.g:3567:1: ( rule__OpMultiAssign__Group_5__0 )
                    // InternalXcore.g:3567:2: rule__OpMultiAssign__Group_5__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__OpMultiAssign__Group_5__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getOpMultiAssignAccess().getGroup_5()); 
                    }

                    }


                    }
                    break;
                case 7 :
                    // InternalXcore.g:3571:6: ( ( rule__OpMultiAssign__Group_6__0 ) )
                    {
                    // InternalXcore.g:3571:6: ( ( rule__OpMultiAssign__Group_6__0 ) )
                    // InternalXcore.g:3572:1: ( rule__OpMultiAssign__Group_6__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getOpMultiAssignAccess().getGroup_6()); 
                    }
                    // InternalXcore.g:3573:1: ( rule__OpMultiAssign__Group_6__0 )
                    // InternalXcore.g:3573:2: rule__OpMultiAssign__Group_6__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__OpMultiAssign__Group_6__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getOpMultiAssignAccess().getGroup_6()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__OpMultiAssign__Alternatives"


    // $ANTLR start "rule__OpEquality__Alternatives"
    // InternalXcore.g:3582:1: rule__OpEquality__Alternatives : ( ( '==' ) | ( '!=' ) | ( '===' ) | ( '!==' ) );
    public final void rule__OpEquality__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:3586:1: ( ( '==' ) | ( '!=' ) | ( '===' ) | ( '!==' ) )
            int alt19=4;
            switch ( input.LA(1) ) {
            case 60:
                {
                alt19=1;
                }
                break;
            case 61:
                {
                alt19=2;
                }
                break;
            case 62:
                {
                alt19=3;
                }
                break;
            case 63:
                {
                alt19=4;
                }
                break;
            default:
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 19, 0, input);

                throw nvae;
            }

            switch (alt19) {
                case 1 :
                    // InternalXcore.g:3587:1: ( '==' )
                    {
                    // InternalXcore.g:3587:1: ( '==' )
                    // InternalXcore.g:3588:1: '=='
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getOpEqualityAccess().getEqualsSignEqualsSignKeyword_0()); 
                    }
                    match(input,60,FollowSets000.FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getOpEqualityAccess().getEqualsSignEqualsSignKeyword_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // InternalXcore.g:3595:6: ( '!=' )
                    {
                    // InternalXcore.g:3595:6: ( '!=' )
                    // InternalXcore.g:3596:1: '!='
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getOpEqualityAccess().getExclamationMarkEqualsSignKeyword_1()); 
                    }
                    match(input,61,FollowSets000.FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getOpEqualityAccess().getExclamationMarkEqualsSignKeyword_1()); 
                    }

                    }


                    }
                    break;
                case 3 :
                    // InternalXcore.g:3603:6: ( '===' )
                    {
                    // InternalXcore.g:3603:6: ( '===' )
                    // InternalXcore.g:3604:1: '==='
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getOpEqualityAccess().getEqualsSignEqualsSignEqualsSignKeyword_2()); 
                    }
                    match(input,62,FollowSets000.FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getOpEqualityAccess().getEqualsSignEqualsSignEqualsSignKeyword_2()); 
                    }

                    }


                    }
                    break;
                case 4 :
                    // InternalXcore.g:3611:6: ( '!==' )
                    {
                    // InternalXcore.g:3611:6: ( '!==' )
                    // InternalXcore.g:3612:1: '!=='
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getOpEqualityAccess().getExclamationMarkEqualsSignEqualsSignKeyword_3()); 
                    }
                    match(input,63,FollowSets000.FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getOpEqualityAccess().getExclamationMarkEqualsSignEqualsSignKeyword_3()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__OpEquality__Alternatives"


    // $ANTLR start "rule__XRelationalExpression__Alternatives_1"
    // InternalXcore.g:3624:1: rule__XRelationalExpression__Alternatives_1 : ( ( ( rule__XRelationalExpression__Group_1_0__0 ) ) | ( ( rule__XRelationalExpression__Group_1_1__0 ) ) );
    public final void rule__XRelationalExpression__Alternatives_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:3628:1: ( ( ( rule__XRelationalExpression__Group_1_0__0 ) ) | ( ( rule__XRelationalExpression__Group_1_1__0 ) ) )
            int alt20=2;
            int LA20_0 = input.LA(1);

            if ( (LA20_0==95) ) {
                alt20=1;
            }
            else if ( ((LA20_0>=64 && LA20_0<=66)) ) {
                alt20=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 20, 0, input);

                throw nvae;
            }
            switch (alt20) {
                case 1 :
                    // InternalXcore.g:3629:1: ( ( rule__XRelationalExpression__Group_1_0__0 ) )
                    {
                    // InternalXcore.g:3629:1: ( ( rule__XRelationalExpression__Group_1_0__0 ) )
                    // InternalXcore.g:3630:1: ( rule__XRelationalExpression__Group_1_0__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXRelationalExpressionAccess().getGroup_1_0()); 
                    }
                    // InternalXcore.g:3631:1: ( rule__XRelationalExpression__Group_1_0__0 )
                    // InternalXcore.g:3631:2: rule__XRelationalExpression__Group_1_0__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XRelationalExpression__Group_1_0__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXRelationalExpressionAccess().getGroup_1_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // InternalXcore.g:3635:6: ( ( rule__XRelationalExpression__Group_1_1__0 ) )
                    {
                    // InternalXcore.g:3635:6: ( ( rule__XRelationalExpression__Group_1_1__0 ) )
                    // InternalXcore.g:3636:1: ( rule__XRelationalExpression__Group_1_1__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXRelationalExpressionAccess().getGroup_1_1()); 
                    }
                    // InternalXcore.g:3637:1: ( rule__XRelationalExpression__Group_1_1__0 )
                    // InternalXcore.g:3637:2: rule__XRelationalExpression__Group_1_1__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XRelationalExpression__Group_1_1__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXRelationalExpressionAccess().getGroup_1_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XRelationalExpression__Alternatives_1"


    // $ANTLR start "rule__OpCompare__Alternatives"
    // InternalXcore.g:3646:1: rule__OpCompare__Alternatives : ( ( '>=' ) | ( ( rule__OpCompare__Group_1__0 ) ) | ( '>' ) | ( '<' ) );
    public final void rule__OpCompare__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:3650:1: ( ( '>=' ) | ( ( rule__OpCompare__Group_1__0 ) ) | ( '>' ) | ( '<' ) )
            int alt21=4;
            switch ( input.LA(1) ) {
            case 64:
                {
                alt21=1;
                }
                break;
            case 66:
                {
                int LA21_2 = input.LA(2);

                if ( (LA21_2==13) ) {
                    alt21=2;
                }
                else if ( (LA21_2==EOF||(LA21_2>=RULE_INT && LA21_2<=RULE_STRING)||LA21_2==16||(LA21_2>=19 && LA21_2<=54)||LA21_2==66||LA21_2==73||LA21_2==77||(LA21_2>=82 && LA21_2<=83)||LA21_2==85||LA21_2==89||LA21_2==92||(LA21_2>=96 && LA21_2<=97)||LA21_2==99||(LA21_2>=103 && LA21_2<=111)||LA21_2==113||LA21_2==119) ) {
                    alt21=4;
                }
                else {
                    if (state.backtracking>0) {state.failed=true; return ;}
                    NoViableAltException nvae =
                        new NoViableAltException("", 21, 2, input);

                    throw nvae;
                }
                }
                break;
            case 65:
                {
                alt21=3;
                }
                break;
            default:
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 21, 0, input);

                throw nvae;
            }

            switch (alt21) {
                case 1 :
                    // InternalXcore.g:3651:1: ( '>=' )
                    {
                    // InternalXcore.g:3651:1: ( '>=' )
                    // InternalXcore.g:3652:1: '>='
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getOpCompareAccess().getGreaterThanSignEqualsSignKeyword_0()); 
                    }
                    match(input,64,FollowSets000.FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getOpCompareAccess().getGreaterThanSignEqualsSignKeyword_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // InternalXcore.g:3659:6: ( ( rule__OpCompare__Group_1__0 ) )
                    {
                    // InternalXcore.g:3659:6: ( ( rule__OpCompare__Group_1__0 ) )
                    // InternalXcore.g:3660:1: ( rule__OpCompare__Group_1__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getOpCompareAccess().getGroup_1()); 
                    }
                    // InternalXcore.g:3661:1: ( rule__OpCompare__Group_1__0 )
                    // InternalXcore.g:3661:2: rule__OpCompare__Group_1__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__OpCompare__Group_1__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getOpCompareAccess().getGroup_1()); 
                    }

                    }


                    }
                    break;
                case 3 :
                    // InternalXcore.g:3665:6: ( '>' )
                    {
                    // InternalXcore.g:3665:6: ( '>' )
                    // InternalXcore.g:3666:1: '>'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getOpCompareAccess().getGreaterThanSignKeyword_2()); 
                    }
                    match(input,65,FollowSets000.FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getOpCompareAccess().getGreaterThanSignKeyword_2()); 
                    }

                    }


                    }
                    break;
                case 4 :
                    // InternalXcore.g:3673:6: ( '<' )
                    {
                    // InternalXcore.g:3673:6: ( '<' )
                    // InternalXcore.g:3674:1: '<'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getOpCompareAccess().getLessThanSignKeyword_3()); 
                    }
                    match(input,66,FollowSets000.FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getOpCompareAccess().getLessThanSignKeyword_3()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__OpCompare__Alternatives"


    // $ANTLR start "rule__OpOther__Alternatives"
    // InternalXcore.g:3686:1: rule__OpOther__Alternatives : ( ( '->' ) | ( '..<' ) | ( ( rule__OpOther__Group_2__0 ) ) | ( '..' ) | ( '=>' ) | ( ( rule__OpOther__Group_5__0 ) ) | ( ( rule__OpOther__Group_6__0 ) ) | ( '<>' ) | ( '?:' ) );
    public final void rule__OpOther__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:3690:1: ( ( '->' ) | ( '..<' ) | ( ( rule__OpOther__Group_2__0 ) ) | ( '..' ) | ( '=>' ) | ( ( rule__OpOther__Group_5__0 ) ) | ( ( rule__OpOther__Group_6__0 ) ) | ( '<>' ) | ( '?:' ) )
            int alt22=9;
            alt22 = dfa22.predict(input);
            switch (alt22) {
                case 1 :
                    // InternalXcore.g:3691:1: ( '->' )
                    {
                    // InternalXcore.g:3691:1: ( '->' )
                    // InternalXcore.g:3692:1: '->'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getOpOtherAccess().getHyphenMinusGreaterThanSignKeyword_0()); 
                    }
                    match(input,67,FollowSets000.FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getOpOtherAccess().getHyphenMinusGreaterThanSignKeyword_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // InternalXcore.g:3699:6: ( '..<' )
                    {
                    // InternalXcore.g:3699:6: ( '..<' )
                    // InternalXcore.g:3700:1: '..<'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getOpOtherAccess().getFullStopFullStopLessThanSignKeyword_1()); 
                    }
                    match(input,68,FollowSets000.FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getOpOtherAccess().getFullStopFullStopLessThanSignKeyword_1()); 
                    }

                    }


                    }
                    break;
                case 3 :
                    // InternalXcore.g:3707:6: ( ( rule__OpOther__Group_2__0 ) )
                    {
                    // InternalXcore.g:3707:6: ( ( rule__OpOther__Group_2__0 ) )
                    // InternalXcore.g:3708:1: ( rule__OpOther__Group_2__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getOpOtherAccess().getGroup_2()); 
                    }
                    // InternalXcore.g:3709:1: ( rule__OpOther__Group_2__0 )
                    // InternalXcore.g:3709:2: rule__OpOther__Group_2__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__OpOther__Group_2__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getOpOtherAccess().getGroup_2()); 
                    }

                    }


                    }
                    break;
                case 4 :
                    // InternalXcore.g:3713:6: ( '..' )
                    {
                    // InternalXcore.g:3713:6: ( '..' )
                    // InternalXcore.g:3714:1: '..'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getOpOtherAccess().getFullStopFullStopKeyword_3()); 
                    }
                    match(input,69,FollowSets000.FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getOpOtherAccess().getFullStopFullStopKeyword_3()); 
                    }

                    }


                    }
                    break;
                case 5 :
                    // InternalXcore.g:3721:6: ( '=>' )
                    {
                    // InternalXcore.g:3721:6: ( '=>' )
                    // InternalXcore.g:3722:1: '=>'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getOpOtherAccess().getEqualsSignGreaterThanSignKeyword_4()); 
                    }
                    match(input,70,FollowSets000.FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getOpOtherAccess().getEqualsSignGreaterThanSignKeyword_4()); 
                    }

                    }


                    }
                    break;
                case 6 :
                    // InternalXcore.g:3729:6: ( ( rule__OpOther__Group_5__0 ) )
                    {
                    // InternalXcore.g:3729:6: ( ( rule__OpOther__Group_5__0 ) )
                    // InternalXcore.g:3730:1: ( rule__OpOther__Group_5__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getOpOtherAccess().getGroup_5()); 
                    }
                    // InternalXcore.g:3731:1: ( rule__OpOther__Group_5__0 )
                    // InternalXcore.g:3731:2: rule__OpOther__Group_5__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__OpOther__Group_5__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getOpOtherAccess().getGroup_5()); 
                    }

                    }


                    }
                    break;
                case 7 :
                    // InternalXcore.g:3735:6: ( ( rule__OpOther__Group_6__0 ) )
                    {
                    // InternalXcore.g:3735:6: ( ( rule__OpOther__Group_6__0 ) )
                    // InternalXcore.g:3736:1: ( rule__OpOther__Group_6__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getOpOtherAccess().getGroup_6()); 
                    }
                    // InternalXcore.g:3737:1: ( rule__OpOther__Group_6__0 )
                    // InternalXcore.g:3737:2: rule__OpOther__Group_6__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__OpOther__Group_6__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getOpOtherAccess().getGroup_6()); 
                    }

                    }


                    }
                    break;
                case 8 :
                    // InternalXcore.g:3741:6: ( '<>' )
                    {
                    // InternalXcore.g:3741:6: ( '<>' )
                    // InternalXcore.g:3742:1: '<>'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getOpOtherAccess().getLessThanSignGreaterThanSignKeyword_7()); 
                    }
                    match(input,71,FollowSets000.FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getOpOtherAccess().getLessThanSignGreaterThanSignKeyword_7()); 
                    }

                    }


                    }
                    break;
                case 9 :
                    // InternalXcore.g:3749:6: ( '?:' )
                    {
                    // InternalXcore.g:3749:6: ( '?:' )
                    // InternalXcore.g:3750:1: '?:'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getOpOtherAccess().getQuestionMarkColonKeyword_8()); 
                    }
                    match(input,72,FollowSets000.FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getOpOtherAccess().getQuestionMarkColonKeyword_8()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__OpOther__Alternatives"


    // $ANTLR start "rule__OpOther__Alternatives_5_1"
    // InternalXcore.g:3762:1: rule__OpOther__Alternatives_5_1 : ( ( ( rule__OpOther__Group_5_1_0__0 ) ) | ( '>' ) );
    public final void rule__OpOther__Alternatives_5_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:3766:1: ( ( ( rule__OpOther__Group_5_1_0__0 ) ) | ( '>' ) )
            int alt23=2;
            int LA23_0 = input.LA(1);

            if ( (LA23_0==65) ) {
                int LA23_1 = input.LA(2);

                if ( (LA23_1==EOF||(LA23_1>=RULE_INT && LA23_1<=RULE_STRING)||LA23_1==16||(LA23_1>=19 && LA23_1<=54)||LA23_1==66||LA23_1==73||LA23_1==77||(LA23_1>=82 && LA23_1<=83)||LA23_1==85||LA23_1==89||LA23_1==92||(LA23_1>=96 && LA23_1<=97)||LA23_1==99||(LA23_1>=103 && LA23_1<=111)||LA23_1==113||LA23_1==119) ) {
                    alt23=2;
                }
                else if ( (LA23_1==65) ) {
                    alt23=1;
                }
                else {
                    if (state.backtracking>0) {state.failed=true; return ;}
                    NoViableAltException nvae =
                        new NoViableAltException("", 23, 1, input);

                    throw nvae;
                }
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 23, 0, input);

                throw nvae;
            }
            switch (alt23) {
                case 1 :
                    // InternalXcore.g:3767:1: ( ( rule__OpOther__Group_5_1_0__0 ) )
                    {
                    // InternalXcore.g:3767:1: ( ( rule__OpOther__Group_5_1_0__0 ) )
                    // InternalXcore.g:3768:1: ( rule__OpOther__Group_5_1_0__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getOpOtherAccess().getGroup_5_1_0()); 
                    }
                    // InternalXcore.g:3769:1: ( rule__OpOther__Group_5_1_0__0 )
                    // InternalXcore.g:3769:2: rule__OpOther__Group_5_1_0__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__OpOther__Group_5_1_0__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getOpOtherAccess().getGroup_5_1_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // InternalXcore.g:3773:6: ( '>' )
                    {
                    // InternalXcore.g:3773:6: ( '>' )
                    // InternalXcore.g:3774:1: '>'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_1_1()); 
                    }
                    match(input,65,FollowSets000.FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_1_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__OpOther__Alternatives_5_1"


    // $ANTLR start "rule__OpOther__Alternatives_6_1"
    // InternalXcore.g:3786:1: rule__OpOther__Alternatives_6_1 : ( ( ( rule__OpOther__Group_6_1_0__0 ) ) | ( '<' ) | ( '=>' ) );
    public final void rule__OpOther__Alternatives_6_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:3790:1: ( ( ( rule__OpOther__Group_6_1_0__0 ) ) | ( '<' ) | ( '=>' ) )
            int alt24=3;
            int LA24_0 = input.LA(1);

            if ( (LA24_0==66) ) {
                int LA24_1 = input.LA(2);

                if ( (synpred82_InternalXcore()) ) {
                    alt24=1;
                }
                else if ( (synpred83_InternalXcore()) ) {
                    alt24=2;
                }
                else {
                    if (state.backtracking>0) {state.failed=true; return ;}
                    NoViableAltException nvae =
                        new NoViableAltException("", 24, 1, input);

                    throw nvae;
                }
            }
            else if ( (LA24_0==70) ) {
                alt24=3;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 24, 0, input);

                throw nvae;
            }
            switch (alt24) {
                case 1 :
                    // InternalXcore.g:3791:1: ( ( rule__OpOther__Group_6_1_0__0 ) )
                    {
                    // InternalXcore.g:3791:1: ( ( rule__OpOther__Group_6_1_0__0 ) )
                    // InternalXcore.g:3792:1: ( rule__OpOther__Group_6_1_0__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getOpOtherAccess().getGroup_6_1_0()); 
                    }
                    // InternalXcore.g:3793:1: ( rule__OpOther__Group_6_1_0__0 )
                    // InternalXcore.g:3793:2: rule__OpOther__Group_6_1_0__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__OpOther__Group_6_1_0__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getOpOtherAccess().getGroup_6_1_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // InternalXcore.g:3797:6: ( '<' )
                    {
                    // InternalXcore.g:3797:6: ( '<' )
                    // InternalXcore.g:3798:1: '<'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_1()); 
                    }
                    match(input,66,FollowSets000.FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_1()); 
                    }

                    }


                    }
                    break;
                case 3 :
                    // InternalXcore.g:3805:6: ( '=>' )
                    {
                    // InternalXcore.g:3805:6: ( '=>' )
                    // InternalXcore.g:3806:1: '=>'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getOpOtherAccess().getEqualsSignGreaterThanSignKeyword_6_1_2()); 
                    }
                    match(input,70,FollowSets000.FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getOpOtherAccess().getEqualsSignGreaterThanSignKeyword_6_1_2()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__OpOther__Alternatives_6_1"


    // $ANTLR start "rule__OpAdd__Alternatives"
    // InternalXcore.g:3818:1: rule__OpAdd__Alternatives : ( ( '+' ) | ( '-' ) );
    public final void rule__OpAdd__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:3822:1: ( ( '+' ) | ( '-' ) )
            int alt25=2;
            int LA25_0 = input.LA(1);

            if ( (LA25_0==19) ) {
                alt25=1;
            }
            else if ( (LA25_0==73) ) {
                alt25=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 25, 0, input);

                throw nvae;
            }
            switch (alt25) {
                case 1 :
                    // InternalXcore.g:3823:1: ( '+' )
                    {
                    // InternalXcore.g:3823:1: ( '+' )
                    // InternalXcore.g:3824:1: '+'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getOpAddAccess().getPlusSignKeyword_0()); 
                    }
                    match(input,19,FollowSets000.FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getOpAddAccess().getPlusSignKeyword_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // InternalXcore.g:3831:6: ( '-' )
                    {
                    // InternalXcore.g:3831:6: ( '-' )
                    // InternalXcore.g:3832:1: '-'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getOpAddAccess().getHyphenMinusKeyword_1()); 
                    }
                    match(input,73,FollowSets000.FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getOpAddAccess().getHyphenMinusKeyword_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__OpAdd__Alternatives"


    // $ANTLR start "rule__OpMulti__Alternatives"
    // InternalXcore.g:3844:1: rule__OpMulti__Alternatives : ( ( '*' ) | ( '**' ) | ( '/' ) | ( '%' ) );
    public final void rule__OpMulti__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:3848:1: ( ( '*' ) | ( '**' ) | ( '/' ) | ( '%' ) )
            int alt26=4;
            switch ( input.LA(1) ) {
            case 18:
                {
                alt26=1;
                }
                break;
            case 74:
                {
                alt26=2;
                }
                break;
            case 75:
                {
                alt26=3;
                }
                break;
            case 76:
                {
                alt26=4;
                }
                break;
            default:
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 26, 0, input);

                throw nvae;
            }

            switch (alt26) {
                case 1 :
                    // InternalXcore.g:3849:1: ( '*' )
                    {
                    // InternalXcore.g:3849:1: ( '*' )
                    // InternalXcore.g:3850:1: '*'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getOpMultiAccess().getAsteriskKeyword_0()); 
                    }
                    match(input,18,FollowSets000.FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getOpMultiAccess().getAsteriskKeyword_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // InternalXcore.g:3857:6: ( '**' )
                    {
                    // InternalXcore.g:3857:6: ( '**' )
                    // InternalXcore.g:3858:1: '**'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getOpMultiAccess().getAsteriskAsteriskKeyword_1()); 
                    }
                    match(input,74,FollowSets000.FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getOpMultiAccess().getAsteriskAsteriskKeyword_1()); 
                    }

                    }


                    }
                    break;
                case 3 :
                    // InternalXcore.g:3865:6: ( '/' )
                    {
                    // InternalXcore.g:3865:6: ( '/' )
                    // InternalXcore.g:3866:1: '/'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getOpMultiAccess().getSolidusKeyword_2()); 
                    }
                    match(input,75,FollowSets000.FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getOpMultiAccess().getSolidusKeyword_2()); 
                    }

                    }


                    }
                    break;
                case 4 :
                    // InternalXcore.g:3873:6: ( '%' )
                    {
                    // InternalXcore.g:3873:6: ( '%' )
                    // InternalXcore.g:3874:1: '%'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getOpMultiAccess().getPercentSignKeyword_3()); 
                    }
                    match(input,76,FollowSets000.FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getOpMultiAccess().getPercentSignKeyword_3()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__OpMulti__Alternatives"


    // $ANTLR start "rule__XUnaryOperation__Alternatives"
    // InternalXcore.g:3886:1: rule__XUnaryOperation__Alternatives : ( ( ( rule__XUnaryOperation__Group_0__0 ) ) | ( ruleXCastedExpression ) );
    public final void rule__XUnaryOperation__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:3890:1: ( ( ( rule__XUnaryOperation__Group_0__0 ) ) | ( ruleXCastedExpression ) )
            int alt27=2;
            int LA27_0 = input.LA(1);

            if ( (LA27_0==19||LA27_0==73||LA27_0==77) ) {
                alt27=1;
            }
            else if ( ((LA27_0>=RULE_INT && LA27_0<=RULE_STRING)||LA27_0==16||(LA27_0>=20 && LA27_0<=54)||LA27_0==66||(LA27_0>=82 && LA27_0<=83)||LA27_0==85||LA27_0==89||LA27_0==92||(LA27_0>=96 && LA27_0<=97)||LA27_0==99||(LA27_0>=103 && LA27_0<=111)||LA27_0==113||LA27_0==119) ) {
                alt27=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 27, 0, input);

                throw nvae;
            }
            switch (alt27) {
                case 1 :
                    // InternalXcore.g:3891:1: ( ( rule__XUnaryOperation__Group_0__0 ) )
                    {
                    // InternalXcore.g:3891:1: ( ( rule__XUnaryOperation__Group_0__0 ) )
                    // InternalXcore.g:3892:1: ( rule__XUnaryOperation__Group_0__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXUnaryOperationAccess().getGroup_0()); 
                    }
                    // InternalXcore.g:3893:1: ( rule__XUnaryOperation__Group_0__0 )
                    // InternalXcore.g:3893:2: rule__XUnaryOperation__Group_0__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XUnaryOperation__Group_0__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXUnaryOperationAccess().getGroup_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // InternalXcore.g:3897:6: ( ruleXCastedExpression )
                    {
                    // InternalXcore.g:3897:6: ( ruleXCastedExpression )
                    // InternalXcore.g:3898:1: ruleXCastedExpression
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXUnaryOperationAccess().getXCastedExpressionParserRuleCall_1()); 
                    }
                    pushFollow(FollowSets000.FOLLOW_2);
                    ruleXCastedExpression();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXUnaryOperationAccess().getXCastedExpressionParserRuleCall_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XUnaryOperation__Alternatives"


    // $ANTLR start "rule__OpUnary__Alternatives"
    // InternalXcore.g:3908:1: rule__OpUnary__Alternatives : ( ( '!' ) | ( '-' ) | ( '+' ) );
    public final void rule__OpUnary__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:3912:1: ( ( '!' ) | ( '-' ) | ( '+' ) )
            int alt28=3;
            switch ( input.LA(1) ) {
            case 77:
                {
                alt28=1;
                }
                break;
            case 73:
                {
                alt28=2;
                }
                break;
            case 19:
                {
                alt28=3;
                }
                break;
            default:
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 28, 0, input);

                throw nvae;
            }

            switch (alt28) {
                case 1 :
                    // InternalXcore.g:3913:1: ( '!' )
                    {
                    // InternalXcore.g:3913:1: ( '!' )
                    // InternalXcore.g:3914:1: '!'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getOpUnaryAccess().getExclamationMarkKeyword_0()); 
                    }
                    match(input,77,FollowSets000.FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getOpUnaryAccess().getExclamationMarkKeyword_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // InternalXcore.g:3921:6: ( '-' )
                    {
                    // InternalXcore.g:3921:6: ( '-' )
                    // InternalXcore.g:3922:1: '-'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getOpUnaryAccess().getHyphenMinusKeyword_1()); 
                    }
                    match(input,73,FollowSets000.FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getOpUnaryAccess().getHyphenMinusKeyword_1()); 
                    }

                    }


                    }
                    break;
                case 3 :
                    // InternalXcore.g:3929:6: ( '+' )
                    {
                    // InternalXcore.g:3929:6: ( '+' )
                    // InternalXcore.g:3930:1: '+'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getOpUnaryAccess().getPlusSignKeyword_2()); 
                    }
                    match(input,19,FollowSets000.FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getOpUnaryAccess().getPlusSignKeyword_2()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__OpUnary__Alternatives"


    // $ANTLR start "rule__OpPostfix__Alternatives"
    // InternalXcore.g:3942:1: rule__OpPostfix__Alternatives : ( ( '++' ) | ( '--' ) );
    public final void rule__OpPostfix__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:3946:1: ( ( '++' ) | ( '--' ) )
            int alt29=2;
            int LA29_0 = input.LA(1);

            if ( (LA29_0==78) ) {
                alt29=1;
            }
            else if ( (LA29_0==79) ) {
                alt29=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 29, 0, input);

                throw nvae;
            }
            switch (alt29) {
                case 1 :
                    // InternalXcore.g:3947:1: ( '++' )
                    {
                    // InternalXcore.g:3947:1: ( '++' )
                    // InternalXcore.g:3948:1: '++'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getOpPostfixAccess().getPlusSignPlusSignKeyword_0()); 
                    }
                    match(input,78,FollowSets000.FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getOpPostfixAccess().getPlusSignPlusSignKeyword_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // InternalXcore.g:3955:6: ( '--' )
                    {
                    // InternalXcore.g:3955:6: ( '--' )
                    // InternalXcore.g:3956:1: '--'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getOpPostfixAccess().getHyphenMinusHyphenMinusKeyword_1()); 
                    }
                    match(input,79,FollowSets000.FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getOpPostfixAccess().getHyphenMinusHyphenMinusKeyword_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__OpPostfix__Alternatives"


    // $ANTLR start "rule__XMemberFeatureCall__Alternatives_1"
    // InternalXcore.g:3968:1: rule__XMemberFeatureCall__Alternatives_1 : ( ( ( rule__XMemberFeatureCall__Group_1_0__0 ) ) | ( ( rule__XMemberFeatureCall__Group_1_1__0 ) ) );
    public final void rule__XMemberFeatureCall__Alternatives_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:3972:1: ( ( ( rule__XMemberFeatureCall__Group_1_0__0 ) ) | ( ( rule__XMemberFeatureCall__Group_1_1__0 ) ) )
            int alt30=2;
            alt30 = dfa30.predict(input);
            switch (alt30) {
                case 1 :
                    // InternalXcore.g:3973:1: ( ( rule__XMemberFeatureCall__Group_1_0__0 ) )
                    {
                    // InternalXcore.g:3973:1: ( ( rule__XMemberFeatureCall__Group_1_0__0 ) )
                    // InternalXcore.g:3974:1: ( rule__XMemberFeatureCall__Group_1_0__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_0()); 
                    }
                    // InternalXcore.g:3975:1: ( rule__XMemberFeatureCall__Group_1_0__0 )
                    // InternalXcore.g:3975:2: rule__XMemberFeatureCall__Group_1_0__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XMemberFeatureCall__Group_1_0__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // InternalXcore.g:3979:6: ( ( rule__XMemberFeatureCall__Group_1_1__0 ) )
                    {
                    // InternalXcore.g:3979:6: ( ( rule__XMemberFeatureCall__Group_1_1__0 ) )
                    // InternalXcore.g:3980:1: ( rule__XMemberFeatureCall__Group_1_1__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1()); 
                    }
                    // InternalXcore.g:3981:1: ( rule__XMemberFeatureCall__Group_1_1__0 )
                    // InternalXcore.g:3981:2: rule__XMemberFeatureCall__Group_1_1__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XMemberFeatureCall__Group_1_1__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMemberFeatureCall__Alternatives_1"


    // $ANTLR start "rule__XMemberFeatureCall__Alternatives_1_0_0_0_1"
    // InternalXcore.g:3990:1: rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 : ( ( '.' ) | ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 ) ) );
    public final void rule__XMemberFeatureCall__Alternatives_1_0_0_0_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:3994:1: ( ( '.' ) | ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 ) ) )
            int alt31=2;
            int LA31_0 = input.LA(1);

            if ( (LA31_0==80) ) {
                alt31=1;
            }
            else if ( (LA31_0==115) ) {
                alt31=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 31, 0, input);

                throw nvae;
            }
            switch (alt31) {
                case 1 :
                    // InternalXcore.g:3995:1: ( '.' )
                    {
                    // InternalXcore.g:3995:1: ( '.' )
                    // InternalXcore.g:3996:1: '.'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXMemberFeatureCallAccess().getFullStopKeyword_1_0_0_0_1_0()); 
                    }
                    match(input,80,FollowSets000.FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXMemberFeatureCallAccess().getFullStopKeyword_1_0_0_0_1_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // InternalXcore.g:4003:6: ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 ) )
                    {
                    // InternalXcore.g:4003:6: ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 ) )
                    // InternalXcore.g:4004:1: ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticAssignment_1_0_0_0_1_1()); 
                    }
                    // InternalXcore.g:4005:1: ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 )
                    // InternalXcore.g:4005:2: rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticAssignment_1_0_0_0_1_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMemberFeatureCall__Alternatives_1_0_0_0_1"


    // $ANTLR start "rule__XMemberFeatureCall__Alternatives_1_1_0_0_1"
    // InternalXcore.g:4014:1: rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 : ( ( '.' ) | ( ( rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1 ) ) | ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2 ) ) );
    public final void rule__XMemberFeatureCall__Alternatives_1_1_0_0_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:4018:1: ( ( '.' ) | ( ( rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1 ) ) | ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2 ) ) )
            int alt32=3;
            switch ( input.LA(1) ) {
            case 80:
                {
                alt32=1;
                }
                break;
            case 116:
                {
                alt32=2;
                }
                break;
            case 115:
                {
                alt32=3;
                }
                break;
            default:
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 32, 0, input);

                throw nvae;
            }

            switch (alt32) {
                case 1 :
                    // InternalXcore.g:4019:1: ( '.' )
                    {
                    // InternalXcore.g:4019:1: ( '.' )
                    // InternalXcore.g:4020:1: '.'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXMemberFeatureCallAccess().getFullStopKeyword_1_1_0_0_1_0()); 
                    }
                    match(input,80,FollowSets000.FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXMemberFeatureCallAccess().getFullStopKeyword_1_1_0_0_1_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // InternalXcore.g:4027:6: ( ( rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1 ) )
                    {
                    // InternalXcore.g:4027:6: ( ( rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1 ) )
                    // InternalXcore.g:4028:1: ( rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXMemberFeatureCallAccess().getNullSafeAssignment_1_1_0_0_1_1()); 
                    }
                    // InternalXcore.g:4029:1: ( rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1 )
                    // InternalXcore.g:4029:2: rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXMemberFeatureCallAccess().getNullSafeAssignment_1_1_0_0_1_1()); 
                    }

                    }


                    }
                    break;
                case 3 :
                    // InternalXcore.g:4033:6: ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2 ) )
                    {
                    // InternalXcore.g:4033:6: ( ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2 ) )
                    // InternalXcore.g:4034:1: ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticAssignment_1_1_0_0_1_2()); 
                    }
                    // InternalXcore.g:4035:1: ( rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2 )
                    // InternalXcore.g:4035:2: rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticAssignment_1_1_0_0_1_2()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMemberFeatureCall__Alternatives_1_1_0_0_1"


    // $ANTLR start "rule__XMemberFeatureCall__Alternatives_1_1_3_1"
    // InternalXcore.g:4044:1: rule__XMemberFeatureCall__Alternatives_1_1_3_1 : ( ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) ) | ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0 ) ) );
    public final void rule__XMemberFeatureCall__Alternatives_1_1_3_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:4048:1: ( ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) ) | ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0 ) ) )
            int alt33=2;
            alt33 = dfa33.predict(input);
            switch (alt33) {
                case 1 :
                    // InternalXcore.g:4049:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) )
                    {
                    // InternalXcore.g:4049:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) )
                    // InternalXcore.g:4050:1: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_3_1_0()); 
                    }
                    // InternalXcore.g:4051:1: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 )
                    // InternalXcore.g:4051:2: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_3_1_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // InternalXcore.g:4055:6: ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0 ) )
                    {
                    // InternalXcore.g:4055:6: ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0 ) )
                    // InternalXcore.g:4056:1: ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_3_1_1()); 
                    }
                    // InternalXcore.g:4057:1: ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0 )
                    // InternalXcore.g:4057:2: rule__XMemberFeatureCall__Group_1_1_3_1_1__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XMemberFeatureCall__Group_1_1_3_1_1__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_3_1_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMemberFeatureCall__Alternatives_1_1_3_1"


    // $ANTLR start "rule__XPrimaryExpression__Alternatives"
    // InternalXcore.g:4066:1: rule__XPrimaryExpression__Alternatives : ( ( ruleXConstructorCall ) | ( ruleXBlockExpression ) | ( ruleXSwitchExpression ) | ( ( ruleXSynchronizedExpression ) ) | ( ruleXFeatureCall ) | ( ruleXLiteral ) | ( ruleXIfExpression ) | ( ( ruleXForLoopExpression ) ) | ( ruleXBasicForLoopExpression ) | ( ruleXWhileExpression ) | ( ruleXDoWhileExpression ) | ( ruleXThrowExpression ) | ( ruleXReturnExpression ) | ( ruleXTryCatchFinallyExpression ) | ( ruleXParenthesizedExpression ) );
    public final void rule__XPrimaryExpression__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:4070:1: ( ( ruleXConstructorCall ) | ( ruleXBlockExpression ) | ( ruleXSwitchExpression ) | ( ( ruleXSynchronizedExpression ) ) | ( ruleXFeatureCall ) | ( ruleXLiteral ) | ( ruleXIfExpression ) | ( ( ruleXForLoopExpression ) ) | ( ruleXBasicForLoopExpression ) | ( ruleXWhileExpression ) | ( ruleXDoWhileExpression ) | ( ruleXThrowExpression ) | ( ruleXReturnExpression ) | ( ruleXTryCatchFinallyExpression ) | ( ruleXParenthesizedExpression ) )
            int alt34=15;
            alt34 = dfa34.predict(input);
            switch (alt34) {
                case 1 :
                    // InternalXcore.g:4071:1: ( ruleXConstructorCall )
                    {
                    // InternalXcore.g:4071:1: ( ruleXConstructorCall )
                    // InternalXcore.g:4072:1: ruleXConstructorCall
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXPrimaryExpressionAccess().getXConstructorCallParserRuleCall_0()); 
                    }
                    pushFollow(FollowSets000.FOLLOW_2);
                    ruleXConstructorCall();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXPrimaryExpressionAccess().getXConstructorCallParserRuleCall_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // InternalXcore.g:4077:6: ( ruleXBlockExpression )
                    {
                    // InternalXcore.g:4077:6: ( ruleXBlockExpression )
                    // InternalXcore.g:4078:1: ruleXBlockExpression
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXPrimaryExpressionAccess().getXBlockExpressionParserRuleCall_1()); 
                    }
                    pushFollow(FollowSets000.FOLLOW_2);
                    ruleXBlockExpression();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXPrimaryExpressionAccess().getXBlockExpressionParserRuleCall_1()); 
                    }

                    }


                    }
                    break;
                case 3 :
                    // InternalXcore.g:4083:6: ( ruleXSwitchExpression )
                    {
                    // InternalXcore.g:4083:6: ( ruleXSwitchExpression )
                    // InternalXcore.g:4084:1: ruleXSwitchExpression
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXPrimaryExpressionAccess().getXSwitchExpressionParserRuleCall_2()); 
                    }
                    pushFollow(FollowSets000.FOLLOW_2);
                    ruleXSwitchExpression();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXPrimaryExpressionAccess().getXSwitchExpressionParserRuleCall_2()); 
                    }

                    }


                    }
                    break;
                case 4 :
                    // InternalXcore.g:4089:6: ( ( ruleXSynchronizedExpression ) )
                    {
                    // InternalXcore.g:4089:6: ( ( ruleXSynchronizedExpression ) )
                    // InternalXcore.g:4090:1: ( ruleXSynchronizedExpression )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXPrimaryExpressionAccess().getXSynchronizedExpressionParserRuleCall_3()); 
                    }
                    // InternalXcore.g:4091:1: ( ruleXSynchronizedExpression )
                    // InternalXcore.g:4091:3: ruleXSynchronizedExpression
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    ruleXSynchronizedExpression();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXPrimaryExpressionAccess().getXSynchronizedExpressionParserRuleCall_3()); 
                    }

                    }


                    }
                    break;
                case 5 :
                    // InternalXcore.g:4095:6: ( ruleXFeatureCall )
                    {
                    // InternalXcore.g:4095:6: ( ruleXFeatureCall )
                    // InternalXcore.g:4096:1: ruleXFeatureCall
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXPrimaryExpressionAccess().getXFeatureCallParserRuleCall_4()); 
                    }
                    pushFollow(FollowSets000.FOLLOW_2);
                    ruleXFeatureCall();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXPrimaryExpressionAccess().getXFeatureCallParserRuleCall_4()); 
                    }

                    }


                    }
                    break;
                case 6 :
                    // InternalXcore.g:4101:6: ( ruleXLiteral )
                    {
                    // InternalXcore.g:4101:6: ( ruleXLiteral )
                    // InternalXcore.g:4102:1: ruleXLiteral
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXPrimaryExpressionAccess().getXLiteralParserRuleCall_5()); 
                    }
                    pushFollow(FollowSets000.FOLLOW_2);
                    ruleXLiteral();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXPrimaryExpressionAccess().getXLiteralParserRuleCall_5()); 
                    }

                    }


                    }
                    break;
                case 7 :
                    // InternalXcore.g:4107:6: ( ruleXIfExpression )
                    {
                    // InternalXcore.g:4107:6: ( ruleXIfExpression )
                    // InternalXcore.g:4108:1: ruleXIfExpression
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXPrimaryExpressionAccess().getXIfExpressionParserRuleCall_6()); 
                    }
                    pushFollow(FollowSets000.FOLLOW_2);
                    ruleXIfExpression();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXPrimaryExpressionAccess().getXIfExpressionParserRuleCall_6()); 
                    }

                    }


                    }
                    break;
                case 8 :
                    // InternalXcore.g:4113:6: ( ( ruleXForLoopExpression ) )
                    {
                    // InternalXcore.g:4113:6: ( ( ruleXForLoopExpression ) )
                    // InternalXcore.g:4114:1: ( ruleXForLoopExpression )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXPrimaryExpressionAccess().getXForLoopExpressionParserRuleCall_7()); 
                    }
                    // InternalXcore.g:4115:1: ( ruleXForLoopExpression )
                    // InternalXcore.g:4115:3: ruleXForLoopExpression
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    ruleXForLoopExpression();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXPrimaryExpressionAccess().getXForLoopExpressionParserRuleCall_7()); 
                    }

                    }


                    }
                    break;
                case 9 :
                    // InternalXcore.g:4119:6: ( ruleXBasicForLoopExpression )
                    {
                    // InternalXcore.g:4119:6: ( ruleXBasicForLoopExpression )
                    // InternalXcore.g:4120:1: ruleXBasicForLoopExpression
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXPrimaryExpressionAccess().getXBasicForLoopExpressionParserRuleCall_8()); 
                    }
                    pushFollow(FollowSets000.FOLLOW_2);
                    ruleXBasicForLoopExpression();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXPrimaryExpressionAccess().getXBasicForLoopExpressionParserRuleCall_8()); 
                    }

                    }


                    }
                    break;
                case 10 :
                    // InternalXcore.g:4125:6: ( ruleXWhileExpression )
                    {
                    // InternalXcore.g:4125:6: ( ruleXWhileExpression )
                    // InternalXcore.g:4126:1: ruleXWhileExpression
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXPrimaryExpressionAccess().getXWhileExpressionParserRuleCall_9()); 
                    }
                    pushFollow(FollowSets000.FOLLOW_2);
                    ruleXWhileExpression();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXPrimaryExpressionAccess().getXWhileExpressionParserRuleCall_9()); 
                    }

                    }


                    }
                    break;
                case 11 :
                    // InternalXcore.g:4131:6: ( ruleXDoWhileExpression )
                    {
                    // InternalXcore.g:4131:6: ( ruleXDoWhileExpression )
                    // InternalXcore.g:4132:1: ruleXDoWhileExpression
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXPrimaryExpressionAccess().getXDoWhileExpressionParserRuleCall_10()); 
                    }
                    pushFollow(FollowSets000.FOLLOW_2);
                    ruleXDoWhileExpression();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXPrimaryExpressionAccess().getXDoWhileExpressionParserRuleCall_10()); 
                    }

                    }


                    }
                    break;
                case 12 :
                    // InternalXcore.g:4137:6: ( ruleXThrowExpression )
                    {
                    // InternalXcore.g:4137:6: ( ruleXThrowExpression )
                    // InternalXcore.g:4138:1: ruleXThrowExpression
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXPrimaryExpressionAccess().getXThrowExpressionParserRuleCall_11()); 
                    }
                    pushFollow(FollowSets000.FOLLOW_2);
                    ruleXThrowExpression();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXPrimaryExpressionAccess().getXThrowExpressionParserRuleCall_11()); 
                    }

                    }


                    }
                    break;
                case 13 :
                    // InternalXcore.g:4143:6: ( ruleXReturnExpression )
                    {
                    // InternalXcore.g:4143:6: ( ruleXReturnExpression )
                    // InternalXcore.g:4144:1: ruleXReturnExpression
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXPrimaryExpressionAccess().getXReturnExpressionParserRuleCall_12()); 
                    }
                    pushFollow(FollowSets000.FOLLOW_2);
                    ruleXReturnExpression();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXPrimaryExpressionAccess().getXReturnExpressionParserRuleCall_12()); 
                    }

                    }


                    }
                    break;
                case 14 :
                    // InternalXcore.g:4149:6: ( ruleXTryCatchFinallyExpression )
                    {
                    // InternalXcore.g:4149:6: ( ruleXTryCatchFinallyExpression )
                    // InternalXcore.g:4150:1: ruleXTryCatchFinallyExpression
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXPrimaryExpressionAccess().getXTryCatchFinallyExpressionParserRuleCall_13()); 
                    }
                    pushFollow(FollowSets000.FOLLOW_2);
                    ruleXTryCatchFinallyExpression();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXPrimaryExpressionAccess().getXTryCatchFinallyExpressionParserRuleCall_13()); 
                    }

                    }


                    }
                    break;
                case 15 :
                    // InternalXcore.g:4155:6: ( ruleXParenthesizedExpression )
                    {
                    // InternalXcore.g:4155:6: ( ruleXParenthesizedExpression )
                    // InternalXcore.g:4156:1: ruleXParenthesizedExpression
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXPrimaryExpressionAccess().getXParenthesizedExpressionParserRuleCall_14()); 
                    }
                    pushFollow(FollowSets000.FOLLOW_2);
                    ruleXParenthesizedExpression();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXPrimaryExpressionAccess().getXParenthesizedExpressionParserRuleCall_14()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XPrimaryExpression__Alternatives"


    // $ANTLR start "rule__XLiteral__Alternatives"
    // InternalXcore.g:4166:1: rule__XLiteral__Alternatives : ( ( ruleXCollectionLiteral ) | ( ( ruleXClosure ) ) | ( ruleXBooleanLiteral ) | ( ruleXNumberLiteral ) | ( ruleXNullLiteral ) | ( ruleXStringLiteral ) | ( ruleXTypeLiteral ) );
    public final void rule__XLiteral__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:4170:1: ( ( ruleXCollectionLiteral ) | ( ( ruleXClosure ) ) | ( ruleXBooleanLiteral ) | ( ruleXNumberLiteral ) | ( ruleXNullLiteral ) | ( ruleXStringLiteral ) | ( ruleXTypeLiteral ) )
            int alt35=7;
            switch ( input.LA(1) ) {
            case 96:
                {
                alt35=1;
                }
                break;
            case 92:
                {
                alt35=2;
                }
                break;
            case 83:
            case 119:
                {
                alt35=3;
                }
                break;
            case RULE_INT:
            case RULE_HEX:
            case RULE_DECIMAL:
                {
                alt35=4;
                }
                break;
            case 107:
                {
                alt35=5;
                }
                break;
            case RULE_STRING:
                {
                alt35=6;
                }
                break;
            case 108:
                {
                alt35=7;
                }
                break;
            default:
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 35, 0, input);

                throw nvae;
            }

            switch (alt35) {
                case 1 :
                    // InternalXcore.g:4171:1: ( ruleXCollectionLiteral )
                    {
                    // InternalXcore.g:4171:1: ( ruleXCollectionLiteral )
                    // InternalXcore.g:4172:1: ruleXCollectionLiteral
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXLiteralAccess().getXCollectionLiteralParserRuleCall_0()); 
                    }
                    pushFollow(FollowSets000.FOLLOW_2);
                    ruleXCollectionLiteral();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXLiteralAccess().getXCollectionLiteralParserRuleCall_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // InternalXcore.g:4177:6: ( ( ruleXClosure ) )
                    {
                    // InternalXcore.g:4177:6: ( ( ruleXClosure ) )
                    // InternalXcore.g:4178:1: ( ruleXClosure )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXLiteralAccess().getXClosureParserRuleCall_1()); 
                    }
                    // InternalXcore.g:4179:1: ( ruleXClosure )
                    // InternalXcore.g:4179:3: ruleXClosure
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    ruleXClosure();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXLiteralAccess().getXClosureParserRuleCall_1()); 
                    }

                    }


                    }
                    break;
                case 3 :
                    // InternalXcore.g:4183:6: ( ruleXBooleanLiteral )
                    {
                    // InternalXcore.g:4183:6: ( ruleXBooleanLiteral )
                    // InternalXcore.g:4184:1: ruleXBooleanLiteral
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXLiteralAccess().getXBooleanLiteralParserRuleCall_2()); 
                    }
                    pushFollow(FollowSets000.FOLLOW_2);
                    ruleXBooleanLiteral();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXLiteralAccess().getXBooleanLiteralParserRuleCall_2()); 
                    }

                    }


                    }
                    break;
                case 4 :
                    // InternalXcore.g:4189:6: ( ruleXNumberLiteral )
                    {
                    // InternalXcore.g:4189:6: ( ruleXNumberLiteral )
                    // InternalXcore.g:4190:1: ruleXNumberLiteral
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXLiteralAccess().getXNumberLiteralParserRuleCall_3()); 
                    }
                    pushFollow(FollowSets000.FOLLOW_2);
                    ruleXNumberLiteral();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXLiteralAccess().getXNumberLiteralParserRuleCall_3()); 
                    }

                    }


                    }
                    break;
                case 5 :
                    // InternalXcore.g:4195:6: ( ruleXNullLiteral )
                    {
                    // InternalXcore.g:4195:6: ( ruleXNullLiteral )
                    // InternalXcore.g:4196:1: ruleXNullLiteral
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXLiteralAccess().getXNullLiteralParserRuleCall_4()); 
                    }
                    pushFollow(FollowSets000.FOLLOW_2);
                    ruleXNullLiteral();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXLiteralAccess().getXNullLiteralParserRuleCall_4()); 
                    }

                    }


                    }
                    break;
                case 6 :
                    // InternalXcore.g:4201:6: ( ruleXStringLiteral )
                    {
                    // InternalXcore.g:4201:6: ( ruleXStringLiteral )
                    // InternalXcore.g:4202:1: ruleXStringLiteral
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXLiteralAccess().getXStringLiteralParserRuleCall_5()); 
                    }
                    pushFollow(FollowSets000.FOLLOW_2);
                    ruleXStringLiteral();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXLiteralAccess().getXStringLiteralParserRuleCall_5()); 
                    }

                    }


                    }
                    break;
                case 7 :
                    // InternalXcore.g:4207:6: ( ruleXTypeLiteral )
                    {
                    // InternalXcore.g:4207:6: ( ruleXTypeLiteral )
                    // InternalXcore.g:4208:1: ruleXTypeLiteral
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXLiteralAccess().getXTypeLiteralParserRuleCall_6()); 
                    }
                    pushFollow(FollowSets000.FOLLOW_2);
                    ruleXTypeLiteral();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXLiteralAccess().getXTypeLiteralParserRuleCall_6()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XLiteral__Alternatives"


    // $ANTLR start "rule__XCollectionLiteral__Alternatives"
    // InternalXcore.g:4218:1: rule__XCollectionLiteral__Alternatives : ( ( ruleXSetLiteral ) | ( ruleXListLiteral ) );
    public final void rule__XCollectionLiteral__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:4222:1: ( ( ruleXSetLiteral ) | ( ruleXListLiteral ) )
            int alt36=2;
            int LA36_0 = input.LA(1);

            if ( (LA36_0==96) ) {
                int LA36_1 = input.LA(2);

                if ( (LA36_1==92) ) {
                    alt36=2;
                }
                else if ( (LA36_1==89) ) {
                    alt36=1;
                }
                else {
                    if (state.backtracking>0) {state.failed=true; return ;}
                    NoViableAltException nvae =
                        new NoViableAltException("", 36, 1, input);

                    throw nvae;
                }
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 36, 0, input);

                throw nvae;
            }
            switch (alt36) {
                case 1 :
                    // InternalXcore.g:4223:1: ( ruleXSetLiteral )
                    {
                    // InternalXcore.g:4223:1: ( ruleXSetLiteral )
                    // InternalXcore.g:4224:1: ruleXSetLiteral
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXCollectionLiteralAccess().getXSetLiteralParserRuleCall_0()); 
                    }
                    pushFollow(FollowSets000.FOLLOW_2);
                    ruleXSetLiteral();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXCollectionLiteralAccess().getXSetLiteralParserRuleCall_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // InternalXcore.g:4229:6: ( ruleXListLiteral )
                    {
                    // InternalXcore.g:4229:6: ( ruleXListLiteral )
                    // InternalXcore.g:4230:1: ruleXListLiteral
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXCollectionLiteralAccess().getXListLiteralParserRuleCall_1()); 
                    }
                    pushFollow(FollowSets000.FOLLOW_2);
                    ruleXListLiteral();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXCollectionLiteralAccess().getXListLiteralParserRuleCall_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XCollectionLiteral__Alternatives"


    // $ANTLR start "rule__XSwitchExpression__Alternatives_2"
    // InternalXcore.g:4240:1: rule__XSwitchExpression__Alternatives_2 : ( ( ( rule__XSwitchExpression__Group_2_0__0 ) ) | ( ( rule__XSwitchExpression__Group_2_1__0 ) ) );
    public final void rule__XSwitchExpression__Alternatives_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:4244:1: ( ( ( rule__XSwitchExpression__Group_2_0__0 ) ) | ( ( rule__XSwitchExpression__Group_2_1__0 ) ) )
            int alt37=2;
            alt37 = dfa37.predict(input);
            switch (alt37) {
                case 1 :
                    // InternalXcore.g:4245:1: ( ( rule__XSwitchExpression__Group_2_0__0 ) )
                    {
                    // InternalXcore.g:4245:1: ( ( rule__XSwitchExpression__Group_2_0__0 ) )
                    // InternalXcore.g:4246:1: ( rule__XSwitchExpression__Group_2_0__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXSwitchExpressionAccess().getGroup_2_0()); 
                    }
                    // InternalXcore.g:4247:1: ( rule__XSwitchExpression__Group_2_0__0 )
                    // InternalXcore.g:4247:2: rule__XSwitchExpression__Group_2_0__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XSwitchExpression__Group_2_0__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXSwitchExpressionAccess().getGroup_2_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // InternalXcore.g:4251:6: ( ( rule__XSwitchExpression__Group_2_1__0 ) )
                    {
                    // InternalXcore.g:4251:6: ( ( rule__XSwitchExpression__Group_2_1__0 ) )
                    // InternalXcore.g:4252:1: ( rule__XSwitchExpression__Group_2_1__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXSwitchExpressionAccess().getGroup_2_1()); 
                    }
                    // InternalXcore.g:4253:1: ( rule__XSwitchExpression__Group_2_1__0 )
                    // InternalXcore.g:4253:2: rule__XSwitchExpression__Group_2_1__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XSwitchExpression__Group_2_1__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXSwitchExpressionAccess().getGroup_2_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XSwitchExpression__Alternatives_2"


    // $ANTLR start "rule__XCasePart__Alternatives_3"
    // InternalXcore.g:4262:1: rule__XCasePart__Alternatives_3 : ( ( ( rule__XCasePart__Group_3_0__0 ) ) | ( ( rule__XCasePart__FallThroughAssignment_3_1 ) ) );
    public final void rule__XCasePart__Alternatives_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:4266:1: ( ( ( rule__XCasePart__Group_3_0__0 ) ) | ( ( rule__XCasePart__FallThroughAssignment_3_1 ) ) )
            int alt38=2;
            int LA38_0 = input.LA(1);

            if ( (LA38_0==100) ) {
                alt38=1;
            }
            else if ( (LA38_0==87) ) {
                alt38=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 38, 0, input);

                throw nvae;
            }
            switch (alt38) {
                case 1 :
                    // InternalXcore.g:4267:1: ( ( rule__XCasePart__Group_3_0__0 ) )
                    {
                    // InternalXcore.g:4267:1: ( ( rule__XCasePart__Group_3_0__0 ) )
                    // InternalXcore.g:4268:1: ( rule__XCasePart__Group_3_0__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXCasePartAccess().getGroup_3_0()); 
                    }
                    // InternalXcore.g:4269:1: ( rule__XCasePart__Group_3_0__0 )
                    // InternalXcore.g:4269:2: rule__XCasePart__Group_3_0__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XCasePart__Group_3_0__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXCasePartAccess().getGroup_3_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // InternalXcore.g:4273:6: ( ( rule__XCasePart__FallThroughAssignment_3_1 ) )
                    {
                    // InternalXcore.g:4273:6: ( ( rule__XCasePart__FallThroughAssignment_3_1 ) )
                    // InternalXcore.g:4274:1: ( rule__XCasePart__FallThroughAssignment_3_1 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXCasePartAccess().getFallThroughAssignment_3_1()); 
                    }
                    // InternalXcore.g:4275:1: ( rule__XCasePart__FallThroughAssignment_3_1 )
                    // InternalXcore.g:4275:2: rule__XCasePart__FallThroughAssignment_3_1
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XCasePart__FallThroughAssignment_3_1();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXCasePartAccess().getFallThroughAssignment_3_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XCasePart__Alternatives_3"


    // $ANTLR start "rule__XExpressionOrVarDeclaration__Alternatives"
    // InternalXcore.g:4284:1: rule__XExpressionOrVarDeclaration__Alternatives : ( ( ruleXVariableDeclaration ) | ( ruleXExpression ) );
    public final void rule__XExpressionOrVarDeclaration__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:4288:1: ( ( ruleXVariableDeclaration ) | ( ruleXExpression ) )
            int alt39=2;
            int LA39_0 = input.LA(1);

            if ( (LA39_0==81||LA39_0==118) ) {
                alt39=1;
            }
            else if ( ((LA39_0>=RULE_INT && LA39_0<=RULE_STRING)||LA39_0==16||(LA39_0>=19 && LA39_0<=54)||LA39_0==66||LA39_0==73||LA39_0==77||(LA39_0>=82 && LA39_0<=83)||LA39_0==85||LA39_0==89||LA39_0==92||(LA39_0>=96 && LA39_0<=97)||LA39_0==99||(LA39_0>=103 && LA39_0<=111)||LA39_0==113||LA39_0==119) ) {
                alt39=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 39, 0, input);

                throw nvae;
            }
            switch (alt39) {
                case 1 :
                    // InternalXcore.g:4289:1: ( ruleXVariableDeclaration )
                    {
                    // InternalXcore.g:4289:1: ( ruleXVariableDeclaration )
                    // InternalXcore.g:4290:1: ruleXVariableDeclaration
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXExpressionOrVarDeclarationAccess().getXVariableDeclarationParserRuleCall_0()); 
                    }
                    pushFollow(FollowSets000.FOLLOW_2);
                    ruleXVariableDeclaration();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXExpressionOrVarDeclarationAccess().getXVariableDeclarationParserRuleCall_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // InternalXcore.g:4295:6: ( ruleXExpression )
                    {
                    // InternalXcore.g:4295:6: ( ruleXExpression )
                    // InternalXcore.g:4296:1: ruleXExpression
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXExpressionOrVarDeclarationAccess().getXExpressionParserRuleCall_1()); 
                    }
                    pushFollow(FollowSets000.FOLLOW_2);
                    ruleXExpression();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXExpressionOrVarDeclarationAccess().getXExpressionParserRuleCall_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XExpressionOrVarDeclaration__Alternatives"


    // $ANTLR start "rule__XVariableDeclaration__Alternatives_1"
    // InternalXcore.g:4306:1: rule__XVariableDeclaration__Alternatives_1 : ( ( ( rule__XVariableDeclaration__WriteableAssignment_1_0 ) ) | ( 'val' ) );
    public final void rule__XVariableDeclaration__Alternatives_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:4310:1: ( ( ( rule__XVariableDeclaration__WriteableAssignment_1_0 ) ) | ( 'val' ) )
            int alt40=2;
            int LA40_0 = input.LA(1);

            if ( (LA40_0==118) ) {
                alt40=1;
            }
            else if ( (LA40_0==81) ) {
                alt40=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 40, 0, input);

                throw nvae;
            }
            switch (alt40) {
                case 1 :
                    // InternalXcore.g:4311:1: ( ( rule__XVariableDeclaration__WriteableAssignment_1_0 ) )
                    {
                    // InternalXcore.g:4311:1: ( ( rule__XVariableDeclaration__WriteableAssignment_1_0 ) )
                    // InternalXcore.g:4312:1: ( rule__XVariableDeclaration__WriteableAssignment_1_0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXVariableDeclarationAccess().getWriteableAssignment_1_0()); 
                    }
                    // InternalXcore.g:4313:1: ( rule__XVariableDeclaration__WriteableAssignment_1_0 )
                    // InternalXcore.g:4313:2: rule__XVariableDeclaration__WriteableAssignment_1_0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XVariableDeclaration__WriteableAssignment_1_0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXVariableDeclarationAccess().getWriteableAssignment_1_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // InternalXcore.g:4317:6: ( 'val' )
                    {
                    // InternalXcore.g:4317:6: ( 'val' )
                    // InternalXcore.g:4318:1: 'val'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXVariableDeclarationAccess().getValKeyword_1_1()); 
                    }
                    match(input,81,FollowSets000.FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXVariableDeclarationAccess().getValKeyword_1_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XVariableDeclaration__Alternatives_1"


    // $ANTLR start "rule__XVariableDeclaration__Alternatives_2"
    // InternalXcore.g:4330:1: rule__XVariableDeclaration__Alternatives_2 : ( ( ( rule__XVariableDeclaration__Group_2_0__0 ) ) | ( ( rule__XVariableDeclaration__NameAssignment_2_1 ) ) );
    public final void rule__XVariableDeclaration__Alternatives_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:4334:1: ( ( ( rule__XVariableDeclaration__Group_2_0__0 ) ) | ( ( rule__XVariableDeclaration__NameAssignment_2_1 ) ) )
            int alt41=2;
            alt41 = dfa41.predict(input);
            switch (alt41) {
                case 1 :
                    // InternalXcore.g:4335:1: ( ( rule__XVariableDeclaration__Group_2_0__0 ) )
                    {
                    // InternalXcore.g:4335:1: ( ( rule__XVariableDeclaration__Group_2_0__0 ) )
                    // InternalXcore.g:4336:1: ( rule__XVariableDeclaration__Group_2_0__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXVariableDeclarationAccess().getGroup_2_0()); 
                    }
                    // InternalXcore.g:4337:1: ( rule__XVariableDeclaration__Group_2_0__0 )
                    // InternalXcore.g:4337:2: rule__XVariableDeclaration__Group_2_0__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XVariableDeclaration__Group_2_0__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXVariableDeclarationAccess().getGroup_2_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // InternalXcore.g:4341:6: ( ( rule__XVariableDeclaration__NameAssignment_2_1 ) )
                    {
                    // InternalXcore.g:4341:6: ( ( rule__XVariableDeclaration__NameAssignment_2_1 ) )
                    // InternalXcore.g:4342:1: ( rule__XVariableDeclaration__NameAssignment_2_1 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXVariableDeclarationAccess().getNameAssignment_2_1()); 
                    }
                    // InternalXcore.g:4343:1: ( rule__XVariableDeclaration__NameAssignment_2_1 )
                    // InternalXcore.g:4343:2: rule__XVariableDeclaration__NameAssignment_2_1
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XVariableDeclaration__NameAssignment_2_1();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXVariableDeclarationAccess().getNameAssignment_2_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XVariableDeclaration__Alternatives_2"


    // $ANTLR start "rule__XFeatureCall__Alternatives_3_1"
    // InternalXcore.g:4352:1: rule__XFeatureCall__Alternatives_3_1 : ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) ) | ( ( rule__XFeatureCall__Group_3_1_1__0 ) ) );
    public final void rule__XFeatureCall__Alternatives_3_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:4356:1: ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) ) | ( ( rule__XFeatureCall__Group_3_1_1__0 ) ) )
            int alt42=2;
            alt42 = dfa42.predict(input);
            switch (alt42) {
                case 1 :
                    // InternalXcore.g:4357:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) )
                    {
                    // InternalXcore.g:4357:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) )
                    // InternalXcore.g:4358:1: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_3_1_0()); 
                    }
                    // InternalXcore.g:4359:1: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 )
                    // InternalXcore.g:4359:2: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_3_1_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // InternalXcore.g:4363:6: ( ( rule__XFeatureCall__Group_3_1_1__0 ) )
                    {
                    // InternalXcore.g:4363:6: ( ( rule__XFeatureCall__Group_3_1_1__0 ) )
                    // InternalXcore.g:4364:1: ( rule__XFeatureCall__Group_3_1_1__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXFeatureCallAccess().getGroup_3_1_1()); 
                    }
                    // InternalXcore.g:4365:1: ( rule__XFeatureCall__Group_3_1_1__0 )
                    // InternalXcore.g:4365:2: rule__XFeatureCall__Group_3_1_1__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XFeatureCall__Group_3_1_1__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXFeatureCallAccess().getGroup_3_1_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XFeatureCall__Alternatives_3_1"


    // $ANTLR start "rule__IdOrSuper__Alternatives"
    // InternalXcore.g:4374:1: rule__IdOrSuper__Alternatives : ( ( ruleFeatureCallID ) | ( 'super' ) );
    public final void rule__IdOrSuper__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:4378:1: ( ( ruleFeatureCallID ) | ( 'super' ) )
            int alt43=2;
            int LA43_0 = input.LA(1);

            if ( (LA43_0==RULE_ID||LA43_0==16||(LA43_0>=20 && LA43_0<=54)) ) {
                alt43=1;
            }
            else if ( (LA43_0==82) ) {
                alt43=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 43, 0, input);

                throw nvae;
            }
            switch (alt43) {
                case 1 :
                    // InternalXcore.g:4379:1: ( ruleFeatureCallID )
                    {
                    // InternalXcore.g:4379:1: ( ruleFeatureCallID )
                    // InternalXcore.g:4380:1: ruleFeatureCallID
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getIdOrSuperAccess().getFeatureCallIDParserRuleCall_0()); 
                    }
                    pushFollow(FollowSets000.FOLLOW_2);
                    ruleFeatureCallID();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getIdOrSuperAccess().getFeatureCallIDParserRuleCall_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // InternalXcore.g:4385:6: ( 'super' )
                    {
                    // InternalXcore.g:4385:6: ( 'super' )
                    // InternalXcore.g:4386:1: 'super'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getIdOrSuperAccess().getSuperKeyword_1()); 
                    }
                    match(input,82,FollowSets000.FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getIdOrSuperAccess().getSuperKeyword_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__IdOrSuper__Alternatives"


    // $ANTLR start "rule__XConstructorCall__Alternatives_4_1"
    // InternalXcore.g:4398:1: rule__XConstructorCall__Alternatives_4_1 : ( ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) ) | ( ( rule__XConstructorCall__Group_4_1_1__0 ) ) );
    public final void rule__XConstructorCall__Alternatives_4_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:4402:1: ( ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) ) | ( ( rule__XConstructorCall__Group_4_1_1__0 ) ) )
            int alt44=2;
            alt44 = dfa44.predict(input);
            switch (alt44) {
                case 1 :
                    // InternalXcore.g:4403:1: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) )
                    {
                    // InternalXcore.g:4403:1: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) )
                    // InternalXcore.g:4404:1: ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_4_1_0()); 
                    }
                    // InternalXcore.g:4405:1: ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 )
                    // InternalXcore.g:4405:2: rule__XConstructorCall__ArgumentsAssignment_4_1_0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XConstructorCall__ArgumentsAssignment_4_1_0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_4_1_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // InternalXcore.g:4409:6: ( ( rule__XConstructorCall__Group_4_1_1__0 ) )
                    {
                    // InternalXcore.g:4409:6: ( ( rule__XConstructorCall__Group_4_1_1__0 ) )
                    // InternalXcore.g:4410:1: ( rule__XConstructorCall__Group_4_1_1__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXConstructorCallAccess().getGroup_4_1_1()); 
                    }
                    // InternalXcore.g:4411:1: ( rule__XConstructorCall__Group_4_1_1__0 )
                    // InternalXcore.g:4411:2: rule__XConstructorCall__Group_4_1_1__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XConstructorCall__Group_4_1_1__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXConstructorCallAccess().getGroup_4_1_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XConstructorCall__Alternatives_4_1"


    // $ANTLR start "rule__XBooleanLiteral__Alternatives_1"
    // InternalXcore.g:4420:1: rule__XBooleanLiteral__Alternatives_1 : ( ( 'false' ) | ( ( rule__XBooleanLiteral__IsTrueAssignment_1_1 ) ) );
    public final void rule__XBooleanLiteral__Alternatives_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:4424:1: ( ( 'false' ) | ( ( rule__XBooleanLiteral__IsTrueAssignment_1_1 ) ) )
            int alt45=2;
            int LA45_0 = input.LA(1);

            if ( (LA45_0==83) ) {
                alt45=1;
            }
            else if ( (LA45_0==119) ) {
                alt45=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 45, 0, input);

                throw nvae;
            }
            switch (alt45) {
                case 1 :
                    // InternalXcore.g:4425:1: ( 'false' )
                    {
                    // InternalXcore.g:4425:1: ( 'false' )
                    // InternalXcore.g:4426:1: 'false'
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXBooleanLiteralAccess().getFalseKeyword_1_0()); 
                    }
                    match(input,83,FollowSets000.FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXBooleanLiteralAccess().getFalseKeyword_1_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // InternalXcore.g:4433:6: ( ( rule__XBooleanLiteral__IsTrueAssignment_1_1 ) )
                    {
                    // InternalXcore.g:4433:6: ( ( rule__XBooleanLiteral__IsTrueAssignment_1_1 ) )
                    // InternalXcore.g:4434:1: ( rule__XBooleanLiteral__IsTrueAssignment_1_1 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXBooleanLiteralAccess().getIsTrueAssignment_1_1()); 
                    }
                    // InternalXcore.g:4435:1: ( rule__XBooleanLiteral__IsTrueAssignment_1_1 )
                    // InternalXcore.g:4435:2: rule__XBooleanLiteral__IsTrueAssignment_1_1
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XBooleanLiteral__IsTrueAssignment_1_1();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXBooleanLiteralAccess().getIsTrueAssignment_1_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XBooleanLiteral__Alternatives_1"


    // $ANTLR start "rule__XTryCatchFinallyExpression__Alternatives_3"
    // InternalXcore.g:4444:1: rule__XTryCatchFinallyExpression__Alternatives_3 : ( ( ( rule__XTryCatchFinallyExpression__Group_3_0__0 ) ) | ( ( rule__XTryCatchFinallyExpression__Group_3_1__0 ) ) );
    public final void rule__XTryCatchFinallyExpression__Alternatives_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:4448:1: ( ( ( rule__XTryCatchFinallyExpression__Group_3_0__0 ) ) | ( ( rule__XTryCatchFinallyExpression__Group_3_1__0 ) ) )
            int alt46=2;
            int LA46_0 = input.LA(1);

            if ( (LA46_0==114) ) {
                alt46=1;
            }
            else if ( (LA46_0==112) ) {
                alt46=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 46, 0, input);

                throw nvae;
            }
            switch (alt46) {
                case 1 :
                    // InternalXcore.g:4449:1: ( ( rule__XTryCatchFinallyExpression__Group_3_0__0 ) )
                    {
                    // InternalXcore.g:4449:1: ( ( rule__XTryCatchFinallyExpression__Group_3_0__0 ) )
                    // InternalXcore.g:4450:1: ( rule__XTryCatchFinallyExpression__Group_3_0__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup_3_0()); 
                    }
                    // InternalXcore.g:4451:1: ( rule__XTryCatchFinallyExpression__Group_3_0__0 )
                    // InternalXcore.g:4451:2: rule__XTryCatchFinallyExpression__Group_3_0__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XTryCatchFinallyExpression__Group_3_0__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup_3_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // InternalXcore.g:4455:6: ( ( rule__XTryCatchFinallyExpression__Group_3_1__0 ) )
                    {
                    // InternalXcore.g:4455:6: ( ( rule__XTryCatchFinallyExpression__Group_3_1__0 ) )
                    // InternalXcore.g:4456:1: ( rule__XTryCatchFinallyExpression__Group_3_1__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup_3_1()); 
                    }
                    // InternalXcore.g:4457:1: ( rule__XTryCatchFinallyExpression__Group_3_1__0 )
                    // InternalXcore.g:4457:2: rule__XTryCatchFinallyExpression__Group_3_1__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XTryCatchFinallyExpression__Group_3_1__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup_3_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XTryCatchFinallyExpression__Alternatives_3"


    // $ANTLR start "rule__Number__Alternatives"
    // InternalXcore.g:4466:1: rule__Number__Alternatives : ( ( RULE_HEX ) | ( ( rule__Number__Group_1__0 ) ) );
    public final void rule__Number__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:4470:1: ( ( RULE_HEX ) | ( ( rule__Number__Group_1__0 ) ) )
            int alt47=2;
            int LA47_0 = input.LA(1);

            if ( (LA47_0==RULE_HEX) ) {
                alt47=1;
            }
            else if ( (LA47_0==RULE_INT||LA47_0==RULE_DECIMAL) ) {
                alt47=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 47, 0, input);

                throw nvae;
            }
            switch (alt47) {
                case 1 :
                    // InternalXcore.g:4471:1: ( RULE_HEX )
                    {
                    // InternalXcore.g:4471:1: ( RULE_HEX )
                    // InternalXcore.g:4472:1: RULE_HEX
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getNumberAccess().getHEXTerminalRuleCall_0()); 
                    }
                    match(input,RULE_HEX,FollowSets000.FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getNumberAccess().getHEXTerminalRuleCall_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // InternalXcore.g:4477:6: ( ( rule__Number__Group_1__0 ) )
                    {
                    // InternalXcore.g:4477:6: ( ( rule__Number__Group_1__0 ) )
                    // InternalXcore.g:4478:1: ( rule__Number__Group_1__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getNumberAccess().getGroup_1()); 
                    }
                    // InternalXcore.g:4479:1: ( rule__Number__Group_1__0 )
                    // InternalXcore.g:4479:2: rule__Number__Group_1__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__Number__Group_1__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getNumberAccess().getGroup_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Number__Alternatives"


    // $ANTLR start "rule__Number__Alternatives_1_0"
    // InternalXcore.g:4488:1: rule__Number__Alternatives_1_0 : ( ( RULE_INT ) | ( RULE_DECIMAL ) );
    public final void rule__Number__Alternatives_1_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:4492:1: ( ( RULE_INT ) | ( RULE_DECIMAL ) )
            int alt48=2;
            int LA48_0 = input.LA(1);

            if ( (LA48_0==RULE_INT) ) {
                alt48=1;
            }
            else if ( (LA48_0==RULE_DECIMAL) ) {
                alt48=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 48, 0, input);

                throw nvae;
            }
            switch (alt48) {
                case 1 :
                    // InternalXcore.g:4493:1: ( RULE_INT )
                    {
                    // InternalXcore.g:4493:1: ( RULE_INT )
                    // InternalXcore.g:4494:1: RULE_INT
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getNumberAccess().getINTTerminalRuleCall_1_0_0()); 
                    }
                    match(input,RULE_INT,FollowSets000.FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getNumberAccess().getINTTerminalRuleCall_1_0_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // InternalXcore.g:4499:6: ( RULE_DECIMAL )
                    {
                    // InternalXcore.g:4499:6: ( RULE_DECIMAL )
                    // InternalXcore.g:4500:1: RULE_DECIMAL
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getNumberAccess().getDECIMALTerminalRuleCall_1_0_1()); 
                    }
                    match(input,RULE_DECIMAL,FollowSets000.FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getNumberAccess().getDECIMALTerminalRuleCall_1_0_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Number__Alternatives_1_0"


    // $ANTLR start "rule__Number__Alternatives_1_1_1"
    // InternalXcore.g:4510:1: rule__Number__Alternatives_1_1_1 : ( ( RULE_INT ) | ( RULE_DECIMAL ) );
    public final void rule__Number__Alternatives_1_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:4514:1: ( ( RULE_INT ) | ( RULE_DECIMAL ) )
            int alt49=2;
            int LA49_0 = input.LA(1);

            if ( (LA49_0==RULE_INT) ) {
                alt49=1;
            }
            else if ( (LA49_0==RULE_DECIMAL) ) {
                alt49=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 49, 0, input);

                throw nvae;
            }
            switch (alt49) {
                case 1 :
                    // InternalXcore.g:4515:1: ( RULE_INT )
                    {
                    // InternalXcore.g:4515:1: ( RULE_INT )
                    // InternalXcore.g:4516:1: RULE_INT
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getNumberAccess().getINTTerminalRuleCall_1_1_1_0()); 
                    }
                    match(input,RULE_INT,FollowSets000.FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getNumberAccess().getINTTerminalRuleCall_1_1_1_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // InternalXcore.g:4521:6: ( RULE_DECIMAL )
                    {
                    // InternalXcore.g:4521:6: ( RULE_DECIMAL )
                    // InternalXcore.g:4522:1: RULE_DECIMAL
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getNumberAccess().getDECIMALTerminalRuleCall_1_1_1_1()); 
                    }
                    match(input,RULE_DECIMAL,FollowSets000.FOLLOW_2); if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getNumberAccess().getDECIMALTerminalRuleCall_1_1_1_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Number__Alternatives_1_1_1"


    // $ANTLR start "rule__JvmTypeReference__Alternatives"
    // InternalXcore.g:4532:1: rule__JvmTypeReference__Alternatives : ( ( ( rule__JvmTypeReference__Group_0__0 ) ) | ( ruleXFunctionTypeRef ) );
    public final void rule__JvmTypeReference__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:4536:1: ( ( ( rule__JvmTypeReference__Group_0__0 ) ) | ( ruleXFunctionTypeRef ) )
            int alt50=2;
            int LA50_0 = input.LA(1);

            if ( (LA50_0==RULE_ID||LA50_0==16||(LA50_0>=20 && LA50_0<=23)) ) {
                alt50=1;
            }
            else if ( (LA50_0==70||LA50_0==85) ) {
                alt50=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 50, 0, input);

                throw nvae;
            }
            switch (alt50) {
                case 1 :
                    // InternalXcore.g:4537:1: ( ( rule__JvmTypeReference__Group_0__0 ) )
                    {
                    // InternalXcore.g:4537:1: ( ( rule__JvmTypeReference__Group_0__0 ) )
                    // InternalXcore.g:4538:1: ( rule__JvmTypeReference__Group_0__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getJvmTypeReferenceAccess().getGroup_0()); 
                    }
                    // InternalXcore.g:4539:1: ( rule__JvmTypeReference__Group_0__0 )
                    // InternalXcore.g:4539:2: rule__JvmTypeReference__Group_0__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__JvmTypeReference__Group_0__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getJvmTypeReferenceAccess().getGroup_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // InternalXcore.g:4543:6: ( ruleXFunctionTypeRef )
                    {
                    // InternalXcore.g:4543:6: ( ruleXFunctionTypeRef )
                    // InternalXcore.g:4544:1: ruleXFunctionTypeRef
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getJvmTypeReferenceAccess().getXFunctionTypeRefParserRuleCall_1()); 
                    }
                    pushFollow(FollowSets000.FOLLOW_2);
                    ruleXFunctionTypeRef();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getJvmTypeReferenceAccess().getXFunctionTypeRefParserRuleCall_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmTypeReference__Alternatives"


    // $ANTLR start "rule__JvmArgumentTypeReference__Alternatives"
    // InternalXcore.g:4554:1: rule__JvmArgumentTypeReference__Alternatives : ( ( ruleJvmTypeReference ) | ( ruleJvmWildcardTypeReference ) );
    public final void rule__JvmArgumentTypeReference__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:4558:1: ( ( ruleJvmTypeReference ) | ( ruleJvmWildcardTypeReference ) )
            int alt51=2;
            int LA51_0 = input.LA(1);

            if ( (LA51_0==RULE_ID||LA51_0==16||(LA51_0>=20 && LA51_0<=23)||LA51_0==70||LA51_0==85) ) {
                alt51=1;
            }
            else if ( (LA51_0==17) ) {
                alt51=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 51, 0, input);

                throw nvae;
            }
            switch (alt51) {
                case 1 :
                    // InternalXcore.g:4559:1: ( ruleJvmTypeReference )
                    {
                    // InternalXcore.g:4559:1: ( ruleJvmTypeReference )
                    // InternalXcore.g:4560:1: ruleJvmTypeReference
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getJvmArgumentTypeReferenceAccess().getJvmTypeReferenceParserRuleCall_0()); 
                    }
                    pushFollow(FollowSets000.FOLLOW_2);
                    ruleJvmTypeReference();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getJvmArgumentTypeReferenceAccess().getJvmTypeReferenceParserRuleCall_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // InternalXcore.g:4565:6: ( ruleJvmWildcardTypeReference )
                    {
                    // InternalXcore.g:4565:6: ( ruleJvmWildcardTypeReference )
                    // InternalXcore.g:4566:1: ruleJvmWildcardTypeReference
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getJvmArgumentTypeReferenceAccess().getJvmWildcardTypeReferenceParserRuleCall_1()); 
                    }
                    pushFollow(FollowSets000.FOLLOW_2);
                    ruleJvmWildcardTypeReference();

                    state._fsp--;
                    if (state.failed) return ;
                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getJvmArgumentTypeReferenceAccess().getJvmWildcardTypeReferenceParserRuleCall_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmArgumentTypeReference__Alternatives"


    // $ANTLR start "rule__JvmWildcardTypeReference__Alternatives_2"
    // InternalXcore.g:4576:1: rule__JvmWildcardTypeReference__Alternatives_2 : ( ( ( rule__JvmWildcardTypeReference__Group_2_0__0 ) ) | ( ( rule__JvmWildcardTypeReference__Group_2_1__0 ) ) );
    public final void rule__JvmWildcardTypeReference__Alternatives_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:4580:1: ( ( ( rule__JvmWildcardTypeReference__Group_2_0__0 ) ) | ( ( rule__JvmWildcardTypeReference__Group_2_1__0 ) ) )
            int alt52=2;
            int LA52_0 = input.LA(1);

            if ( (LA52_0==34) ) {
                alt52=1;
            }
            else if ( (LA52_0==82) ) {
                alt52=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 52, 0, input);

                throw nvae;
            }
            switch (alt52) {
                case 1 :
                    // InternalXcore.g:4581:1: ( ( rule__JvmWildcardTypeReference__Group_2_0__0 ) )
                    {
                    // InternalXcore.g:4581:1: ( ( rule__JvmWildcardTypeReference__Group_2_0__0 ) )
                    // InternalXcore.g:4582:1: ( rule__JvmWildcardTypeReference__Group_2_0__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getJvmWildcardTypeReferenceAccess().getGroup_2_0()); 
                    }
                    // InternalXcore.g:4583:1: ( rule__JvmWildcardTypeReference__Group_2_0__0 )
                    // InternalXcore.g:4583:2: rule__JvmWildcardTypeReference__Group_2_0__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__JvmWildcardTypeReference__Group_2_0__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getJvmWildcardTypeReferenceAccess().getGroup_2_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // InternalXcore.g:4587:6: ( ( rule__JvmWildcardTypeReference__Group_2_1__0 ) )
                    {
                    // InternalXcore.g:4587:6: ( ( rule__JvmWildcardTypeReference__Group_2_1__0 ) )
                    // InternalXcore.g:4588:1: ( rule__JvmWildcardTypeReference__Group_2_1__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getJvmWildcardTypeReferenceAccess().getGroup_2_1()); 
                    }
                    // InternalXcore.g:4589:1: ( rule__JvmWildcardTypeReference__Group_2_1__0 )
                    // InternalXcore.g:4589:2: rule__JvmWildcardTypeReference__Group_2_1__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__JvmWildcardTypeReference__Group_2_1__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getJvmWildcardTypeReferenceAccess().getGroup_2_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmWildcardTypeReference__Alternatives_2"


    // $ANTLR start "rule__XImportDeclaration__Alternatives_1"
    // InternalXcore.g:4598:1: rule__XImportDeclaration__Alternatives_1 : ( ( ( rule__XImportDeclaration__Group_1_0__0 ) ) | ( ( rule__XImportDeclaration__ImportedTypeAssignment_1_1 ) ) | ( ( rule__XImportDeclaration__ImportedNamespaceAssignment_1_2 ) ) );
    public final void rule__XImportDeclaration__Alternatives_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:4602:1: ( ( ( rule__XImportDeclaration__Group_1_0__0 ) ) | ( ( rule__XImportDeclaration__ImportedTypeAssignment_1_1 ) ) | ( ( rule__XImportDeclaration__ImportedNamespaceAssignment_1_2 ) ) )
            int alt53=3;
            alt53 = dfa53.predict(input);
            switch (alt53) {
                case 1 :
                    // InternalXcore.g:4603:1: ( ( rule__XImportDeclaration__Group_1_0__0 ) )
                    {
                    // InternalXcore.g:4603:1: ( ( rule__XImportDeclaration__Group_1_0__0 ) )
                    // InternalXcore.g:4604:1: ( rule__XImportDeclaration__Group_1_0__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXImportDeclarationAccess().getGroup_1_0()); 
                    }
                    // InternalXcore.g:4605:1: ( rule__XImportDeclaration__Group_1_0__0 )
                    // InternalXcore.g:4605:2: rule__XImportDeclaration__Group_1_0__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XImportDeclaration__Group_1_0__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXImportDeclarationAccess().getGroup_1_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // InternalXcore.g:4609:6: ( ( rule__XImportDeclaration__ImportedTypeAssignment_1_1 ) )
                    {
                    // InternalXcore.g:4609:6: ( ( rule__XImportDeclaration__ImportedTypeAssignment_1_1 ) )
                    // InternalXcore.g:4610:1: ( rule__XImportDeclaration__ImportedTypeAssignment_1_1 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXImportDeclarationAccess().getImportedTypeAssignment_1_1()); 
                    }
                    // InternalXcore.g:4611:1: ( rule__XImportDeclaration__ImportedTypeAssignment_1_1 )
                    // InternalXcore.g:4611:2: rule__XImportDeclaration__ImportedTypeAssignment_1_1
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XImportDeclaration__ImportedTypeAssignment_1_1();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXImportDeclarationAccess().getImportedTypeAssignment_1_1()); 
                    }

                    }


                    }
                    break;
                case 3 :
                    // InternalXcore.g:4615:6: ( ( rule__XImportDeclaration__ImportedNamespaceAssignment_1_2 ) )
                    {
                    // InternalXcore.g:4615:6: ( ( rule__XImportDeclaration__ImportedNamespaceAssignment_1_2 ) )
                    // InternalXcore.g:4616:1: ( rule__XImportDeclaration__ImportedNamespaceAssignment_1_2 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXImportDeclarationAccess().getImportedNamespaceAssignment_1_2()); 
                    }
                    // InternalXcore.g:4617:1: ( rule__XImportDeclaration__ImportedNamespaceAssignment_1_2 )
                    // InternalXcore.g:4617:2: rule__XImportDeclaration__ImportedNamespaceAssignment_1_2
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XImportDeclaration__ImportedNamespaceAssignment_1_2();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXImportDeclarationAccess().getImportedNamespaceAssignment_1_2()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XImportDeclaration__Alternatives_1"


    // $ANTLR start "rule__XImportDeclaration__Alternatives_1_0_3"
    // InternalXcore.g:4626:1: rule__XImportDeclaration__Alternatives_1_0_3 : ( ( ( rule__XImportDeclaration__WildcardAssignment_1_0_3_0 ) ) | ( ( rule__XImportDeclaration__MemberNameAssignment_1_0_3_1 ) ) );
    public final void rule__XImportDeclaration__Alternatives_1_0_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:4630:1: ( ( ( rule__XImportDeclaration__WildcardAssignment_1_0_3_0 ) ) | ( ( rule__XImportDeclaration__MemberNameAssignment_1_0_3_1 ) ) )
            int alt54=2;
            int LA54_0 = input.LA(1);

            if ( (LA54_0==18) ) {
                alt54=1;
            }
            else if ( (LA54_0==RULE_ID||LA54_0==16||(LA54_0>=20 && LA54_0<=23)) ) {
                alt54=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 54, 0, input);

                throw nvae;
            }
            switch (alt54) {
                case 1 :
                    // InternalXcore.g:4631:1: ( ( rule__XImportDeclaration__WildcardAssignment_1_0_3_0 ) )
                    {
                    // InternalXcore.g:4631:1: ( ( rule__XImportDeclaration__WildcardAssignment_1_0_3_0 ) )
                    // InternalXcore.g:4632:1: ( rule__XImportDeclaration__WildcardAssignment_1_0_3_0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXImportDeclarationAccess().getWildcardAssignment_1_0_3_0()); 
                    }
                    // InternalXcore.g:4633:1: ( rule__XImportDeclaration__WildcardAssignment_1_0_3_0 )
                    // InternalXcore.g:4633:2: rule__XImportDeclaration__WildcardAssignment_1_0_3_0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XImportDeclaration__WildcardAssignment_1_0_3_0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXImportDeclarationAccess().getWildcardAssignment_1_0_3_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // InternalXcore.g:4637:6: ( ( rule__XImportDeclaration__MemberNameAssignment_1_0_3_1 ) )
                    {
                    // InternalXcore.g:4637:6: ( ( rule__XImportDeclaration__MemberNameAssignment_1_0_3_1 ) )
                    // InternalXcore.g:4638:1: ( rule__XImportDeclaration__MemberNameAssignment_1_0_3_1 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXImportDeclarationAccess().getMemberNameAssignment_1_0_3_1()); 
                    }
                    // InternalXcore.g:4639:1: ( rule__XImportDeclaration__MemberNameAssignment_1_0_3_1 )
                    // InternalXcore.g:4639:2: rule__XImportDeclaration__MemberNameAssignment_1_0_3_1
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XImportDeclaration__MemberNameAssignment_1_0_3_1();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXImportDeclarationAccess().getMemberNameAssignment_1_0_3_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XImportDeclaration__Alternatives_1_0_3"


    // $ANTLR start "rule__XPackage__Group__0"
    // InternalXcore.g:4650:1: rule__XPackage__Group__0 : rule__XPackage__Group__0__Impl rule__XPackage__Group__1 ;
    public final void rule__XPackage__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:4654:1: ( rule__XPackage__Group__0__Impl rule__XPackage__Group__1 )
            // InternalXcore.g:4655:2: rule__XPackage__Group__0__Impl rule__XPackage__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_4);
            rule__XPackage__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XPackage__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XPackage__Group__0"


    // $ANTLR start "rule__XPackage__Group__0__Impl"
    // InternalXcore.g:4662:1: rule__XPackage__Group__0__Impl : ( () ) ;
    public final void rule__XPackage__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:4666:1: ( ( () ) )
            // InternalXcore.g:4667:1: ( () )
            {
            // InternalXcore.g:4667:1: ( () )
            // InternalXcore.g:4668:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXPackageAccess().getXPackageAction_0()); 
            }
            // InternalXcore.g:4669:1: ()
            // InternalXcore.g:4671:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXPackageAccess().getXPackageAction_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XPackage__Group__0__Impl"


    // $ANTLR start "rule__XPackage__Group__1"
    // InternalXcore.g:4681:1: rule__XPackage__Group__1 : rule__XPackage__Group__1__Impl rule__XPackage__Group__2 ;
    public final void rule__XPackage__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:4685:1: ( rule__XPackage__Group__1__Impl rule__XPackage__Group__2 )
            // InternalXcore.g:4686:2: rule__XPackage__Group__1__Impl rule__XPackage__Group__2
            {
            pushFollow(FollowSets000.FOLLOW_4);
            rule__XPackage__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XPackage__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XPackage__Group__1"


    // $ANTLR start "rule__XPackage__Group__1__Impl"
    // InternalXcore.g:4693:1: rule__XPackage__Group__1__Impl : ( ( rule__XPackage__AnnotationsAssignment_1 )* ) ;
    public final void rule__XPackage__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:4697:1: ( ( ( rule__XPackage__AnnotationsAssignment_1 )* ) )
            // InternalXcore.g:4698:1: ( ( rule__XPackage__AnnotationsAssignment_1 )* )
            {
            // InternalXcore.g:4698:1: ( ( rule__XPackage__AnnotationsAssignment_1 )* )
            // InternalXcore.g:4699:1: ( rule__XPackage__AnnotationsAssignment_1 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXPackageAccess().getAnnotationsAssignment_1()); 
            }
            // InternalXcore.g:4700:1: ( rule__XPackage__AnnotationsAssignment_1 )*
            loop55:
            do {
                int alt55=2;
                int LA55_0 = input.LA(1);

                if ( (LA55_0==84) ) {
                    alt55=1;
                }


                switch (alt55) {
            	case 1 :
            	    // InternalXcore.g:4700:2: rule__XPackage__AnnotationsAssignment_1
            	    {
            	    pushFollow(FollowSets000.FOLLOW_5);
            	    rule__XPackage__AnnotationsAssignment_1();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop55;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXPackageAccess().getAnnotationsAssignment_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XPackage__Group__1__Impl"


    // $ANTLR start "rule__XPackage__Group__2"
    // InternalXcore.g:4710:1: rule__XPackage__Group__2 : rule__XPackage__Group__2__Impl rule__XPackage__Group__3 ;
    public final void rule__XPackage__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:4714:1: ( rule__XPackage__Group__2__Impl rule__XPackage__Group__3 )
            // InternalXcore.g:4715:2: rule__XPackage__Group__2__Impl rule__XPackage__Group__3
            {
            pushFollow(FollowSets000.FOLLOW_6);
            rule__XPackage__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XPackage__Group__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XPackage__Group__2"


    // $ANTLR start "rule__XPackage__Group__2__Impl"
    // InternalXcore.g:4722:1: rule__XPackage__Group__2__Impl : ( 'package' ) ;
    public final void rule__XPackage__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:4726:1: ( ( 'package' ) )
            // InternalXcore.g:4727:1: ( 'package' )
            {
            // InternalXcore.g:4727:1: ( 'package' )
            // InternalXcore.g:4728:1: 'package'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXPackageAccess().getPackageKeyword_2()); 
            }
            match(input,43,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXPackageAccess().getPackageKeyword_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XPackage__Group__2__Impl"


    // $ANTLR start "rule__XPackage__Group__3"
    // InternalXcore.g:4741:1: rule__XPackage__Group__3 : rule__XPackage__Group__3__Impl rule__XPackage__Group__4 ;
    public final void rule__XPackage__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:4745:1: ( rule__XPackage__Group__3__Impl rule__XPackage__Group__4 )
            // InternalXcore.g:4746:2: rule__XPackage__Group__3__Impl rule__XPackage__Group__4
            {
            pushFollow(FollowSets000.FOLLOW_7);
            rule__XPackage__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XPackage__Group__4();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XPackage__Group__3"


    // $ANTLR start "rule__XPackage__Group__3__Impl"
    // InternalXcore.g:4753:1: rule__XPackage__Group__3__Impl : ( ( rule__XPackage__NameAssignment_3 ) ) ;
    public final void rule__XPackage__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:4757:1: ( ( ( rule__XPackage__NameAssignment_3 ) ) )
            // InternalXcore.g:4758:1: ( ( rule__XPackage__NameAssignment_3 ) )
            {
            // InternalXcore.g:4758:1: ( ( rule__XPackage__NameAssignment_3 ) )
            // InternalXcore.g:4759:1: ( rule__XPackage__NameAssignment_3 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXPackageAccess().getNameAssignment_3()); 
            }
            // InternalXcore.g:4760:1: ( rule__XPackage__NameAssignment_3 )
            // InternalXcore.g:4760:2: rule__XPackage__NameAssignment_3
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XPackage__NameAssignment_3();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXPackageAccess().getNameAssignment_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XPackage__Group__3__Impl"


    // $ANTLR start "rule__XPackage__Group__4"
    // InternalXcore.g:4770:1: rule__XPackage__Group__4 : rule__XPackage__Group__4__Impl rule__XPackage__Group__5 ;
    public final void rule__XPackage__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:4774:1: ( rule__XPackage__Group__4__Impl rule__XPackage__Group__5 )
            // InternalXcore.g:4775:2: rule__XPackage__Group__4__Impl rule__XPackage__Group__5
            {
            pushFollow(FollowSets000.FOLLOW_7);
            rule__XPackage__Group__4__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XPackage__Group__5();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XPackage__Group__4"


    // $ANTLR start "rule__XPackage__Group__4__Impl"
    // InternalXcore.g:4782:1: rule__XPackage__Group__4__Impl : ( ( rule__XPackage__ImportDirectivesAssignment_4 )* ) ;
    public final void rule__XPackage__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:4786:1: ( ( ( rule__XPackage__ImportDirectivesAssignment_4 )* ) )
            // InternalXcore.g:4787:1: ( ( rule__XPackage__ImportDirectivesAssignment_4 )* )
            {
            // InternalXcore.g:4787:1: ( ( rule__XPackage__ImportDirectivesAssignment_4 )* )
            // InternalXcore.g:4788:1: ( rule__XPackage__ImportDirectivesAssignment_4 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXPackageAccess().getImportDirectivesAssignment_4()); 
            }
            // InternalXcore.g:4789:1: ( rule__XPackage__ImportDirectivesAssignment_4 )*
            loop56:
            do {
                int alt56=2;
                int LA56_0 = input.LA(1);

                if ( (LA56_0==37) ) {
                    alt56=1;
                }


                switch (alt56) {
            	case 1 :
            	    // InternalXcore.g:4789:2: rule__XPackage__ImportDirectivesAssignment_4
            	    {
            	    pushFollow(FollowSets000.FOLLOW_8);
            	    rule__XPackage__ImportDirectivesAssignment_4();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop56;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXPackageAccess().getImportDirectivesAssignment_4()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XPackage__Group__4__Impl"


    // $ANTLR start "rule__XPackage__Group__5"
    // InternalXcore.g:4799:1: rule__XPackage__Group__5 : rule__XPackage__Group__5__Impl rule__XPackage__Group__6 ;
    public final void rule__XPackage__Group__5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:4803:1: ( rule__XPackage__Group__5__Impl rule__XPackage__Group__6 )
            // InternalXcore.g:4804:2: rule__XPackage__Group__5__Impl rule__XPackage__Group__6
            {
            pushFollow(FollowSets000.FOLLOW_7);
            rule__XPackage__Group__5__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XPackage__Group__6();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XPackage__Group__5"


    // $ANTLR start "rule__XPackage__Group__5__Impl"
    // InternalXcore.g:4811:1: rule__XPackage__Group__5__Impl : ( ( rule__XPackage__AnnotationDirectivesAssignment_5 )* ) ;
    public final void rule__XPackage__Group__5__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:4815:1: ( ( ( rule__XPackage__AnnotationDirectivesAssignment_5 )* ) )
            // InternalXcore.g:4816:1: ( ( rule__XPackage__AnnotationDirectivesAssignment_5 )* )
            {
            // InternalXcore.g:4816:1: ( ( rule__XPackage__AnnotationDirectivesAssignment_5 )* )
            // InternalXcore.g:4817:1: ( rule__XPackage__AnnotationDirectivesAssignment_5 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXPackageAccess().getAnnotationDirectivesAssignment_5()); 
            }
            // InternalXcore.g:4818:1: ( rule__XPackage__AnnotationDirectivesAssignment_5 )*
            loop57:
            do {
                int alt57=2;
                int LA57_0 = input.LA(1);

                if ( (LA57_0==25) ) {
                    alt57=1;
                }


                switch (alt57) {
            	case 1 :
            	    // InternalXcore.g:4818:2: rule__XPackage__AnnotationDirectivesAssignment_5
            	    {
            	    pushFollow(FollowSets000.FOLLOW_9);
            	    rule__XPackage__AnnotationDirectivesAssignment_5();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop57;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXPackageAccess().getAnnotationDirectivesAssignment_5()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XPackage__Group__5__Impl"


    // $ANTLR start "rule__XPackage__Group__6"
    // InternalXcore.g:4828:1: rule__XPackage__Group__6 : rule__XPackage__Group__6__Impl ;
    public final void rule__XPackage__Group__6() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:4832:1: ( rule__XPackage__Group__6__Impl )
            // InternalXcore.g:4833:2: rule__XPackage__Group__6__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XPackage__Group__6__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XPackage__Group__6"


    // $ANTLR start "rule__XPackage__Group__6__Impl"
    // InternalXcore.g:4839:1: rule__XPackage__Group__6__Impl : ( ( rule__XPackage__ClassifiersAssignment_6 )* ) ;
    public final void rule__XPackage__Group__6__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:4843:1: ( ( ( rule__XPackage__ClassifiersAssignment_6 )* ) )
            // InternalXcore.g:4844:1: ( ( rule__XPackage__ClassifiersAssignment_6 )* )
            {
            // InternalXcore.g:4844:1: ( ( rule__XPackage__ClassifiersAssignment_6 )* )
            // InternalXcore.g:4845:1: ( rule__XPackage__ClassifiersAssignment_6 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXPackageAccess().getClassifiersAssignment_6()); 
            }
            // InternalXcore.g:4846:1: ( rule__XPackage__ClassifiersAssignment_6 )*
            loop58:
            do {
                int alt58=2;
                int LA58_0 = input.LA(1);

                if ( (LA58_0==24||LA58_0==27||LA58_0==33||LA58_0==39||LA58_0==84||LA58_0==88) ) {
                    alt58=1;
                }


                switch (alt58) {
            	case 1 :
            	    // InternalXcore.g:4846:2: rule__XPackage__ClassifiersAssignment_6
            	    {
            	    pushFollow(FollowSets000.FOLLOW_10);
            	    rule__XPackage__ClassifiersAssignment_6();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop58;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXPackageAccess().getClassifiersAssignment_6()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XPackage__Group__6__Impl"


    // $ANTLR start "rule__XAnnotation__Group__0"
    // InternalXcore.g:4870:1: rule__XAnnotation__Group__0 : rule__XAnnotation__Group__0__Impl rule__XAnnotation__Group__1 ;
    public final void rule__XAnnotation__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:4874:1: ( rule__XAnnotation__Group__0__Impl rule__XAnnotation__Group__1 )
            // InternalXcore.g:4875:2: rule__XAnnotation__Group__0__Impl rule__XAnnotation__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_11);
            rule__XAnnotation__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XAnnotation__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAnnotation__Group__0"


    // $ANTLR start "rule__XAnnotation__Group__0__Impl"
    // InternalXcore.g:4882:1: rule__XAnnotation__Group__0__Impl : ( '@' ) ;
    public final void rule__XAnnotation__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:4886:1: ( ( '@' ) )
            // InternalXcore.g:4887:1: ( '@' )
            {
            // InternalXcore.g:4887:1: ( '@' )
            // InternalXcore.g:4888:1: '@'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAnnotationAccess().getCommercialAtKeyword_0()); 
            }
            match(input,84,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAnnotationAccess().getCommercialAtKeyword_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAnnotation__Group__0__Impl"


    // $ANTLR start "rule__XAnnotation__Group__1"
    // InternalXcore.g:4901:1: rule__XAnnotation__Group__1 : rule__XAnnotation__Group__1__Impl rule__XAnnotation__Group__2 ;
    public final void rule__XAnnotation__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:4905:1: ( rule__XAnnotation__Group__1__Impl rule__XAnnotation__Group__2 )
            // InternalXcore.g:4906:2: rule__XAnnotation__Group__1__Impl rule__XAnnotation__Group__2
            {
            pushFollow(FollowSets000.FOLLOW_12);
            rule__XAnnotation__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XAnnotation__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAnnotation__Group__1"


    // $ANTLR start "rule__XAnnotation__Group__1__Impl"
    // InternalXcore.g:4913:1: rule__XAnnotation__Group__1__Impl : ( ( rule__XAnnotation__SourceAssignment_1 ) ) ;
    public final void rule__XAnnotation__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:4917:1: ( ( ( rule__XAnnotation__SourceAssignment_1 ) ) )
            // InternalXcore.g:4918:1: ( ( rule__XAnnotation__SourceAssignment_1 ) )
            {
            // InternalXcore.g:4918:1: ( ( rule__XAnnotation__SourceAssignment_1 ) )
            // InternalXcore.g:4919:1: ( rule__XAnnotation__SourceAssignment_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAnnotationAccess().getSourceAssignment_1()); 
            }
            // InternalXcore.g:4920:1: ( rule__XAnnotation__SourceAssignment_1 )
            // InternalXcore.g:4920:2: rule__XAnnotation__SourceAssignment_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XAnnotation__SourceAssignment_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAnnotationAccess().getSourceAssignment_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAnnotation__Group__1__Impl"


    // $ANTLR start "rule__XAnnotation__Group__2"
    // InternalXcore.g:4930:1: rule__XAnnotation__Group__2 : rule__XAnnotation__Group__2__Impl ;
    public final void rule__XAnnotation__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:4934:1: ( rule__XAnnotation__Group__2__Impl )
            // InternalXcore.g:4935:2: rule__XAnnotation__Group__2__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XAnnotation__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAnnotation__Group__2"


    // $ANTLR start "rule__XAnnotation__Group__2__Impl"
    // InternalXcore.g:4941:1: rule__XAnnotation__Group__2__Impl : ( ( rule__XAnnotation__Group_2__0 )? ) ;
    public final void rule__XAnnotation__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:4945:1: ( ( ( rule__XAnnotation__Group_2__0 )? ) )
            // InternalXcore.g:4946:1: ( ( rule__XAnnotation__Group_2__0 )? )
            {
            // InternalXcore.g:4946:1: ( ( rule__XAnnotation__Group_2__0 )? )
            // InternalXcore.g:4947:1: ( rule__XAnnotation__Group_2__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAnnotationAccess().getGroup_2()); 
            }
            // InternalXcore.g:4948:1: ( rule__XAnnotation__Group_2__0 )?
            int alt59=2;
            int LA59_0 = input.LA(1);

            if ( (LA59_0==85) ) {
                alt59=1;
            }
            switch (alt59) {
                case 1 :
                    // InternalXcore.g:4948:2: rule__XAnnotation__Group_2__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XAnnotation__Group_2__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAnnotationAccess().getGroup_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAnnotation__Group__2__Impl"


    // $ANTLR start "rule__XAnnotation__Group_2__0"
    // InternalXcore.g:4964:1: rule__XAnnotation__Group_2__0 : rule__XAnnotation__Group_2__0__Impl rule__XAnnotation__Group_2__1 ;
    public final void rule__XAnnotation__Group_2__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:4968:1: ( rule__XAnnotation__Group_2__0__Impl rule__XAnnotation__Group_2__1 )
            // InternalXcore.g:4969:2: rule__XAnnotation__Group_2__0__Impl rule__XAnnotation__Group_2__1
            {
            pushFollow(FollowSets000.FOLLOW_6);
            rule__XAnnotation__Group_2__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XAnnotation__Group_2__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAnnotation__Group_2__0"


    // $ANTLR start "rule__XAnnotation__Group_2__0__Impl"
    // InternalXcore.g:4976:1: rule__XAnnotation__Group_2__0__Impl : ( '(' ) ;
    public final void rule__XAnnotation__Group_2__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:4980:1: ( ( '(' ) )
            // InternalXcore.g:4981:1: ( '(' )
            {
            // InternalXcore.g:4981:1: ( '(' )
            // InternalXcore.g:4982:1: '('
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAnnotationAccess().getLeftParenthesisKeyword_2_0()); 
            }
            match(input,85,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAnnotationAccess().getLeftParenthesisKeyword_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAnnotation__Group_2__0__Impl"


    // $ANTLR start "rule__XAnnotation__Group_2__1"
    // InternalXcore.g:4995:1: rule__XAnnotation__Group_2__1 : rule__XAnnotation__Group_2__1__Impl rule__XAnnotation__Group_2__2 ;
    public final void rule__XAnnotation__Group_2__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:4999:1: ( rule__XAnnotation__Group_2__1__Impl rule__XAnnotation__Group_2__2 )
            // InternalXcore.g:5000:2: rule__XAnnotation__Group_2__1__Impl rule__XAnnotation__Group_2__2
            {
            pushFollow(FollowSets000.FOLLOW_13);
            rule__XAnnotation__Group_2__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XAnnotation__Group_2__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAnnotation__Group_2__1"


    // $ANTLR start "rule__XAnnotation__Group_2__1__Impl"
    // InternalXcore.g:5007:1: rule__XAnnotation__Group_2__1__Impl : ( ( rule__XAnnotation__DetailsAssignment_2_1 ) ) ;
    public final void rule__XAnnotation__Group_2__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:5011:1: ( ( ( rule__XAnnotation__DetailsAssignment_2_1 ) ) )
            // InternalXcore.g:5012:1: ( ( rule__XAnnotation__DetailsAssignment_2_1 ) )
            {
            // InternalXcore.g:5012:1: ( ( rule__XAnnotation__DetailsAssignment_2_1 ) )
            // InternalXcore.g:5013:1: ( rule__XAnnotation__DetailsAssignment_2_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAnnotationAccess().getDetailsAssignment_2_1()); 
            }
            // InternalXcore.g:5014:1: ( rule__XAnnotation__DetailsAssignment_2_1 )
            // InternalXcore.g:5014:2: rule__XAnnotation__DetailsAssignment_2_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XAnnotation__DetailsAssignment_2_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAnnotationAccess().getDetailsAssignment_2_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAnnotation__Group_2__1__Impl"


    // $ANTLR start "rule__XAnnotation__Group_2__2"
    // InternalXcore.g:5024:1: rule__XAnnotation__Group_2__2 : rule__XAnnotation__Group_2__2__Impl rule__XAnnotation__Group_2__3 ;
    public final void rule__XAnnotation__Group_2__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:5028:1: ( rule__XAnnotation__Group_2__2__Impl rule__XAnnotation__Group_2__3 )
            // InternalXcore.g:5029:2: rule__XAnnotation__Group_2__2__Impl rule__XAnnotation__Group_2__3
            {
            pushFollow(FollowSets000.FOLLOW_13);
            rule__XAnnotation__Group_2__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XAnnotation__Group_2__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAnnotation__Group_2__2"


    // $ANTLR start "rule__XAnnotation__Group_2__2__Impl"
    // InternalXcore.g:5036:1: rule__XAnnotation__Group_2__2__Impl : ( ( rule__XAnnotation__Group_2_2__0 )* ) ;
    public final void rule__XAnnotation__Group_2__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:5040:1: ( ( ( rule__XAnnotation__Group_2_2__0 )* ) )
            // InternalXcore.g:5041:1: ( ( rule__XAnnotation__Group_2_2__0 )* )
            {
            // InternalXcore.g:5041:1: ( ( rule__XAnnotation__Group_2_2__0 )* )
            // InternalXcore.g:5042:1: ( rule__XAnnotation__Group_2_2__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAnnotationAccess().getGroup_2_2()); 
            }
            // InternalXcore.g:5043:1: ( rule__XAnnotation__Group_2_2__0 )*
            loop60:
            do {
                int alt60=2;
                int LA60_0 = input.LA(1);

                if ( (LA60_0==87) ) {
                    alt60=1;
                }


                switch (alt60) {
            	case 1 :
            	    // InternalXcore.g:5043:2: rule__XAnnotation__Group_2_2__0
            	    {
            	    pushFollow(FollowSets000.FOLLOW_14);
            	    rule__XAnnotation__Group_2_2__0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop60;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAnnotationAccess().getGroup_2_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAnnotation__Group_2__2__Impl"


    // $ANTLR start "rule__XAnnotation__Group_2__3"
    // InternalXcore.g:5053:1: rule__XAnnotation__Group_2__3 : rule__XAnnotation__Group_2__3__Impl ;
    public final void rule__XAnnotation__Group_2__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:5057:1: ( rule__XAnnotation__Group_2__3__Impl )
            // InternalXcore.g:5058:2: rule__XAnnotation__Group_2__3__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XAnnotation__Group_2__3__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAnnotation__Group_2__3"


    // $ANTLR start "rule__XAnnotation__Group_2__3__Impl"
    // InternalXcore.g:5064:1: rule__XAnnotation__Group_2__3__Impl : ( ')' ) ;
    public final void rule__XAnnotation__Group_2__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:5068:1: ( ( ')' ) )
            // InternalXcore.g:5069:1: ( ')' )
            {
            // InternalXcore.g:5069:1: ( ')' )
            // InternalXcore.g:5070:1: ')'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAnnotationAccess().getRightParenthesisKeyword_2_3()); 
            }
            match(input,86,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAnnotationAccess().getRightParenthesisKeyword_2_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAnnotation__Group_2__3__Impl"


    // $ANTLR start "rule__XAnnotation__Group_2_2__0"
    // InternalXcore.g:5091:1: rule__XAnnotation__Group_2_2__0 : rule__XAnnotation__Group_2_2__0__Impl rule__XAnnotation__Group_2_2__1 ;
    public final void rule__XAnnotation__Group_2_2__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:5095:1: ( rule__XAnnotation__Group_2_2__0__Impl rule__XAnnotation__Group_2_2__1 )
            // InternalXcore.g:5096:2: rule__XAnnotation__Group_2_2__0__Impl rule__XAnnotation__Group_2_2__1
            {
            pushFollow(FollowSets000.FOLLOW_6);
            rule__XAnnotation__Group_2_2__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XAnnotation__Group_2_2__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAnnotation__Group_2_2__0"


    // $ANTLR start "rule__XAnnotation__Group_2_2__0__Impl"
    // InternalXcore.g:5103:1: rule__XAnnotation__Group_2_2__0__Impl : ( ',' ) ;
    public final void rule__XAnnotation__Group_2_2__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:5107:1: ( ( ',' ) )
            // InternalXcore.g:5108:1: ( ',' )
            {
            // InternalXcore.g:5108:1: ( ',' )
            // InternalXcore.g:5109:1: ','
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAnnotationAccess().getCommaKeyword_2_2_0()); 
            }
            match(input,87,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAnnotationAccess().getCommaKeyword_2_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAnnotation__Group_2_2__0__Impl"


    // $ANTLR start "rule__XAnnotation__Group_2_2__1"
    // InternalXcore.g:5122:1: rule__XAnnotation__Group_2_2__1 : rule__XAnnotation__Group_2_2__1__Impl ;
    public final void rule__XAnnotation__Group_2_2__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:5126:1: ( rule__XAnnotation__Group_2_2__1__Impl )
            // InternalXcore.g:5127:2: rule__XAnnotation__Group_2_2__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XAnnotation__Group_2_2__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAnnotation__Group_2_2__1"


    // $ANTLR start "rule__XAnnotation__Group_2_2__1__Impl"
    // InternalXcore.g:5133:1: rule__XAnnotation__Group_2_2__1__Impl : ( ( rule__XAnnotation__DetailsAssignment_2_2_1 ) ) ;
    public final void rule__XAnnotation__Group_2_2__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:5137:1: ( ( ( rule__XAnnotation__DetailsAssignment_2_2_1 ) ) )
            // InternalXcore.g:5138:1: ( ( rule__XAnnotation__DetailsAssignment_2_2_1 ) )
            {
            // InternalXcore.g:5138:1: ( ( rule__XAnnotation__DetailsAssignment_2_2_1 ) )
            // InternalXcore.g:5139:1: ( rule__XAnnotation__DetailsAssignment_2_2_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAnnotationAccess().getDetailsAssignment_2_2_1()); 
            }
            // InternalXcore.g:5140:1: ( rule__XAnnotation__DetailsAssignment_2_2_1 )
            // InternalXcore.g:5140:2: rule__XAnnotation__DetailsAssignment_2_2_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XAnnotation__DetailsAssignment_2_2_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAnnotationAccess().getDetailsAssignment_2_2_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAnnotation__Group_2_2__1__Impl"


    // $ANTLR start "rule__XStringToStringMapEntry__Group__0"
    // InternalXcore.g:5154:1: rule__XStringToStringMapEntry__Group__0 : rule__XStringToStringMapEntry__Group__0__Impl rule__XStringToStringMapEntry__Group__1 ;
    public final void rule__XStringToStringMapEntry__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:5158:1: ( rule__XStringToStringMapEntry__Group__0__Impl rule__XStringToStringMapEntry__Group__1 )
            // InternalXcore.g:5159:2: rule__XStringToStringMapEntry__Group__0__Impl rule__XStringToStringMapEntry__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_15);
            rule__XStringToStringMapEntry__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XStringToStringMapEntry__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XStringToStringMapEntry__Group__0"


    // $ANTLR start "rule__XStringToStringMapEntry__Group__0__Impl"
    // InternalXcore.g:5166:1: rule__XStringToStringMapEntry__Group__0__Impl : ( ( rule__XStringToStringMapEntry__KeyAssignment_0 ) ) ;
    public final void rule__XStringToStringMapEntry__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:5170:1: ( ( ( rule__XStringToStringMapEntry__KeyAssignment_0 ) ) )
            // InternalXcore.g:5171:1: ( ( rule__XStringToStringMapEntry__KeyAssignment_0 ) )
            {
            // InternalXcore.g:5171:1: ( ( rule__XStringToStringMapEntry__KeyAssignment_0 ) )
            // InternalXcore.g:5172:1: ( rule__XStringToStringMapEntry__KeyAssignment_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXStringToStringMapEntryAccess().getKeyAssignment_0()); 
            }
            // InternalXcore.g:5173:1: ( rule__XStringToStringMapEntry__KeyAssignment_0 )
            // InternalXcore.g:5173:2: rule__XStringToStringMapEntry__KeyAssignment_0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XStringToStringMapEntry__KeyAssignment_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXStringToStringMapEntryAccess().getKeyAssignment_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XStringToStringMapEntry__Group__0__Impl"


    // $ANTLR start "rule__XStringToStringMapEntry__Group__1"
    // InternalXcore.g:5183:1: rule__XStringToStringMapEntry__Group__1 : rule__XStringToStringMapEntry__Group__1__Impl rule__XStringToStringMapEntry__Group__2 ;
    public final void rule__XStringToStringMapEntry__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:5187:1: ( rule__XStringToStringMapEntry__Group__1__Impl rule__XStringToStringMapEntry__Group__2 )
            // InternalXcore.g:5188:2: rule__XStringToStringMapEntry__Group__1__Impl rule__XStringToStringMapEntry__Group__2
            {
            pushFollow(FollowSets000.FOLLOW_16);
            rule__XStringToStringMapEntry__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XStringToStringMapEntry__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XStringToStringMapEntry__Group__1"


    // $ANTLR start "rule__XStringToStringMapEntry__Group__1__Impl"
    // InternalXcore.g:5195:1: rule__XStringToStringMapEntry__Group__1__Impl : ( '=' ) ;
    public final void rule__XStringToStringMapEntry__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:5199:1: ( ( '=' ) )
            // InternalXcore.g:5200:1: ( '=' )
            {
            // InternalXcore.g:5200:1: ( '=' )
            // InternalXcore.g:5201:1: '='
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXStringToStringMapEntryAccess().getEqualsSignKeyword_1()); 
            }
            match(input,13,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXStringToStringMapEntryAccess().getEqualsSignKeyword_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XStringToStringMapEntry__Group__1__Impl"


    // $ANTLR start "rule__XStringToStringMapEntry__Group__2"
    // InternalXcore.g:5214:1: rule__XStringToStringMapEntry__Group__2 : rule__XStringToStringMapEntry__Group__2__Impl ;
    public final void rule__XStringToStringMapEntry__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:5218:1: ( rule__XStringToStringMapEntry__Group__2__Impl )
            // InternalXcore.g:5219:2: rule__XStringToStringMapEntry__Group__2__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XStringToStringMapEntry__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XStringToStringMapEntry__Group__2"


    // $ANTLR start "rule__XStringToStringMapEntry__Group__2__Impl"
    // InternalXcore.g:5225:1: rule__XStringToStringMapEntry__Group__2__Impl : ( ( rule__XStringToStringMapEntry__ValueAssignment_2 ) ) ;
    public final void rule__XStringToStringMapEntry__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:5229:1: ( ( ( rule__XStringToStringMapEntry__ValueAssignment_2 ) ) )
            // InternalXcore.g:5230:1: ( ( rule__XStringToStringMapEntry__ValueAssignment_2 ) )
            {
            // InternalXcore.g:5230:1: ( ( rule__XStringToStringMapEntry__ValueAssignment_2 ) )
            // InternalXcore.g:5231:1: ( rule__XStringToStringMapEntry__ValueAssignment_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXStringToStringMapEntryAccess().getValueAssignment_2()); 
            }
            // InternalXcore.g:5232:1: ( rule__XStringToStringMapEntry__ValueAssignment_2 )
            // InternalXcore.g:5232:2: rule__XStringToStringMapEntry__ValueAssignment_2
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XStringToStringMapEntry__ValueAssignment_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXStringToStringMapEntryAccess().getValueAssignment_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XStringToStringMapEntry__Group__2__Impl"


    // $ANTLR start "rule__XImportDirective__Group__0"
    // InternalXcore.g:5248:1: rule__XImportDirective__Group__0 : rule__XImportDirective__Group__0__Impl rule__XImportDirective__Group__1 ;
    public final void rule__XImportDirective__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:5252:1: ( rule__XImportDirective__Group__0__Impl rule__XImportDirective__Group__1 )
            // InternalXcore.g:5253:2: rule__XImportDirective__Group__0__Impl rule__XImportDirective__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_17);
            rule__XImportDirective__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XImportDirective__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XImportDirective__Group__0"


    // $ANTLR start "rule__XImportDirective__Group__0__Impl"
    // InternalXcore.g:5260:1: rule__XImportDirective__Group__0__Impl : ( () ) ;
    public final void rule__XImportDirective__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:5264:1: ( ( () ) )
            // InternalXcore.g:5265:1: ( () )
            {
            // InternalXcore.g:5265:1: ( () )
            // InternalXcore.g:5266:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXImportDirectiveAccess().getXImportDirectiveAction_0()); 
            }
            // InternalXcore.g:5267:1: ()
            // InternalXcore.g:5269:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXImportDirectiveAccess().getXImportDirectiveAction_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XImportDirective__Group__0__Impl"


    // $ANTLR start "rule__XImportDirective__Group__1"
    // InternalXcore.g:5279:1: rule__XImportDirective__Group__1 : rule__XImportDirective__Group__1__Impl rule__XImportDirective__Group__2 ;
    public final void rule__XImportDirective__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:5283:1: ( rule__XImportDirective__Group__1__Impl rule__XImportDirective__Group__2 )
            // InternalXcore.g:5284:2: rule__XImportDirective__Group__1__Impl rule__XImportDirective__Group__2
            {
            pushFollow(FollowSets000.FOLLOW_6);
            rule__XImportDirective__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XImportDirective__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XImportDirective__Group__1"


    // $ANTLR start "rule__XImportDirective__Group__1__Impl"
    // InternalXcore.g:5291:1: rule__XImportDirective__Group__1__Impl : ( 'import' ) ;
    public final void rule__XImportDirective__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:5295:1: ( ( 'import' ) )
            // InternalXcore.g:5296:1: ( 'import' )
            {
            // InternalXcore.g:5296:1: ( 'import' )
            // InternalXcore.g:5297:1: 'import'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXImportDirectiveAccess().getImportKeyword_1()); 
            }
            match(input,37,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXImportDirectiveAccess().getImportKeyword_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XImportDirective__Group__1__Impl"


    // $ANTLR start "rule__XImportDirective__Group__2"
    // InternalXcore.g:5310:1: rule__XImportDirective__Group__2 : rule__XImportDirective__Group__2__Impl ;
    public final void rule__XImportDirective__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:5314:1: ( rule__XImportDirective__Group__2__Impl )
            // InternalXcore.g:5315:2: rule__XImportDirective__Group__2__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XImportDirective__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XImportDirective__Group__2"


    // $ANTLR start "rule__XImportDirective__Group__2__Impl"
    // InternalXcore.g:5321:1: rule__XImportDirective__Group__2__Impl : ( ( rule__XImportDirective__Alternatives_2 ) ) ;
    public final void rule__XImportDirective__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:5325:1: ( ( ( rule__XImportDirective__Alternatives_2 ) ) )
            // InternalXcore.g:5326:1: ( ( rule__XImportDirective__Alternatives_2 ) )
            {
            // InternalXcore.g:5326:1: ( ( rule__XImportDirective__Alternatives_2 ) )
            // InternalXcore.g:5327:1: ( rule__XImportDirective__Alternatives_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXImportDirectiveAccess().getAlternatives_2()); 
            }
            // InternalXcore.g:5328:1: ( rule__XImportDirective__Alternatives_2 )
            // InternalXcore.g:5328:2: rule__XImportDirective__Alternatives_2
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XImportDirective__Alternatives_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXImportDirectiveAccess().getAlternatives_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XImportDirective__Group__2__Impl"


    // $ANTLR start "rule__XAnnotationDirective__Group__0"
    // InternalXcore.g:5344:1: rule__XAnnotationDirective__Group__0 : rule__XAnnotationDirective__Group__0__Impl rule__XAnnotationDirective__Group__1 ;
    public final void rule__XAnnotationDirective__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:5348:1: ( rule__XAnnotationDirective__Group__0__Impl rule__XAnnotationDirective__Group__1 )
            // InternalXcore.g:5349:2: rule__XAnnotationDirective__Group__0__Impl rule__XAnnotationDirective__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_18);
            rule__XAnnotationDirective__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XAnnotationDirective__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAnnotationDirective__Group__0"


    // $ANTLR start "rule__XAnnotationDirective__Group__0__Impl"
    // InternalXcore.g:5356:1: rule__XAnnotationDirective__Group__0__Impl : ( ( rule__XAnnotationDirective__Group_0__0 ) ) ;
    public final void rule__XAnnotationDirective__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:5360:1: ( ( ( rule__XAnnotationDirective__Group_0__0 ) ) )
            // InternalXcore.g:5361:1: ( ( rule__XAnnotationDirective__Group_0__0 ) )
            {
            // InternalXcore.g:5361:1: ( ( rule__XAnnotationDirective__Group_0__0 ) )
            // InternalXcore.g:5362:1: ( rule__XAnnotationDirective__Group_0__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAnnotationDirectiveAccess().getGroup_0()); 
            }
            // InternalXcore.g:5363:1: ( rule__XAnnotationDirective__Group_0__0 )
            // InternalXcore.g:5363:2: rule__XAnnotationDirective__Group_0__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XAnnotationDirective__Group_0__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAnnotationDirectiveAccess().getGroup_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAnnotationDirective__Group__0__Impl"


    // $ANTLR start "rule__XAnnotationDirective__Group__1"
    // InternalXcore.g:5373:1: rule__XAnnotationDirective__Group__1 : rule__XAnnotationDirective__Group__1__Impl rule__XAnnotationDirective__Group__2 ;
    public final void rule__XAnnotationDirective__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:5377:1: ( rule__XAnnotationDirective__Group__1__Impl rule__XAnnotationDirective__Group__2 )
            // InternalXcore.g:5378:2: rule__XAnnotationDirective__Group__1__Impl rule__XAnnotationDirective__Group__2
            {
            pushFollow(FollowSets000.FOLLOW_6);
            rule__XAnnotationDirective__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XAnnotationDirective__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAnnotationDirective__Group__1"


    // $ANTLR start "rule__XAnnotationDirective__Group__1__Impl"
    // InternalXcore.g:5385:1: rule__XAnnotationDirective__Group__1__Impl : ( 'as' ) ;
    public final void rule__XAnnotationDirective__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:5389:1: ( ( 'as' ) )
            // InternalXcore.g:5390:1: ( 'as' )
            {
            // InternalXcore.g:5390:1: ( 'as' )
            // InternalXcore.g:5391:1: 'as'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAnnotationDirectiveAccess().getAsKeyword_1()); 
            }
            match(input,26,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAnnotationDirectiveAccess().getAsKeyword_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAnnotationDirective__Group__1__Impl"


    // $ANTLR start "rule__XAnnotationDirective__Group__2"
    // InternalXcore.g:5404:1: rule__XAnnotationDirective__Group__2 : rule__XAnnotationDirective__Group__2__Impl ;
    public final void rule__XAnnotationDirective__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:5408:1: ( rule__XAnnotationDirective__Group__2__Impl )
            // InternalXcore.g:5409:2: rule__XAnnotationDirective__Group__2__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XAnnotationDirective__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAnnotationDirective__Group__2"


    // $ANTLR start "rule__XAnnotationDirective__Group__2__Impl"
    // InternalXcore.g:5415:1: rule__XAnnotationDirective__Group__2__Impl : ( ( rule__XAnnotationDirective__NameAssignment_2 ) ) ;
    public final void rule__XAnnotationDirective__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:5419:1: ( ( ( rule__XAnnotationDirective__NameAssignment_2 ) ) )
            // InternalXcore.g:5420:1: ( ( rule__XAnnotationDirective__NameAssignment_2 ) )
            {
            // InternalXcore.g:5420:1: ( ( rule__XAnnotationDirective__NameAssignment_2 ) )
            // InternalXcore.g:5421:1: ( rule__XAnnotationDirective__NameAssignment_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAnnotationDirectiveAccess().getNameAssignment_2()); 
            }
            // InternalXcore.g:5422:1: ( rule__XAnnotationDirective__NameAssignment_2 )
            // InternalXcore.g:5422:2: rule__XAnnotationDirective__NameAssignment_2
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XAnnotationDirective__NameAssignment_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAnnotationDirectiveAccess().getNameAssignment_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAnnotationDirective__Group__2__Impl"


    // $ANTLR start "rule__XAnnotationDirective__Group_0__0"
    // InternalXcore.g:5438:1: rule__XAnnotationDirective__Group_0__0 : rule__XAnnotationDirective__Group_0__0__Impl ;
    public final void rule__XAnnotationDirective__Group_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:5442:1: ( rule__XAnnotationDirective__Group_0__0__Impl )
            // InternalXcore.g:5443:2: rule__XAnnotationDirective__Group_0__0__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XAnnotationDirective__Group_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAnnotationDirective__Group_0__0"


    // $ANTLR start "rule__XAnnotationDirective__Group_0__0__Impl"
    // InternalXcore.g:5449:1: rule__XAnnotationDirective__Group_0__0__Impl : ( ( rule__XAnnotationDirective__Group_0_0__0 ) ) ;
    public final void rule__XAnnotationDirective__Group_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:5453:1: ( ( ( rule__XAnnotationDirective__Group_0_0__0 ) ) )
            // InternalXcore.g:5454:1: ( ( rule__XAnnotationDirective__Group_0_0__0 ) )
            {
            // InternalXcore.g:5454:1: ( ( rule__XAnnotationDirective__Group_0_0__0 ) )
            // InternalXcore.g:5455:1: ( rule__XAnnotationDirective__Group_0_0__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAnnotationDirectiveAccess().getGroup_0_0()); 
            }
            // InternalXcore.g:5456:1: ( rule__XAnnotationDirective__Group_0_0__0 )
            // InternalXcore.g:5456:2: rule__XAnnotationDirective__Group_0_0__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XAnnotationDirective__Group_0_0__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAnnotationDirectiveAccess().getGroup_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAnnotationDirective__Group_0__0__Impl"


    // $ANTLR start "rule__XAnnotationDirective__Group_0_0__0"
    // InternalXcore.g:5468:1: rule__XAnnotationDirective__Group_0_0__0 : rule__XAnnotationDirective__Group_0_0__0__Impl rule__XAnnotationDirective__Group_0_0__1 ;
    public final void rule__XAnnotationDirective__Group_0_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:5472:1: ( rule__XAnnotationDirective__Group_0_0__0__Impl rule__XAnnotationDirective__Group_0_0__1 )
            // InternalXcore.g:5473:2: rule__XAnnotationDirective__Group_0_0__0__Impl rule__XAnnotationDirective__Group_0_0__1
            {
            pushFollow(FollowSets000.FOLLOW_16);
            rule__XAnnotationDirective__Group_0_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XAnnotationDirective__Group_0_0__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAnnotationDirective__Group_0_0__0"


    // $ANTLR start "rule__XAnnotationDirective__Group_0_0__0__Impl"
    // InternalXcore.g:5480:1: rule__XAnnotationDirective__Group_0_0__0__Impl : ( 'annotation' ) ;
    public final void rule__XAnnotationDirective__Group_0_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:5484:1: ( ( 'annotation' ) )
            // InternalXcore.g:5485:1: ( 'annotation' )
            {
            // InternalXcore.g:5485:1: ( 'annotation' )
            // InternalXcore.g:5486:1: 'annotation'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAnnotationDirectiveAccess().getAnnotationKeyword_0_0_0()); 
            }
            match(input,25,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAnnotationDirectiveAccess().getAnnotationKeyword_0_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAnnotationDirective__Group_0_0__0__Impl"


    // $ANTLR start "rule__XAnnotationDirective__Group_0_0__1"
    // InternalXcore.g:5499:1: rule__XAnnotationDirective__Group_0_0__1 : rule__XAnnotationDirective__Group_0_0__1__Impl ;
    public final void rule__XAnnotationDirective__Group_0_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:5503:1: ( rule__XAnnotationDirective__Group_0_0__1__Impl )
            // InternalXcore.g:5504:2: rule__XAnnotationDirective__Group_0_0__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XAnnotationDirective__Group_0_0__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAnnotationDirective__Group_0_0__1"


    // $ANTLR start "rule__XAnnotationDirective__Group_0_0__1__Impl"
    // InternalXcore.g:5510:1: rule__XAnnotationDirective__Group_0_0__1__Impl : ( ( rule__XAnnotationDirective__SourceURIAssignment_0_0_1 ) ) ;
    public final void rule__XAnnotationDirective__Group_0_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:5514:1: ( ( ( rule__XAnnotationDirective__SourceURIAssignment_0_0_1 ) ) )
            // InternalXcore.g:5515:1: ( ( rule__XAnnotationDirective__SourceURIAssignment_0_0_1 ) )
            {
            // InternalXcore.g:5515:1: ( ( rule__XAnnotationDirective__SourceURIAssignment_0_0_1 ) )
            // InternalXcore.g:5516:1: ( rule__XAnnotationDirective__SourceURIAssignment_0_0_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAnnotationDirectiveAccess().getSourceURIAssignment_0_0_1()); 
            }
            // InternalXcore.g:5517:1: ( rule__XAnnotationDirective__SourceURIAssignment_0_0_1 )
            // InternalXcore.g:5517:2: rule__XAnnotationDirective__SourceURIAssignment_0_0_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XAnnotationDirective__SourceURIAssignment_0_0_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAnnotationDirectiveAccess().getSourceURIAssignment_0_0_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAnnotationDirective__Group_0_0__1__Impl"


    // $ANTLR start "rule__XDataType__Group__0"
    // InternalXcore.g:5531:1: rule__XDataType__Group__0 : rule__XDataType__Group__0__Impl rule__XDataType__Group__1 ;
    public final void rule__XDataType__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:5535:1: ( rule__XDataType__Group__0__Impl rule__XDataType__Group__1 )
            // InternalXcore.g:5536:2: rule__XDataType__Group__0__Impl rule__XDataType__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_19);
            rule__XDataType__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XDataType__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XDataType__Group__0"


    // $ANTLR start "rule__XDataType__Group__0__Impl"
    // InternalXcore.g:5543:1: rule__XDataType__Group__0__Impl : ( ( rule__XDataType__AnnotationsAssignment_0 )* ) ;
    public final void rule__XDataType__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:5547:1: ( ( ( rule__XDataType__AnnotationsAssignment_0 )* ) )
            // InternalXcore.g:5548:1: ( ( rule__XDataType__AnnotationsAssignment_0 )* )
            {
            // InternalXcore.g:5548:1: ( ( rule__XDataType__AnnotationsAssignment_0 )* )
            // InternalXcore.g:5549:1: ( rule__XDataType__AnnotationsAssignment_0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXDataTypeAccess().getAnnotationsAssignment_0()); 
            }
            // InternalXcore.g:5550:1: ( rule__XDataType__AnnotationsAssignment_0 )*
            loop61:
            do {
                int alt61=2;
                int LA61_0 = input.LA(1);

                if ( (LA61_0==84) ) {
                    alt61=1;
                }


                switch (alt61) {
            	case 1 :
            	    // InternalXcore.g:5550:2: rule__XDataType__AnnotationsAssignment_0
            	    {
            	    pushFollow(FollowSets000.FOLLOW_5);
            	    rule__XDataType__AnnotationsAssignment_0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop61;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXDataTypeAccess().getAnnotationsAssignment_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XDataType__Group__0__Impl"


    // $ANTLR start "rule__XDataType__Group__1"
    // InternalXcore.g:5560:1: rule__XDataType__Group__1 : rule__XDataType__Group__1__Impl rule__XDataType__Group__2 ;
    public final void rule__XDataType__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:5564:1: ( rule__XDataType__Group__1__Impl rule__XDataType__Group__2 )
            // InternalXcore.g:5565:2: rule__XDataType__Group__1__Impl rule__XDataType__Group__2
            {
            pushFollow(FollowSets000.FOLLOW_20);
            rule__XDataType__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XDataType__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XDataType__Group__1"


    // $ANTLR start "rule__XDataType__Group__1__Impl"
    // InternalXcore.g:5572:1: rule__XDataType__Group__1__Impl : ( 'type' ) ;
    public final void rule__XDataType__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:5576:1: ( ( 'type' ) )
            // InternalXcore.g:5577:1: ( 'type' )
            {
            // InternalXcore.g:5577:1: ( 'type' )
            // InternalXcore.g:5578:1: 'type'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXDataTypeAccess().getTypeKeyword_1()); 
            }
            match(input,88,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXDataTypeAccess().getTypeKeyword_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XDataType__Group__1__Impl"


    // $ANTLR start "rule__XDataType__Group__2"
    // InternalXcore.g:5591:1: rule__XDataType__Group__2 : rule__XDataType__Group__2__Impl rule__XDataType__Group__3 ;
    public final void rule__XDataType__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:5595:1: ( rule__XDataType__Group__2__Impl rule__XDataType__Group__3 )
            // InternalXcore.g:5596:2: rule__XDataType__Group__2__Impl rule__XDataType__Group__3
            {
            pushFollow(FollowSets000.FOLLOW_21);
            rule__XDataType__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XDataType__Group__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XDataType__Group__2"


    // $ANTLR start "rule__XDataType__Group__2__Impl"
    // InternalXcore.g:5603:1: rule__XDataType__Group__2__Impl : ( ( rule__XDataType__NameAssignment_2 ) ) ;
    public final void rule__XDataType__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:5607:1: ( ( ( rule__XDataType__NameAssignment_2 ) ) )
            // InternalXcore.g:5608:1: ( ( rule__XDataType__NameAssignment_2 ) )
            {
            // InternalXcore.g:5608:1: ( ( rule__XDataType__NameAssignment_2 ) )
            // InternalXcore.g:5609:1: ( rule__XDataType__NameAssignment_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXDataTypeAccess().getNameAssignment_2()); 
            }
            // InternalXcore.g:5610:1: ( rule__XDataType__NameAssignment_2 )
            // InternalXcore.g:5610:2: rule__XDataType__NameAssignment_2
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XDataType__NameAssignment_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXDataTypeAccess().getNameAssignment_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XDataType__Group__2__Impl"


    // $ANTLR start "rule__XDataType__Group__3"
    // InternalXcore.g:5620:1: rule__XDataType__Group__3 : rule__XDataType__Group__3__Impl rule__XDataType__Group__4 ;
    public final void rule__XDataType__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:5624:1: ( rule__XDataType__Group__3__Impl rule__XDataType__Group__4 )
            // InternalXcore.g:5625:2: rule__XDataType__Group__3__Impl rule__XDataType__Group__4
            {
            pushFollow(FollowSets000.FOLLOW_21);
            rule__XDataType__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XDataType__Group__4();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XDataType__Group__3"


    // $ANTLR start "rule__XDataType__Group__3__Impl"
    // InternalXcore.g:5632:1: rule__XDataType__Group__3__Impl : ( ( rule__XDataType__Group_3__0 )? ) ;
    public final void rule__XDataType__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:5636:1: ( ( ( rule__XDataType__Group_3__0 )? ) )
            // InternalXcore.g:5637:1: ( ( rule__XDataType__Group_3__0 )? )
            {
            // InternalXcore.g:5637:1: ( ( rule__XDataType__Group_3__0 )? )
            // InternalXcore.g:5638:1: ( rule__XDataType__Group_3__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXDataTypeAccess().getGroup_3()); 
            }
            // InternalXcore.g:5639:1: ( rule__XDataType__Group_3__0 )?
            int alt62=2;
            int LA62_0 = input.LA(1);

            if ( (LA62_0==66) ) {
                alt62=1;
            }
            switch (alt62) {
                case 1 :
                    // InternalXcore.g:5639:2: rule__XDataType__Group_3__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XDataType__Group_3__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXDataTypeAccess().getGroup_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XDataType__Group__3__Impl"


    // $ANTLR start "rule__XDataType__Group__4"
    // InternalXcore.g:5649:1: rule__XDataType__Group__4 : rule__XDataType__Group__4__Impl rule__XDataType__Group__5 ;
    public final void rule__XDataType__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:5653:1: ( rule__XDataType__Group__4__Impl rule__XDataType__Group__5 )
            // InternalXcore.g:5654:2: rule__XDataType__Group__4__Impl rule__XDataType__Group__5
            {
            pushFollow(FollowSets000.FOLLOW_22);
            rule__XDataType__Group__4__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XDataType__Group__5();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XDataType__Group__4"


    // $ANTLR start "rule__XDataType__Group__4__Impl"
    // InternalXcore.g:5661:1: rule__XDataType__Group__4__Impl : ( 'wraps' ) ;
    public final void rule__XDataType__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:5665:1: ( ( 'wraps' ) )
            // InternalXcore.g:5666:1: ( 'wraps' )
            {
            // InternalXcore.g:5666:1: ( 'wraps' )
            // InternalXcore.g:5667:1: 'wraps'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXDataTypeAccess().getWrapsKeyword_4()); 
            }
            match(input,54,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXDataTypeAccess().getWrapsKeyword_4()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XDataType__Group__4__Impl"


    // $ANTLR start "rule__XDataType__Group__5"
    // InternalXcore.g:5680:1: rule__XDataType__Group__5 : rule__XDataType__Group__5__Impl rule__XDataType__Group__6 ;
    public final void rule__XDataType__Group__5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:5684:1: ( rule__XDataType__Group__5__Impl rule__XDataType__Group__6 )
            // InternalXcore.g:5685:2: rule__XDataType__Group__5__Impl rule__XDataType__Group__6
            {
            pushFollow(FollowSets000.FOLLOW_23);
            rule__XDataType__Group__5__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XDataType__Group__6();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XDataType__Group__5"


    // $ANTLR start "rule__XDataType__Group__5__Impl"
    // InternalXcore.g:5692:1: rule__XDataType__Group__5__Impl : ( ( rule__XDataType__InstanceTypeAssignment_5 ) ) ;
    public final void rule__XDataType__Group__5__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:5696:1: ( ( ( rule__XDataType__InstanceTypeAssignment_5 ) ) )
            // InternalXcore.g:5697:1: ( ( rule__XDataType__InstanceTypeAssignment_5 ) )
            {
            // InternalXcore.g:5697:1: ( ( rule__XDataType__InstanceTypeAssignment_5 ) )
            // InternalXcore.g:5698:1: ( rule__XDataType__InstanceTypeAssignment_5 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXDataTypeAccess().getInstanceTypeAssignment_5()); 
            }
            // InternalXcore.g:5699:1: ( rule__XDataType__InstanceTypeAssignment_5 )
            // InternalXcore.g:5699:2: rule__XDataType__InstanceTypeAssignment_5
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XDataType__InstanceTypeAssignment_5();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXDataTypeAccess().getInstanceTypeAssignment_5()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XDataType__Group__5__Impl"


    // $ANTLR start "rule__XDataType__Group__6"
    // InternalXcore.g:5709:1: rule__XDataType__Group__6 : rule__XDataType__Group__6__Impl ;
    public final void rule__XDataType__Group__6() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:5713:1: ( rule__XDataType__Group__6__Impl )
            // InternalXcore.g:5714:2: rule__XDataType__Group__6__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XDataType__Group__6__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XDataType__Group__6"


    // $ANTLR start "rule__XDataType__Group__6__Impl"
    // InternalXcore.g:5720:1: rule__XDataType__Group__6__Impl : ( ( rule__XDataType__UnorderedGroup_6 ) ) ;
    public final void rule__XDataType__Group__6__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:5724:1: ( ( ( rule__XDataType__UnorderedGroup_6 ) ) )
            // InternalXcore.g:5725:1: ( ( rule__XDataType__UnorderedGroup_6 ) )
            {
            // InternalXcore.g:5725:1: ( ( rule__XDataType__UnorderedGroup_6 ) )
            // InternalXcore.g:5726:1: ( rule__XDataType__UnorderedGroup_6 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXDataTypeAccess().getUnorderedGroup_6()); 
            }
            // InternalXcore.g:5727:1: ( rule__XDataType__UnorderedGroup_6 )
            // InternalXcore.g:5727:2: rule__XDataType__UnorderedGroup_6
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XDataType__UnorderedGroup_6();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXDataTypeAccess().getUnorderedGroup_6()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XDataType__Group__6__Impl"


    // $ANTLR start "rule__XDataType__Group_3__0"
    // InternalXcore.g:5751:1: rule__XDataType__Group_3__0 : rule__XDataType__Group_3__0__Impl rule__XDataType__Group_3__1 ;
    public final void rule__XDataType__Group_3__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:5755:1: ( rule__XDataType__Group_3__0__Impl rule__XDataType__Group_3__1 )
            // InternalXcore.g:5756:2: rule__XDataType__Group_3__0__Impl rule__XDataType__Group_3__1
            {
            pushFollow(FollowSets000.FOLLOW_24);
            rule__XDataType__Group_3__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XDataType__Group_3__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XDataType__Group_3__0"


    // $ANTLR start "rule__XDataType__Group_3__0__Impl"
    // InternalXcore.g:5763:1: rule__XDataType__Group_3__0__Impl : ( '<' ) ;
    public final void rule__XDataType__Group_3__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:5767:1: ( ( '<' ) )
            // InternalXcore.g:5768:1: ( '<' )
            {
            // InternalXcore.g:5768:1: ( '<' )
            // InternalXcore.g:5769:1: '<'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXDataTypeAccess().getLessThanSignKeyword_3_0()); 
            }
            match(input,66,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXDataTypeAccess().getLessThanSignKeyword_3_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XDataType__Group_3__0__Impl"


    // $ANTLR start "rule__XDataType__Group_3__1"
    // InternalXcore.g:5782:1: rule__XDataType__Group_3__1 : rule__XDataType__Group_3__1__Impl rule__XDataType__Group_3__2 ;
    public final void rule__XDataType__Group_3__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:5786:1: ( rule__XDataType__Group_3__1__Impl rule__XDataType__Group_3__2 )
            // InternalXcore.g:5787:2: rule__XDataType__Group_3__1__Impl rule__XDataType__Group_3__2
            {
            pushFollow(FollowSets000.FOLLOW_25);
            rule__XDataType__Group_3__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XDataType__Group_3__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XDataType__Group_3__1"


    // $ANTLR start "rule__XDataType__Group_3__1__Impl"
    // InternalXcore.g:5794:1: rule__XDataType__Group_3__1__Impl : ( ( rule__XDataType__TypeParametersAssignment_3_1 ) ) ;
    public final void rule__XDataType__Group_3__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:5798:1: ( ( ( rule__XDataType__TypeParametersAssignment_3_1 ) ) )
            // InternalXcore.g:5799:1: ( ( rule__XDataType__TypeParametersAssignment_3_1 ) )
            {
            // InternalXcore.g:5799:1: ( ( rule__XDataType__TypeParametersAssignment_3_1 ) )
            // InternalXcore.g:5800:1: ( rule__XDataType__TypeParametersAssignment_3_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXDataTypeAccess().getTypeParametersAssignment_3_1()); 
            }
            // InternalXcore.g:5801:1: ( rule__XDataType__TypeParametersAssignment_3_1 )
            // InternalXcore.g:5801:2: rule__XDataType__TypeParametersAssignment_3_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XDataType__TypeParametersAssignment_3_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXDataTypeAccess().getTypeParametersAssignment_3_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XDataType__Group_3__1__Impl"


    // $ANTLR start "rule__XDataType__Group_3__2"
    // InternalXcore.g:5811:1: rule__XDataType__Group_3__2 : rule__XDataType__Group_3__2__Impl rule__XDataType__Group_3__3 ;
    public final void rule__XDataType__Group_3__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:5815:1: ( rule__XDataType__Group_3__2__Impl rule__XDataType__Group_3__3 )
            // InternalXcore.g:5816:2: rule__XDataType__Group_3__2__Impl rule__XDataType__Group_3__3
            {
            pushFollow(FollowSets000.FOLLOW_25);
            rule__XDataType__Group_3__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XDataType__Group_3__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XDataType__Group_3__2"


    // $ANTLR start "rule__XDataType__Group_3__2__Impl"
    // InternalXcore.g:5823:1: rule__XDataType__Group_3__2__Impl : ( ( rule__XDataType__Group_3_2__0 )* ) ;
    public final void rule__XDataType__Group_3__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:5827:1: ( ( ( rule__XDataType__Group_3_2__0 )* ) )
            // InternalXcore.g:5828:1: ( ( rule__XDataType__Group_3_2__0 )* )
            {
            // InternalXcore.g:5828:1: ( ( rule__XDataType__Group_3_2__0 )* )
            // InternalXcore.g:5829:1: ( rule__XDataType__Group_3_2__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXDataTypeAccess().getGroup_3_2()); 
            }
            // InternalXcore.g:5830:1: ( rule__XDataType__Group_3_2__0 )*
            loop63:
            do {
                int alt63=2;
                int LA63_0 = input.LA(1);

                if ( (LA63_0==87) ) {
                    alt63=1;
                }


                switch (alt63) {
            	case 1 :
            	    // InternalXcore.g:5830:2: rule__XDataType__Group_3_2__0
            	    {
            	    pushFollow(FollowSets000.FOLLOW_14);
            	    rule__XDataType__Group_3_2__0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop63;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXDataTypeAccess().getGroup_3_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XDataType__Group_3__2__Impl"


    // $ANTLR start "rule__XDataType__Group_3__3"
    // InternalXcore.g:5840:1: rule__XDataType__Group_3__3 : rule__XDataType__Group_3__3__Impl ;
    public final void rule__XDataType__Group_3__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:5844:1: ( rule__XDataType__Group_3__3__Impl )
            // InternalXcore.g:5845:2: rule__XDataType__Group_3__3__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XDataType__Group_3__3__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XDataType__Group_3__3"


    // $ANTLR start "rule__XDataType__Group_3__3__Impl"
    // InternalXcore.g:5851:1: rule__XDataType__Group_3__3__Impl : ( '>' ) ;
    public final void rule__XDataType__Group_3__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:5855:1: ( ( '>' ) )
            // InternalXcore.g:5856:1: ( '>' )
            {
            // InternalXcore.g:5856:1: ( '>' )
            // InternalXcore.g:5857:1: '>'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXDataTypeAccess().getGreaterThanSignKeyword_3_3()); 
            }
            match(input,65,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXDataTypeAccess().getGreaterThanSignKeyword_3_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XDataType__Group_3__3__Impl"


    // $ANTLR start "rule__XDataType__Group_3_2__0"
    // InternalXcore.g:5878:1: rule__XDataType__Group_3_2__0 : rule__XDataType__Group_3_2__0__Impl rule__XDataType__Group_3_2__1 ;
    public final void rule__XDataType__Group_3_2__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:5882:1: ( rule__XDataType__Group_3_2__0__Impl rule__XDataType__Group_3_2__1 )
            // InternalXcore.g:5883:2: rule__XDataType__Group_3_2__0__Impl rule__XDataType__Group_3_2__1
            {
            pushFollow(FollowSets000.FOLLOW_24);
            rule__XDataType__Group_3_2__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XDataType__Group_3_2__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XDataType__Group_3_2__0"


    // $ANTLR start "rule__XDataType__Group_3_2__0__Impl"
    // InternalXcore.g:5890:1: rule__XDataType__Group_3_2__0__Impl : ( ',' ) ;
    public final void rule__XDataType__Group_3_2__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:5894:1: ( ( ',' ) )
            // InternalXcore.g:5895:1: ( ',' )
            {
            // InternalXcore.g:5895:1: ( ',' )
            // InternalXcore.g:5896:1: ','
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXDataTypeAccess().getCommaKeyword_3_2_0()); 
            }
            match(input,87,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXDataTypeAccess().getCommaKeyword_3_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XDataType__Group_3_2__0__Impl"


    // $ANTLR start "rule__XDataType__Group_3_2__1"
    // InternalXcore.g:5909:1: rule__XDataType__Group_3_2__1 : rule__XDataType__Group_3_2__1__Impl ;
    public final void rule__XDataType__Group_3_2__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:5913:1: ( rule__XDataType__Group_3_2__1__Impl )
            // InternalXcore.g:5914:2: rule__XDataType__Group_3_2__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XDataType__Group_3_2__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XDataType__Group_3_2__1"


    // $ANTLR start "rule__XDataType__Group_3_2__1__Impl"
    // InternalXcore.g:5920:1: rule__XDataType__Group_3_2__1__Impl : ( ( rule__XDataType__TypeParametersAssignment_3_2_1 ) ) ;
    public final void rule__XDataType__Group_3_2__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:5924:1: ( ( ( rule__XDataType__TypeParametersAssignment_3_2_1 ) ) )
            // InternalXcore.g:5925:1: ( ( rule__XDataType__TypeParametersAssignment_3_2_1 ) )
            {
            // InternalXcore.g:5925:1: ( ( rule__XDataType__TypeParametersAssignment_3_2_1 ) )
            // InternalXcore.g:5926:1: ( rule__XDataType__TypeParametersAssignment_3_2_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXDataTypeAccess().getTypeParametersAssignment_3_2_1()); 
            }
            // InternalXcore.g:5927:1: ( rule__XDataType__TypeParametersAssignment_3_2_1 )
            // InternalXcore.g:5927:2: rule__XDataType__TypeParametersAssignment_3_2_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XDataType__TypeParametersAssignment_3_2_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXDataTypeAccess().getTypeParametersAssignment_3_2_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XDataType__Group_3_2__1__Impl"


    // $ANTLR start "rule__XDataType__Group_6_0__0"
    // InternalXcore.g:5941:1: rule__XDataType__Group_6_0__0 : rule__XDataType__Group_6_0__0__Impl rule__XDataType__Group_6_0__1 ;
    public final void rule__XDataType__Group_6_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:5945:1: ( rule__XDataType__Group_6_0__0__Impl rule__XDataType__Group_6_0__1 )
            // InternalXcore.g:5946:2: rule__XDataType__Group_6_0__0__Impl rule__XDataType__Group_6_0__1
            {
            pushFollow(FollowSets000.FOLLOW_26);
            rule__XDataType__Group_6_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XDataType__Group_6_0__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XDataType__Group_6_0__0"


    // $ANTLR start "rule__XDataType__Group_6_0__0__Impl"
    // InternalXcore.g:5953:1: rule__XDataType__Group_6_0__0__Impl : ( ( rule__XDataType__SerializableAssignment_6_0_0 ) ) ;
    public final void rule__XDataType__Group_6_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:5957:1: ( ( ( rule__XDataType__SerializableAssignment_6_0_0 ) ) )
            // InternalXcore.g:5958:1: ( ( rule__XDataType__SerializableAssignment_6_0_0 ) )
            {
            // InternalXcore.g:5958:1: ( ( rule__XDataType__SerializableAssignment_6_0_0 ) )
            // InternalXcore.g:5959:1: ( rule__XDataType__SerializableAssignment_6_0_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXDataTypeAccess().getSerializableAssignment_6_0_0()); 
            }
            // InternalXcore.g:5960:1: ( rule__XDataType__SerializableAssignment_6_0_0 )
            // InternalXcore.g:5960:2: rule__XDataType__SerializableAssignment_6_0_0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XDataType__SerializableAssignment_6_0_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXDataTypeAccess().getSerializableAssignment_6_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XDataType__Group_6_0__0__Impl"


    // $ANTLR start "rule__XDataType__Group_6_0__1"
    // InternalXcore.g:5970:1: rule__XDataType__Group_6_0__1 : rule__XDataType__Group_6_0__1__Impl ;
    public final void rule__XDataType__Group_6_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:5974:1: ( rule__XDataType__Group_6_0__1__Impl )
            // InternalXcore.g:5975:2: rule__XDataType__Group_6_0__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XDataType__Group_6_0__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XDataType__Group_6_0__1"


    // $ANTLR start "rule__XDataType__Group_6_0__1__Impl"
    // InternalXcore.g:5981:1: rule__XDataType__Group_6_0__1__Impl : ( ( rule__XDataType__CreateBodyAssignment_6_0_1 ) ) ;
    public final void rule__XDataType__Group_6_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:5985:1: ( ( ( rule__XDataType__CreateBodyAssignment_6_0_1 ) ) )
            // InternalXcore.g:5986:1: ( ( rule__XDataType__CreateBodyAssignment_6_0_1 ) )
            {
            // InternalXcore.g:5986:1: ( ( rule__XDataType__CreateBodyAssignment_6_0_1 ) )
            // InternalXcore.g:5987:1: ( rule__XDataType__CreateBodyAssignment_6_0_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXDataTypeAccess().getCreateBodyAssignment_6_0_1()); 
            }
            // InternalXcore.g:5988:1: ( rule__XDataType__CreateBodyAssignment_6_0_1 )
            // InternalXcore.g:5988:2: rule__XDataType__CreateBodyAssignment_6_0_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XDataType__CreateBodyAssignment_6_0_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXDataTypeAccess().getCreateBodyAssignment_6_0_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XDataType__Group_6_0__1__Impl"


    // $ANTLR start "rule__XDataType__Group_6_1__0"
    // InternalXcore.g:6002:1: rule__XDataType__Group_6_1__0 : rule__XDataType__Group_6_1__0__Impl rule__XDataType__Group_6_1__1 ;
    public final void rule__XDataType__Group_6_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:6006:1: ( rule__XDataType__Group_6_1__0__Impl rule__XDataType__Group_6_1__1 )
            // InternalXcore.g:6007:2: rule__XDataType__Group_6_1__0__Impl rule__XDataType__Group_6_1__1
            {
            pushFollow(FollowSets000.FOLLOW_26);
            rule__XDataType__Group_6_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XDataType__Group_6_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XDataType__Group_6_1__0"


    // $ANTLR start "rule__XDataType__Group_6_1__0__Impl"
    // InternalXcore.g:6014:1: rule__XDataType__Group_6_1__0__Impl : ( 'convert' ) ;
    public final void rule__XDataType__Group_6_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:6018:1: ( ( 'convert' ) )
            // InternalXcore.g:6019:1: ( 'convert' )
            {
            // InternalXcore.g:6019:1: ( 'convert' )
            // InternalXcore.g:6020:1: 'convert'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXDataTypeAccess().getConvertKeyword_6_1_0()); 
            }
            match(input,30,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXDataTypeAccess().getConvertKeyword_6_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XDataType__Group_6_1__0__Impl"


    // $ANTLR start "rule__XDataType__Group_6_1__1"
    // InternalXcore.g:6033:1: rule__XDataType__Group_6_1__1 : rule__XDataType__Group_6_1__1__Impl ;
    public final void rule__XDataType__Group_6_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:6037:1: ( rule__XDataType__Group_6_1__1__Impl )
            // InternalXcore.g:6038:2: rule__XDataType__Group_6_1__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XDataType__Group_6_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XDataType__Group_6_1__1"


    // $ANTLR start "rule__XDataType__Group_6_1__1__Impl"
    // InternalXcore.g:6044:1: rule__XDataType__Group_6_1__1__Impl : ( ( rule__XDataType__ConvertBodyAssignment_6_1_1 ) ) ;
    public final void rule__XDataType__Group_6_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:6048:1: ( ( ( rule__XDataType__ConvertBodyAssignment_6_1_1 ) ) )
            // InternalXcore.g:6049:1: ( ( rule__XDataType__ConvertBodyAssignment_6_1_1 ) )
            {
            // InternalXcore.g:6049:1: ( ( rule__XDataType__ConvertBodyAssignment_6_1_1 ) )
            // InternalXcore.g:6050:1: ( rule__XDataType__ConvertBodyAssignment_6_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXDataTypeAccess().getConvertBodyAssignment_6_1_1()); 
            }
            // InternalXcore.g:6051:1: ( rule__XDataType__ConvertBodyAssignment_6_1_1 )
            // InternalXcore.g:6051:2: rule__XDataType__ConvertBodyAssignment_6_1_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XDataType__ConvertBodyAssignment_6_1_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXDataTypeAccess().getConvertBodyAssignment_6_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XDataType__Group_6_1__1__Impl"


    // $ANTLR start "rule__XEnum__Group__0"
    // InternalXcore.g:6065:1: rule__XEnum__Group__0 : rule__XEnum__Group__0__Impl rule__XEnum__Group__1 ;
    public final void rule__XEnum__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:6069:1: ( rule__XEnum__Group__0__Impl rule__XEnum__Group__1 )
            // InternalXcore.g:6070:2: rule__XEnum__Group__0__Impl rule__XEnum__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_27);
            rule__XEnum__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XEnum__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XEnum__Group__0"


    // $ANTLR start "rule__XEnum__Group__0__Impl"
    // InternalXcore.g:6077:1: rule__XEnum__Group__0__Impl : ( ( rule__XEnum__AnnotationsAssignment_0 )* ) ;
    public final void rule__XEnum__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:6081:1: ( ( ( rule__XEnum__AnnotationsAssignment_0 )* ) )
            // InternalXcore.g:6082:1: ( ( rule__XEnum__AnnotationsAssignment_0 )* )
            {
            // InternalXcore.g:6082:1: ( ( rule__XEnum__AnnotationsAssignment_0 )* )
            // InternalXcore.g:6083:1: ( rule__XEnum__AnnotationsAssignment_0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXEnumAccess().getAnnotationsAssignment_0()); 
            }
            // InternalXcore.g:6084:1: ( rule__XEnum__AnnotationsAssignment_0 )*
            loop64:
            do {
                int alt64=2;
                int LA64_0 = input.LA(1);

                if ( (LA64_0==84) ) {
                    alt64=1;
                }


                switch (alt64) {
            	case 1 :
            	    // InternalXcore.g:6084:2: rule__XEnum__AnnotationsAssignment_0
            	    {
            	    pushFollow(FollowSets000.FOLLOW_5);
            	    rule__XEnum__AnnotationsAssignment_0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop64;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXEnumAccess().getAnnotationsAssignment_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XEnum__Group__0__Impl"


    // $ANTLR start "rule__XEnum__Group__1"
    // InternalXcore.g:6094:1: rule__XEnum__Group__1 : rule__XEnum__Group__1__Impl rule__XEnum__Group__2 ;
    public final void rule__XEnum__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:6098:1: ( rule__XEnum__Group__1__Impl rule__XEnum__Group__2 )
            // InternalXcore.g:6099:2: rule__XEnum__Group__1__Impl rule__XEnum__Group__2
            {
            pushFollow(FollowSets000.FOLLOW_20);
            rule__XEnum__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XEnum__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XEnum__Group__1"


    // $ANTLR start "rule__XEnum__Group__1__Impl"
    // InternalXcore.g:6106:1: rule__XEnum__Group__1__Impl : ( 'enum' ) ;
    public final void rule__XEnum__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:6110:1: ( ( 'enum' ) )
            // InternalXcore.g:6111:1: ( 'enum' )
            {
            // InternalXcore.g:6111:1: ( 'enum' )
            // InternalXcore.g:6112:1: 'enum'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXEnumAccess().getEnumKeyword_1()); 
            }
            match(input,33,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXEnumAccess().getEnumKeyword_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XEnum__Group__1__Impl"


    // $ANTLR start "rule__XEnum__Group__2"
    // InternalXcore.g:6125:1: rule__XEnum__Group__2 : rule__XEnum__Group__2__Impl rule__XEnum__Group__3 ;
    public final void rule__XEnum__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:6129:1: ( rule__XEnum__Group__2__Impl rule__XEnum__Group__3 )
            // InternalXcore.g:6130:2: rule__XEnum__Group__2__Impl rule__XEnum__Group__3
            {
            pushFollow(FollowSets000.FOLLOW_26);
            rule__XEnum__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XEnum__Group__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XEnum__Group__2"


    // $ANTLR start "rule__XEnum__Group__2__Impl"
    // InternalXcore.g:6137:1: rule__XEnum__Group__2__Impl : ( ( rule__XEnum__NameAssignment_2 ) ) ;
    public final void rule__XEnum__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:6141:1: ( ( ( rule__XEnum__NameAssignment_2 ) ) )
            // InternalXcore.g:6142:1: ( ( rule__XEnum__NameAssignment_2 ) )
            {
            // InternalXcore.g:6142:1: ( ( rule__XEnum__NameAssignment_2 ) )
            // InternalXcore.g:6143:1: ( rule__XEnum__NameAssignment_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXEnumAccess().getNameAssignment_2()); 
            }
            // InternalXcore.g:6144:1: ( rule__XEnum__NameAssignment_2 )
            // InternalXcore.g:6144:2: rule__XEnum__NameAssignment_2
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XEnum__NameAssignment_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXEnumAccess().getNameAssignment_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XEnum__Group__2__Impl"


    // $ANTLR start "rule__XEnum__Group__3"
    // InternalXcore.g:6154:1: rule__XEnum__Group__3 : rule__XEnum__Group__3__Impl rule__XEnum__Group__4 ;
    public final void rule__XEnum__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:6158:1: ( rule__XEnum__Group__3__Impl rule__XEnum__Group__4 )
            // InternalXcore.g:6159:2: rule__XEnum__Group__3__Impl rule__XEnum__Group__4
            {
            pushFollow(FollowSets000.FOLLOW_28);
            rule__XEnum__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XEnum__Group__4();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XEnum__Group__3"


    // $ANTLR start "rule__XEnum__Group__3__Impl"
    // InternalXcore.g:6166:1: rule__XEnum__Group__3__Impl : ( '{' ) ;
    public final void rule__XEnum__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:6170:1: ( ( '{' ) )
            // InternalXcore.g:6171:1: ( '{' )
            {
            // InternalXcore.g:6171:1: ( '{' )
            // InternalXcore.g:6172:1: '{'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXEnumAccess().getLeftCurlyBracketKeyword_3()); 
            }
            match(input,89,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXEnumAccess().getLeftCurlyBracketKeyword_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XEnum__Group__3__Impl"


    // $ANTLR start "rule__XEnum__Group__4"
    // InternalXcore.g:6185:1: rule__XEnum__Group__4 : rule__XEnum__Group__4__Impl rule__XEnum__Group__5 ;
    public final void rule__XEnum__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:6189:1: ( rule__XEnum__Group__4__Impl rule__XEnum__Group__5 )
            // InternalXcore.g:6190:2: rule__XEnum__Group__4__Impl rule__XEnum__Group__5
            {
            pushFollow(FollowSets000.FOLLOW_28);
            rule__XEnum__Group__4__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XEnum__Group__5();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XEnum__Group__4"


    // $ANTLR start "rule__XEnum__Group__4__Impl"
    // InternalXcore.g:6197:1: rule__XEnum__Group__4__Impl : ( ( rule__XEnum__Group_4__0 )? ) ;
    public final void rule__XEnum__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:6201:1: ( ( ( rule__XEnum__Group_4__0 )? ) )
            // InternalXcore.g:6202:1: ( ( rule__XEnum__Group_4__0 )? )
            {
            // InternalXcore.g:6202:1: ( ( rule__XEnum__Group_4__0 )? )
            // InternalXcore.g:6203:1: ( rule__XEnum__Group_4__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXEnumAccess().getGroup_4()); 
            }
            // InternalXcore.g:6204:1: ( rule__XEnum__Group_4__0 )?
            int alt65=2;
            int LA65_0 = input.LA(1);

            if ( (LA65_0==RULE_ID||LA65_0==84) ) {
                alt65=1;
            }
            switch (alt65) {
                case 1 :
                    // InternalXcore.g:6204:2: rule__XEnum__Group_4__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XEnum__Group_4__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXEnumAccess().getGroup_4()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XEnum__Group__4__Impl"


    // $ANTLR start "rule__XEnum__Group__5"
    // InternalXcore.g:6214:1: rule__XEnum__Group__5 : rule__XEnum__Group__5__Impl ;
    public final void rule__XEnum__Group__5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:6218:1: ( rule__XEnum__Group__5__Impl )
            // InternalXcore.g:6219:2: rule__XEnum__Group__5__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XEnum__Group__5__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XEnum__Group__5"


    // $ANTLR start "rule__XEnum__Group__5__Impl"
    // InternalXcore.g:6225:1: rule__XEnum__Group__5__Impl : ( '}' ) ;
    public final void rule__XEnum__Group__5__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:6229:1: ( ( '}' ) )
            // InternalXcore.g:6230:1: ( '}' )
            {
            // InternalXcore.g:6230:1: ( '}' )
            // InternalXcore.g:6231:1: '}'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXEnumAccess().getRightCurlyBracketKeyword_5()); 
            }
            match(input,90,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXEnumAccess().getRightCurlyBracketKeyword_5()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XEnum__Group__5__Impl"


    // $ANTLR start "rule__XEnum__Group_4__0"
    // InternalXcore.g:6256:1: rule__XEnum__Group_4__0 : rule__XEnum__Group_4__0__Impl rule__XEnum__Group_4__1 ;
    public final void rule__XEnum__Group_4__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:6260:1: ( rule__XEnum__Group_4__0__Impl rule__XEnum__Group_4__1 )
            // InternalXcore.g:6261:2: rule__XEnum__Group_4__0__Impl rule__XEnum__Group_4__1
            {
            pushFollow(FollowSets000.FOLLOW_29);
            rule__XEnum__Group_4__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XEnum__Group_4__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XEnum__Group_4__0"


    // $ANTLR start "rule__XEnum__Group_4__0__Impl"
    // InternalXcore.g:6268:1: rule__XEnum__Group_4__0__Impl : ( ( rule__XEnum__LiteralsAssignment_4_0 ) ) ;
    public final void rule__XEnum__Group_4__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:6272:1: ( ( ( rule__XEnum__LiteralsAssignment_4_0 ) ) )
            // InternalXcore.g:6273:1: ( ( rule__XEnum__LiteralsAssignment_4_0 ) )
            {
            // InternalXcore.g:6273:1: ( ( rule__XEnum__LiteralsAssignment_4_0 ) )
            // InternalXcore.g:6274:1: ( rule__XEnum__LiteralsAssignment_4_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXEnumAccess().getLiteralsAssignment_4_0()); 
            }
            // InternalXcore.g:6275:1: ( rule__XEnum__LiteralsAssignment_4_0 )
            // InternalXcore.g:6275:2: rule__XEnum__LiteralsAssignment_4_0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XEnum__LiteralsAssignment_4_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXEnumAccess().getLiteralsAssignment_4_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XEnum__Group_4__0__Impl"


    // $ANTLR start "rule__XEnum__Group_4__1"
    // InternalXcore.g:6285:1: rule__XEnum__Group_4__1 : rule__XEnum__Group_4__1__Impl ;
    public final void rule__XEnum__Group_4__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:6289:1: ( rule__XEnum__Group_4__1__Impl )
            // InternalXcore.g:6290:2: rule__XEnum__Group_4__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XEnum__Group_4__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XEnum__Group_4__1"


    // $ANTLR start "rule__XEnum__Group_4__1__Impl"
    // InternalXcore.g:6296:1: rule__XEnum__Group_4__1__Impl : ( ( rule__XEnum__Group_4_1__0 )* ) ;
    public final void rule__XEnum__Group_4__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:6300:1: ( ( ( rule__XEnum__Group_4_1__0 )* ) )
            // InternalXcore.g:6301:1: ( ( rule__XEnum__Group_4_1__0 )* )
            {
            // InternalXcore.g:6301:1: ( ( rule__XEnum__Group_4_1__0 )* )
            // InternalXcore.g:6302:1: ( rule__XEnum__Group_4_1__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXEnumAccess().getGroup_4_1()); 
            }
            // InternalXcore.g:6303:1: ( rule__XEnum__Group_4_1__0 )*
            loop66:
            do {
                int alt66=2;
                int LA66_0 = input.LA(1);

                if ( (LA66_0==RULE_ID||LA66_0==84||LA66_0==87) ) {
                    alt66=1;
                }


                switch (alt66) {
            	case 1 :
            	    // InternalXcore.g:6303:2: rule__XEnum__Group_4_1__0
            	    {
            	    pushFollow(FollowSets000.FOLLOW_30);
            	    rule__XEnum__Group_4_1__0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop66;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXEnumAccess().getGroup_4_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XEnum__Group_4__1__Impl"


    // $ANTLR start "rule__XEnum__Group_4_1__0"
    // InternalXcore.g:6317:1: rule__XEnum__Group_4_1__0 : rule__XEnum__Group_4_1__0__Impl rule__XEnum__Group_4_1__1 ;
    public final void rule__XEnum__Group_4_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:6321:1: ( rule__XEnum__Group_4_1__0__Impl rule__XEnum__Group_4_1__1 )
            // InternalXcore.g:6322:2: rule__XEnum__Group_4_1__0__Impl rule__XEnum__Group_4_1__1
            {
            pushFollow(FollowSets000.FOLLOW_29);
            rule__XEnum__Group_4_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XEnum__Group_4_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XEnum__Group_4_1__0"


    // $ANTLR start "rule__XEnum__Group_4_1__0__Impl"
    // InternalXcore.g:6329:1: rule__XEnum__Group_4_1__0__Impl : ( ( ',' )? ) ;
    public final void rule__XEnum__Group_4_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:6333:1: ( ( ( ',' )? ) )
            // InternalXcore.g:6334:1: ( ( ',' )? )
            {
            // InternalXcore.g:6334:1: ( ( ',' )? )
            // InternalXcore.g:6335:1: ( ',' )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXEnumAccess().getCommaKeyword_4_1_0()); 
            }
            // InternalXcore.g:6336:1: ( ',' )?
            int alt67=2;
            int LA67_0 = input.LA(1);

            if ( (LA67_0==87) ) {
                alt67=1;
            }
            switch (alt67) {
                case 1 :
                    // InternalXcore.g:6337:2: ','
                    {
                    match(input,87,FollowSets000.FOLLOW_2); if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXEnumAccess().getCommaKeyword_4_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XEnum__Group_4_1__0__Impl"


    // $ANTLR start "rule__XEnum__Group_4_1__1"
    // InternalXcore.g:6348:1: rule__XEnum__Group_4_1__1 : rule__XEnum__Group_4_1__1__Impl ;
    public final void rule__XEnum__Group_4_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:6352:1: ( rule__XEnum__Group_4_1__1__Impl )
            // InternalXcore.g:6353:2: rule__XEnum__Group_4_1__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XEnum__Group_4_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XEnum__Group_4_1__1"


    // $ANTLR start "rule__XEnum__Group_4_1__1__Impl"
    // InternalXcore.g:6359:1: rule__XEnum__Group_4_1__1__Impl : ( ( rule__XEnum__LiteralsAssignment_4_1_1 ) ) ;
    public final void rule__XEnum__Group_4_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:6363:1: ( ( ( rule__XEnum__LiteralsAssignment_4_1_1 ) ) )
            // InternalXcore.g:6364:1: ( ( rule__XEnum__LiteralsAssignment_4_1_1 ) )
            {
            // InternalXcore.g:6364:1: ( ( rule__XEnum__LiteralsAssignment_4_1_1 ) )
            // InternalXcore.g:6365:1: ( rule__XEnum__LiteralsAssignment_4_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXEnumAccess().getLiteralsAssignment_4_1_1()); 
            }
            // InternalXcore.g:6366:1: ( rule__XEnum__LiteralsAssignment_4_1_1 )
            // InternalXcore.g:6366:2: rule__XEnum__LiteralsAssignment_4_1_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XEnum__LiteralsAssignment_4_1_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXEnumAccess().getLiteralsAssignment_4_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XEnum__Group_4_1__1__Impl"


    // $ANTLR start "rule__XEnumLiteral__Group__0"
    // InternalXcore.g:6380:1: rule__XEnumLiteral__Group__0 : rule__XEnumLiteral__Group__0__Impl rule__XEnumLiteral__Group__1 ;
    public final void rule__XEnumLiteral__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:6384:1: ( rule__XEnumLiteral__Group__0__Impl rule__XEnumLiteral__Group__1 )
            // InternalXcore.g:6385:2: rule__XEnumLiteral__Group__0__Impl rule__XEnumLiteral__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_24);
            rule__XEnumLiteral__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XEnumLiteral__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XEnumLiteral__Group__0"


    // $ANTLR start "rule__XEnumLiteral__Group__0__Impl"
    // InternalXcore.g:6392:1: rule__XEnumLiteral__Group__0__Impl : ( ( rule__XEnumLiteral__AnnotationsAssignment_0 )* ) ;
    public final void rule__XEnumLiteral__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:6396:1: ( ( ( rule__XEnumLiteral__AnnotationsAssignment_0 )* ) )
            // InternalXcore.g:6397:1: ( ( rule__XEnumLiteral__AnnotationsAssignment_0 )* )
            {
            // InternalXcore.g:6397:1: ( ( rule__XEnumLiteral__AnnotationsAssignment_0 )* )
            // InternalXcore.g:6398:1: ( rule__XEnumLiteral__AnnotationsAssignment_0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXEnumLiteralAccess().getAnnotationsAssignment_0()); 
            }
            // InternalXcore.g:6399:1: ( rule__XEnumLiteral__AnnotationsAssignment_0 )*
            loop68:
            do {
                int alt68=2;
                int LA68_0 = input.LA(1);

                if ( (LA68_0==84) ) {
                    alt68=1;
                }


                switch (alt68) {
            	case 1 :
            	    // InternalXcore.g:6399:2: rule__XEnumLiteral__AnnotationsAssignment_0
            	    {
            	    pushFollow(FollowSets000.FOLLOW_5);
            	    rule__XEnumLiteral__AnnotationsAssignment_0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop68;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXEnumLiteralAccess().getAnnotationsAssignment_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XEnumLiteral__Group__0__Impl"


    // $ANTLR start "rule__XEnumLiteral__Group__1"
    // InternalXcore.g:6409:1: rule__XEnumLiteral__Group__1 : rule__XEnumLiteral__Group__1__Impl rule__XEnumLiteral__Group__2 ;
    public final void rule__XEnumLiteral__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:6413:1: ( rule__XEnumLiteral__Group__1__Impl rule__XEnumLiteral__Group__2 )
            // InternalXcore.g:6414:2: rule__XEnumLiteral__Group__1__Impl rule__XEnumLiteral__Group__2
            {
            pushFollow(FollowSets000.FOLLOW_31);
            rule__XEnumLiteral__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XEnumLiteral__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XEnumLiteral__Group__1"


    // $ANTLR start "rule__XEnumLiteral__Group__1__Impl"
    // InternalXcore.g:6421:1: rule__XEnumLiteral__Group__1__Impl : ( ( rule__XEnumLiteral__NameAssignment_1 ) ) ;
    public final void rule__XEnumLiteral__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:6425:1: ( ( ( rule__XEnumLiteral__NameAssignment_1 ) ) )
            // InternalXcore.g:6426:1: ( ( rule__XEnumLiteral__NameAssignment_1 ) )
            {
            // InternalXcore.g:6426:1: ( ( rule__XEnumLiteral__NameAssignment_1 ) )
            // InternalXcore.g:6427:1: ( rule__XEnumLiteral__NameAssignment_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXEnumLiteralAccess().getNameAssignment_1()); 
            }
            // InternalXcore.g:6428:1: ( rule__XEnumLiteral__NameAssignment_1 )
            // InternalXcore.g:6428:2: rule__XEnumLiteral__NameAssignment_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XEnumLiteral__NameAssignment_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXEnumLiteralAccess().getNameAssignment_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XEnumLiteral__Group__1__Impl"


    // $ANTLR start "rule__XEnumLiteral__Group__2"
    // InternalXcore.g:6438:1: rule__XEnumLiteral__Group__2 : rule__XEnumLiteral__Group__2__Impl rule__XEnumLiteral__Group__3 ;
    public final void rule__XEnumLiteral__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:6442:1: ( rule__XEnumLiteral__Group__2__Impl rule__XEnumLiteral__Group__3 )
            // InternalXcore.g:6443:2: rule__XEnumLiteral__Group__2__Impl rule__XEnumLiteral__Group__3
            {
            pushFollow(FollowSets000.FOLLOW_31);
            rule__XEnumLiteral__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XEnumLiteral__Group__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XEnumLiteral__Group__2"


    // $ANTLR start "rule__XEnumLiteral__Group__2__Impl"
    // InternalXcore.g:6450:1: rule__XEnumLiteral__Group__2__Impl : ( ( rule__XEnumLiteral__Group_2__0 )? ) ;
    public final void rule__XEnumLiteral__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:6454:1: ( ( ( rule__XEnumLiteral__Group_2__0 )? ) )
            // InternalXcore.g:6455:1: ( ( rule__XEnumLiteral__Group_2__0 )? )
            {
            // InternalXcore.g:6455:1: ( ( rule__XEnumLiteral__Group_2__0 )? )
            // InternalXcore.g:6456:1: ( rule__XEnumLiteral__Group_2__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXEnumLiteralAccess().getGroup_2()); 
            }
            // InternalXcore.g:6457:1: ( rule__XEnumLiteral__Group_2__0 )?
            int alt69=2;
            int LA69_0 = input.LA(1);

            if ( (LA69_0==26) ) {
                alt69=1;
            }
            switch (alt69) {
                case 1 :
                    // InternalXcore.g:6457:2: rule__XEnumLiteral__Group_2__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XEnumLiteral__Group_2__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXEnumLiteralAccess().getGroup_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XEnumLiteral__Group__2__Impl"


    // $ANTLR start "rule__XEnumLiteral__Group__3"
    // InternalXcore.g:6467:1: rule__XEnumLiteral__Group__3 : rule__XEnumLiteral__Group__3__Impl ;
    public final void rule__XEnumLiteral__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:6471:1: ( rule__XEnumLiteral__Group__3__Impl )
            // InternalXcore.g:6472:2: rule__XEnumLiteral__Group__3__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XEnumLiteral__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XEnumLiteral__Group__3"


    // $ANTLR start "rule__XEnumLiteral__Group__3__Impl"
    // InternalXcore.g:6478:1: rule__XEnumLiteral__Group__3__Impl : ( ( rule__XEnumLiteral__Group_3__0 )? ) ;
    public final void rule__XEnumLiteral__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:6482:1: ( ( ( rule__XEnumLiteral__Group_3__0 )? ) )
            // InternalXcore.g:6483:1: ( ( rule__XEnumLiteral__Group_3__0 )? )
            {
            // InternalXcore.g:6483:1: ( ( rule__XEnumLiteral__Group_3__0 )? )
            // InternalXcore.g:6484:1: ( rule__XEnumLiteral__Group_3__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXEnumLiteralAccess().getGroup_3()); 
            }
            // InternalXcore.g:6485:1: ( rule__XEnumLiteral__Group_3__0 )?
            int alt70=2;
            int LA70_0 = input.LA(1);

            if ( (LA70_0==13) ) {
                alt70=1;
            }
            switch (alt70) {
                case 1 :
                    // InternalXcore.g:6485:2: rule__XEnumLiteral__Group_3__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XEnumLiteral__Group_3__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXEnumLiteralAccess().getGroup_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XEnumLiteral__Group__3__Impl"


    // $ANTLR start "rule__XEnumLiteral__Group_2__0"
    // InternalXcore.g:6503:1: rule__XEnumLiteral__Group_2__0 : rule__XEnumLiteral__Group_2__0__Impl rule__XEnumLiteral__Group_2__1 ;
    public final void rule__XEnumLiteral__Group_2__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:6507:1: ( rule__XEnumLiteral__Group_2__0__Impl rule__XEnumLiteral__Group_2__1 )
            // InternalXcore.g:6508:2: rule__XEnumLiteral__Group_2__0__Impl rule__XEnumLiteral__Group_2__1
            {
            pushFollow(FollowSets000.FOLLOW_16);
            rule__XEnumLiteral__Group_2__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XEnumLiteral__Group_2__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XEnumLiteral__Group_2__0"


    // $ANTLR start "rule__XEnumLiteral__Group_2__0__Impl"
    // InternalXcore.g:6515:1: rule__XEnumLiteral__Group_2__0__Impl : ( 'as' ) ;
    public final void rule__XEnumLiteral__Group_2__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:6519:1: ( ( 'as' ) )
            // InternalXcore.g:6520:1: ( 'as' )
            {
            // InternalXcore.g:6520:1: ( 'as' )
            // InternalXcore.g:6521:1: 'as'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXEnumLiteralAccess().getAsKeyword_2_0()); 
            }
            match(input,26,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXEnumLiteralAccess().getAsKeyword_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XEnumLiteral__Group_2__0__Impl"


    // $ANTLR start "rule__XEnumLiteral__Group_2__1"
    // InternalXcore.g:6534:1: rule__XEnumLiteral__Group_2__1 : rule__XEnumLiteral__Group_2__1__Impl ;
    public final void rule__XEnumLiteral__Group_2__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:6538:1: ( rule__XEnumLiteral__Group_2__1__Impl )
            // InternalXcore.g:6539:2: rule__XEnumLiteral__Group_2__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XEnumLiteral__Group_2__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XEnumLiteral__Group_2__1"


    // $ANTLR start "rule__XEnumLiteral__Group_2__1__Impl"
    // InternalXcore.g:6545:1: rule__XEnumLiteral__Group_2__1__Impl : ( ( rule__XEnumLiteral__LiteralAssignment_2_1 ) ) ;
    public final void rule__XEnumLiteral__Group_2__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:6549:1: ( ( ( rule__XEnumLiteral__LiteralAssignment_2_1 ) ) )
            // InternalXcore.g:6550:1: ( ( rule__XEnumLiteral__LiteralAssignment_2_1 ) )
            {
            // InternalXcore.g:6550:1: ( ( rule__XEnumLiteral__LiteralAssignment_2_1 ) )
            // InternalXcore.g:6551:1: ( rule__XEnumLiteral__LiteralAssignment_2_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXEnumLiteralAccess().getLiteralAssignment_2_1()); 
            }
            // InternalXcore.g:6552:1: ( rule__XEnumLiteral__LiteralAssignment_2_1 )
            // InternalXcore.g:6552:2: rule__XEnumLiteral__LiteralAssignment_2_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XEnumLiteral__LiteralAssignment_2_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXEnumLiteralAccess().getLiteralAssignment_2_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XEnumLiteral__Group_2__1__Impl"


    // $ANTLR start "rule__XEnumLiteral__Group_3__0"
    // InternalXcore.g:6566:1: rule__XEnumLiteral__Group_3__0 : rule__XEnumLiteral__Group_3__0__Impl rule__XEnumLiteral__Group_3__1 ;
    public final void rule__XEnumLiteral__Group_3__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:6570:1: ( rule__XEnumLiteral__Group_3__0__Impl rule__XEnumLiteral__Group_3__1 )
            // InternalXcore.g:6571:2: rule__XEnumLiteral__Group_3__0__Impl rule__XEnumLiteral__Group_3__1
            {
            pushFollow(FollowSets000.FOLLOW_32);
            rule__XEnumLiteral__Group_3__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XEnumLiteral__Group_3__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XEnumLiteral__Group_3__0"


    // $ANTLR start "rule__XEnumLiteral__Group_3__0__Impl"
    // InternalXcore.g:6578:1: rule__XEnumLiteral__Group_3__0__Impl : ( '=' ) ;
    public final void rule__XEnumLiteral__Group_3__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:6582:1: ( ( '=' ) )
            // InternalXcore.g:6583:1: ( '=' )
            {
            // InternalXcore.g:6583:1: ( '=' )
            // InternalXcore.g:6584:1: '='
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXEnumLiteralAccess().getEqualsSignKeyword_3_0()); 
            }
            match(input,13,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXEnumLiteralAccess().getEqualsSignKeyword_3_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XEnumLiteral__Group_3__0__Impl"


    // $ANTLR start "rule__XEnumLiteral__Group_3__1"
    // InternalXcore.g:6597:1: rule__XEnumLiteral__Group_3__1 : rule__XEnumLiteral__Group_3__1__Impl ;
    public final void rule__XEnumLiteral__Group_3__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:6601:1: ( rule__XEnumLiteral__Group_3__1__Impl )
            // InternalXcore.g:6602:2: rule__XEnumLiteral__Group_3__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XEnumLiteral__Group_3__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XEnumLiteral__Group_3__1"


    // $ANTLR start "rule__XEnumLiteral__Group_3__1__Impl"
    // InternalXcore.g:6608:1: rule__XEnumLiteral__Group_3__1__Impl : ( ( rule__XEnumLiteral__ValueAssignment_3_1 ) ) ;
    public final void rule__XEnumLiteral__Group_3__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:6612:1: ( ( ( rule__XEnumLiteral__ValueAssignment_3_1 ) ) )
            // InternalXcore.g:6613:1: ( ( rule__XEnumLiteral__ValueAssignment_3_1 ) )
            {
            // InternalXcore.g:6613:1: ( ( rule__XEnumLiteral__ValueAssignment_3_1 ) )
            // InternalXcore.g:6614:1: ( rule__XEnumLiteral__ValueAssignment_3_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXEnumLiteralAccess().getValueAssignment_3_1()); 
            }
            // InternalXcore.g:6615:1: ( rule__XEnumLiteral__ValueAssignment_3_1 )
            // InternalXcore.g:6615:2: rule__XEnumLiteral__ValueAssignment_3_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XEnumLiteral__ValueAssignment_3_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXEnumLiteralAccess().getValueAssignment_3_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XEnumLiteral__Group_3__1__Impl"


    // $ANTLR start "rule__SignedInt__Group__0"
    // InternalXcore.g:6629:1: rule__SignedInt__Group__0 : rule__SignedInt__Group__0__Impl rule__SignedInt__Group__1 ;
    public final void rule__SignedInt__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:6633:1: ( rule__SignedInt__Group__0__Impl rule__SignedInt__Group__1 )
            // InternalXcore.g:6634:2: rule__SignedInt__Group__0__Impl rule__SignedInt__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_32);
            rule__SignedInt__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__SignedInt__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__SignedInt__Group__0"


    // $ANTLR start "rule__SignedInt__Group__0__Impl"
    // InternalXcore.g:6641:1: rule__SignedInt__Group__0__Impl : ( ( '-' )? ) ;
    public final void rule__SignedInt__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:6645:1: ( ( ( '-' )? ) )
            // InternalXcore.g:6646:1: ( ( '-' )? )
            {
            // InternalXcore.g:6646:1: ( ( '-' )? )
            // InternalXcore.g:6647:1: ( '-' )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getSignedIntAccess().getHyphenMinusKeyword_0()); 
            }
            // InternalXcore.g:6648:1: ( '-' )?
            int alt71=2;
            int LA71_0 = input.LA(1);

            if ( (LA71_0==73) ) {
                alt71=1;
            }
            switch (alt71) {
                case 1 :
                    // InternalXcore.g:6649:2: '-'
                    {
                    match(input,73,FollowSets000.FOLLOW_2); if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getSignedIntAccess().getHyphenMinusKeyword_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__SignedInt__Group__0__Impl"


    // $ANTLR start "rule__SignedInt__Group__1"
    // InternalXcore.g:6660:1: rule__SignedInt__Group__1 : rule__SignedInt__Group__1__Impl ;
    public final void rule__SignedInt__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:6664:1: ( rule__SignedInt__Group__1__Impl )
            // InternalXcore.g:6665:2: rule__SignedInt__Group__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__SignedInt__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__SignedInt__Group__1"


    // $ANTLR start "rule__SignedInt__Group__1__Impl"
    // InternalXcore.g:6671:1: rule__SignedInt__Group__1__Impl : ( RULE_INT ) ;
    public final void rule__SignedInt__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:6675:1: ( ( RULE_INT ) )
            // InternalXcore.g:6676:1: ( RULE_INT )
            {
            // InternalXcore.g:6676:1: ( RULE_INT )
            // InternalXcore.g:6677:1: RULE_INT
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getSignedIntAccess().getINTTerminalRuleCall_1()); 
            }
            match(input,RULE_INT,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getSignedIntAccess().getINTTerminalRuleCall_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__SignedInt__Group__1__Impl"


    // $ANTLR start "rule__XClass__Group__0"
    // InternalXcore.g:6692:1: rule__XClass__Group__0 : rule__XClass__Group__0__Impl rule__XClass__Group__1 ;
    public final void rule__XClass__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:6696:1: ( rule__XClass__Group__0__Impl rule__XClass__Group__1 )
            // InternalXcore.g:6697:2: rule__XClass__Group__0__Impl rule__XClass__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_33);
            rule__XClass__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XClass__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XClass__Group__0"


    // $ANTLR start "rule__XClass__Group__0__Impl"
    // InternalXcore.g:6704:1: rule__XClass__Group__0__Impl : ( () ) ;
    public final void rule__XClass__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:6708:1: ( ( () ) )
            // InternalXcore.g:6709:1: ( () )
            {
            // InternalXcore.g:6709:1: ( () )
            // InternalXcore.g:6710:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClassAccess().getXClassAction_0()); 
            }
            // InternalXcore.g:6711:1: ()
            // InternalXcore.g:6713:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXClassAccess().getXClassAction_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XClass__Group__0__Impl"


    // $ANTLR start "rule__XClass__Group__1"
    // InternalXcore.g:6723:1: rule__XClass__Group__1 : rule__XClass__Group__1__Impl rule__XClass__Group__2 ;
    public final void rule__XClass__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:6727:1: ( rule__XClass__Group__1__Impl rule__XClass__Group__2 )
            // InternalXcore.g:6728:2: rule__XClass__Group__1__Impl rule__XClass__Group__2
            {
            pushFollow(FollowSets000.FOLLOW_33);
            rule__XClass__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XClass__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XClass__Group__1"


    // $ANTLR start "rule__XClass__Group__1__Impl"
    // InternalXcore.g:6735:1: rule__XClass__Group__1__Impl : ( ( rule__XClass__AnnotationsAssignment_1 )* ) ;
    public final void rule__XClass__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:6739:1: ( ( ( rule__XClass__AnnotationsAssignment_1 )* ) )
            // InternalXcore.g:6740:1: ( ( rule__XClass__AnnotationsAssignment_1 )* )
            {
            // InternalXcore.g:6740:1: ( ( rule__XClass__AnnotationsAssignment_1 )* )
            // InternalXcore.g:6741:1: ( rule__XClass__AnnotationsAssignment_1 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClassAccess().getAnnotationsAssignment_1()); 
            }
            // InternalXcore.g:6742:1: ( rule__XClass__AnnotationsAssignment_1 )*
            loop72:
            do {
                int alt72=2;
                int LA72_0 = input.LA(1);

                if ( (LA72_0==84) ) {
                    alt72=1;
                }


                switch (alt72) {
            	case 1 :
            	    // InternalXcore.g:6742:2: rule__XClass__AnnotationsAssignment_1
            	    {
            	    pushFollow(FollowSets000.FOLLOW_5);
            	    rule__XClass__AnnotationsAssignment_1();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop72;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXClassAccess().getAnnotationsAssignment_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XClass__Group__1__Impl"


    // $ANTLR start "rule__XClass__Group__2"
    // InternalXcore.g:6752:1: rule__XClass__Group__2 : rule__XClass__Group__2__Impl rule__XClass__Group__3 ;
    public final void rule__XClass__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:6756:1: ( rule__XClass__Group__2__Impl rule__XClass__Group__3 )
            // InternalXcore.g:6757:2: rule__XClass__Group__2__Impl rule__XClass__Group__3
            {
            pushFollow(FollowSets000.FOLLOW_20);
            rule__XClass__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XClass__Group__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XClass__Group__2"


    // $ANTLR start "rule__XClass__Group__2__Impl"
    // InternalXcore.g:6764:1: rule__XClass__Group__2__Impl : ( ( rule__XClass__Alternatives_2 ) ) ;
    public final void rule__XClass__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:6768:1: ( ( ( rule__XClass__Alternatives_2 ) ) )
            // InternalXcore.g:6769:1: ( ( rule__XClass__Alternatives_2 ) )
            {
            // InternalXcore.g:6769:1: ( ( rule__XClass__Alternatives_2 ) )
            // InternalXcore.g:6770:1: ( rule__XClass__Alternatives_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClassAccess().getAlternatives_2()); 
            }
            // InternalXcore.g:6771:1: ( rule__XClass__Alternatives_2 )
            // InternalXcore.g:6771:2: rule__XClass__Alternatives_2
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XClass__Alternatives_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXClassAccess().getAlternatives_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XClass__Group__2__Impl"


    // $ANTLR start "rule__XClass__Group__3"
    // InternalXcore.g:6781:1: rule__XClass__Group__3 : rule__XClass__Group__3__Impl rule__XClass__Group__4 ;
    public final void rule__XClass__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:6785:1: ( rule__XClass__Group__3__Impl rule__XClass__Group__4 )
            // InternalXcore.g:6786:2: rule__XClass__Group__3__Impl rule__XClass__Group__4
            {
            pushFollow(FollowSets000.FOLLOW_34);
            rule__XClass__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XClass__Group__4();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XClass__Group__3"


    // $ANTLR start "rule__XClass__Group__3__Impl"
    // InternalXcore.g:6793:1: rule__XClass__Group__3__Impl : ( ( rule__XClass__NameAssignment_3 ) ) ;
    public final void rule__XClass__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:6797:1: ( ( ( rule__XClass__NameAssignment_3 ) ) )
            // InternalXcore.g:6798:1: ( ( rule__XClass__NameAssignment_3 ) )
            {
            // InternalXcore.g:6798:1: ( ( rule__XClass__NameAssignment_3 ) )
            // InternalXcore.g:6799:1: ( rule__XClass__NameAssignment_3 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClassAccess().getNameAssignment_3()); 
            }
            // InternalXcore.g:6800:1: ( rule__XClass__NameAssignment_3 )
            // InternalXcore.g:6800:2: rule__XClass__NameAssignment_3
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XClass__NameAssignment_3();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXClassAccess().getNameAssignment_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XClass__Group__3__Impl"


    // $ANTLR start "rule__XClass__Group__4"
    // InternalXcore.g:6810:1: rule__XClass__Group__4 : rule__XClass__Group__4__Impl rule__XClass__Group__5 ;
    public final void rule__XClass__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:6814:1: ( rule__XClass__Group__4__Impl rule__XClass__Group__5 )
            // InternalXcore.g:6815:2: rule__XClass__Group__4__Impl rule__XClass__Group__5
            {
            pushFollow(FollowSets000.FOLLOW_34);
            rule__XClass__Group__4__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XClass__Group__5();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XClass__Group__4"


    // $ANTLR start "rule__XClass__Group__4__Impl"
    // InternalXcore.g:6822:1: rule__XClass__Group__4__Impl : ( ( rule__XClass__Group_4__0 )? ) ;
    public final void rule__XClass__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:6826:1: ( ( ( rule__XClass__Group_4__0 )? ) )
            // InternalXcore.g:6827:1: ( ( rule__XClass__Group_4__0 )? )
            {
            // InternalXcore.g:6827:1: ( ( rule__XClass__Group_4__0 )? )
            // InternalXcore.g:6828:1: ( rule__XClass__Group_4__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClassAccess().getGroup_4()); 
            }
            // InternalXcore.g:6829:1: ( rule__XClass__Group_4__0 )?
            int alt73=2;
            int LA73_0 = input.LA(1);

            if ( (LA73_0==66) ) {
                alt73=1;
            }
            switch (alt73) {
                case 1 :
                    // InternalXcore.g:6829:2: rule__XClass__Group_4__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XClass__Group_4__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXClassAccess().getGroup_4()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XClass__Group__4__Impl"


    // $ANTLR start "rule__XClass__Group__5"
    // InternalXcore.g:6839:1: rule__XClass__Group__5 : rule__XClass__Group__5__Impl rule__XClass__Group__6 ;
    public final void rule__XClass__Group__5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:6843:1: ( rule__XClass__Group__5__Impl rule__XClass__Group__6 )
            // InternalXcore.g:6844:2: rule__XClass__Group__5__Impl rule__XClass__Group__6
            {
            pushFollow(FollowSets000.FOLLOW_34);
            rule__XClass__Group__5__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XClass__Group__6();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XClass__Group__5"


    // $ANTLR start "rule__XClass__Group__5__Impl"
    // InternalXcore.g:6851:1: rule__XClass__Group__5__Impl : ( ( rule__XClass__Group_5__0 )? ) ;
    public final void rule__XClass__Group__5__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:6855:1: ( ( ( rule__XClass__Group_5__0 )? ) )
            // InternalXcore.g:6856:1: ( ( rule__XClass__Group_5__0 )? )
            {
            // InternalXcore.g:6856:1: ( ( rule__XClass__Group_5__0 )? )
            // InternalXcore.g:6857:1: ( rule__XClass__Group_5__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClassAccess().getGroup_5()); 
            }
            // InternalXcore.g:6858:1: ( rule__XClass__Group_5__0 )?
            int alt74=2;
            int LA74_0 = input.LA(1);

            if ( (LA74_0==34) ) {
                alt74=1;
            }
            switch (alt74) {
                case 1 :
                    // InternalXcore.g:6858:2: rule__XClass__Group_5__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XClass__Group_5__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXClassAccess().getGroup_5()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XClass__Group__5__Impl"


    // $ANTLR start "rule__XClass__Group__6"
    // InternalXcore.g:6868:1: rule__XClass__Group__6 : rule__XClass__Group__6__Impl rule__XClass__Group__7 ;
    public final void rule__XClass__Group__6() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:6872:1: ( rule__XClass__Group__6__Impl rule__XClass__Group__7 )
            // InternalXcore.g:6873:2: rule__XClass__Group__6__Impl rule__XClass__Group__7
            {
            pushFollow(FollowSets000.FOLLOW_34);
            rule__XClass__Group__6__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XClass__Group__7();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XClass__Group__6"


    // $ANTLR start "rule__XClass__Group__6__Impl"
    // InternalXcore.g:6880:1: rule__XClass__Group__6__Impl : ( ( rule__XClass__Group_6__0 )? ) ;
    public final void rule__XClass__Group__6__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:6884:1: ( ( ( rule__XClass__Group_6__0 )? ) )
            // InternalXcore.g:6885:1: ( ( rule__XClass__Group_6__0 )? )
            {
            // InternalXcore.g:6885:1: ( ( rule__XClass__Group_6__0 )? )
            // InternalXcore.g:6886:1: ( rule__XClass__Group_6__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClassAccess().getGroup_6()); 
            }
            // InternalXcore.g:6887:1: ( rule__XClass__Group_6__0 )?
            int alt75=2;
            int LA75_0 = input.LA(1);

            if ( (LA75_0==54) ) {
                alt75=1;
            }
            switch (alt75) {
                case 1 :
                    // InternalXcore.g:6887:2: rule__XClass__Group_6__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XClass__Group_6__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXClassAccess().getGroup_6()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XClass__Group__6__Impl"


    // $ANTLR start "rule__XClass__Group__7"
    // InternalXcore.g:6897:1: rule__XClass__Group__7 : rule__XClass__Group__7__Impl rule__XClass__Group__8 ;
    public final void rule__XClass__Group__7() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:6901:1: ( rule__XClass__Group__7__Impl rule__XClass__Group__8 )
            // InternalXcore.g:6902:2: rule__XClass__Group__7__Impl rule__XClass__Group__8
            {
            pushFollow(FollowSets000.FOLLOW_35);
            rule__XClass__Group__7__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XClass__Group__8();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XClass__Group__7"


    // $ANTLR start "rule__XClass__Group__7__Impl"
    // InternalXcore.g:6909:1: rule__XClass__Group__7__Impl : ( '{' ) ;
    public final void rule__XClass__Group__7__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:6913:1: ( ( '{' ) )
            // InternalXcore.g:6914:1: ( '{' )
            {
            // InternalXcore.g:6914:1: ( '{' )
            // InternalXcore.g:6915:1: '{'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClassAccess().getLeftCurlyBracketKeyword_7()); 
            }
            match(input,89,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXClassAccess().getLeftCurlyBracketKeyword_7()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XClass__Group__7__Impl"


    // $ANTLR start "rule__XClass__Group__8"
    // InternalXcore.g:6928:1: rule__XClass__Group__8 : rule__XClass__Group__8__Impl rule__XClass__Group__9 ;
    public final void rule__XClass__Group__8() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:6932:1: ( rule__XClass__Group__8__Impl rule__XClass__Group__9 )
            // InternalXcore.g:6933:2: rule__XClass__Group__8__Impl rule__XClass__Group__9
            {
            pushFollow(FollowSets000.FOLLOW_35);
            rule__XClass__Group__8__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XClass__Group__9();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XClass__Group__8"


    // $ANTLR start "rule__XClass__Group__8__Impl"
    // InternalXcore.g:6940:1: rule__XClass__Group__8__Impl : ( ( rule__XClass__MembersAssignment_8 )* ) ;
    public final void rule__XClass__Group__8__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:6944:1: ( ( ( rule__XClass__MembersAssignment_8 )* ) )
            // InternalXcore.g:6945:1: ( ( rule__XClass__MembersAssignment_8 )* )
            {
            // InternalXcore.g:6945:1: ( ( rule__XClass__MembersAssignment_8 )* )
            // InternalXcore.g:6946:1: ( rule__XClass__MembersAssignment_8 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClassAccess().getMembersAssignment_8()); 
            }
            // InternalXcore.g:6947:1: ( rule__XClass__MembersAssignment_8 )*
            loop76:
            do {
                int alt76=2;
                int LA76_0 = input.LA(1);

                if ( (LA76_0==RULE_ID||(LA76_0>=20 && LA76_0<=23)||(LA76_0>=28 && LA76_0<=29)||LA76_0==32||LA76_0==36||(LA76_0>=40 && LA76_0<=41)||(LA76_0>=44 && LA76_0<=46)||(LA76_0>=49 && LA76_0<=53)||LA76_0==84) ) {
                    alt76=1;
                }


                switch (alt76) {
            	case 1 :
            	    // InternalXcore.g:6947:2: rule__XClass__MembersAssignment_8
            	    {
            	    pushFollow(FollowSets000.FOLLOW_36);
            	    rule__XClass__MembersAssignment_8();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop76;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXClassAccess().getMembersAssignment_8()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XClass__Group__8__Impl"


    // $ANTLR start "rule__XClass__Group__9"
    // InternalXcore.g:6957:1: rule__XClass__Group__9 : rule__XClass__Group__9__Impl ;
    public final void rule__XClass__Group__9() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:6961:1: ( rule__XClass__Group__9__Impl )
            // InternalXcore.g:6962:2: rule__XClass__Group__9__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XClass__Group__9__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XClass__Group__9"


    // $ANTLR start "rule__XClass__Group__9__Impl"
    // InternalXcore.g:6968:1: rule__XClass__Group__9__Impl : ( '}' ) ;
    public final void rule__XClass__Group__9__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:6972:1: ( ( '}' ) )
            // InternalXcore.g:6973:1: ( '}' )
            {
            // InternalXcore.g:6973:1: ( '}' )
            // InternalXcore.g:6974:1: '}'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClassAccess().getRightCurlyBracketKeyword_9()); 
            }
            match(input,90,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXClassAccess().getRightCurlyBracketKeyword_9()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XClass__Group__9__Impl"


    // $ANTLR start "rule__XClass__Group_2_0__0"
    // InternalXcore.g:7007:1: rule__XClass__Group_2_0__0 : rule__XClass__Group_2_0__0__Impl rule__XClass__Group_2_0__1 ;
    public final void rule__XClass__Group_2_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:7011:1: ( rule__XClass__Group_2_0__0__Impl rule__XClass__Group_2_0__1 )
            // InternalXcore.g:7012:2: rule__XClass__Group_2_0__0__Impl rule__XClass__Group_2_0__1
            {
            pushFollow(FollowSets000.FOLLOW_37);
            rule__XClass__Group_2_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XClass__Group_2_0__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XClass__Group_2_0__0"


    // $ANTLR start "rule__XClass__Group_2_0__0__Impl"
    // InternalXcore.g:7019:1: rule__XClass__Group_2_0__0__Impl : ( ( rule__XClass__AbstractAssignment_2_0_0 )? ) ;
    public final void rule__XClass__Group_2_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:7023:1: ( ( ( rule__XClass__AbstractAssignment_2_0_0 )? ) )
            // InternalXcore.g:7024:1: ( ( rule__XClass__AbstractAssignment_2_0_0 )? )
            {
            // InternalXcore.g:7024:1: ( ( rule__XClass__AbstractAssignment_2_0_0 )? )
            // InternalXcore.g:7025:1: ( rule__XClass__AbstractAssignment_2_0_0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClassAccess().getAbstractAssignment_2_0_0()); 
            }
            // InternalXcore.g:7026:1: ( rule__XClass__AbstractAssignment_2_0_0 )?
            int alt77=2;
            int LA77_0 = input.LA(1);

            if ( (LA77_0==24) ) {
                alt77=1;
            }
            switch (alt77) {
                case 1 :
                    // InternalXcore.g:7026:2: rule__XClass__AbstractAssignment_2_0_0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XClass__AbstractAssignment_2_0_0();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXClassAccess().getAbstractAssignment_2_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XClass__Group_2_0__0__Impl"


    // $ANTLR start "rule__XClass__Group_2_0__1"
    // InternalXcore.g:7036:1: rule__XClass__Group_2_0__1 : rule__XClass__Group_2_0__1__Impl ;
    public final void rule__XClass__Group_2_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:7040:1: ( rule__XClass__Group_2_0__1__Impl )
            // InternalXcore.g:7041:2: rule__XClass__Group_2_0__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XClass__Group_2_0__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XClass__Group_2_0__1"


    // $ANTLR start "rule__XClass__Group_2_0__1__Impl"
    // InternalXcore.g:7047:1: rule__XClass__Group_2_0__1__Impl : ( 'class' ) ;
    public final void rule__XClass__Group_2_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:7051:1: ( ( 'class' ) )
            // InternalXcore.g:7052:1: ( 'class' )
            {
            // InternalXcore.g:7052:1: ( 'class' )
            // InternalXcore.g:7053:1: 'class'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClassAccess().getClassKeyword_2_0_1()); 
            }
            match(input,27,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXClassAccess().getClassKeyword_2_0_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XClass__Group_2_0__1__Impl"


    // $ANTLR start "rule__XClass__Group_4__0"
    // InternalXcore.g:7070:1: rule__XClass__Group_4__0 : rule__XClass__Group_4__0__Impl rule__XClass__Group_4__1 ;
    public final void rule__XClass__Group_4__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:7074:1: ( rule__XClass__Group_4__0__Impl rule__XClass__Group_4__1 )
            // InternalXcore.g:7075:2: rule__XClass__Group_4__0__Impl rule__XClass__Group_4__1
            {
            pushFollow(FollowSets000.FOLLOW_24);
            rule__XClass__Group_4__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XClass__Group_4__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XClass__Group_4__0"


    // $ANTLR start "rule__XClass__Group_4__0__Impl"
    // InternalXcore.g:7082:1: rule__XClass__Group_4__0__Impl : ( '<' ) ;
    public final void rule__XClass__Group_4__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:7086:1: ( ( '<' ) )
            // InternalXcore.g:7087:1: ( '<' )
            {
            // InternalXcore.g:7087:1: ( '<' )
            // InternalXcore.g:7088:1: '<'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClassAccess().getLessThanSignKeyword_4_0()); 
            }
            match(input,66,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXClassAccess().getLessThanSignKeyword_4_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XClass__Group_4__0__Impl"


    // $ANTLR start "rule__XClass__Group_4__1"
    // InternalXcore.g:7101:1: rule__XClass__Group_4__1 : rule__XClass__Group_4__1__Impl rule__XClass__Group_4__2 ;
    public final void rule__XClass__Group_4__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:7105:1: ( rule__XClass__Group_4__1__Impl rule__XClass__Group_4__2 )
            // InternalXcore.g:7106:2: rule__XClass__Group_4__1__Impl rule__XClass__Group_4__2
            {
            pushFollow(FollowSets000.FOLLOW_25);
            rule__XClass__Group_4__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XClass__Group_4__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XClass__Group_4__1"


    // $ANTLR start "rule__XClass__Group_4__1__Impl"
    // InternalXcore.g:7113:1: rule__XClass__Group_4__1__Impl : ( ( rule__XClass__TypeParametersAssignment_4_1 ) ) ;
    public final void rule__XClass__Group_4__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:7117:1: ( ( ( rule__XClass__TypeParametersAssignment_4_1 ) ) )
            // InternalXcore.g:7118:1: ( ( rule__XClass__TypeParametersAssignment_4_1 ) )
            {
            // InternalXcore.g:7118:1: ( ( rule__XClass__TypeParametersAssignment_4_1 ) )
            // InternalXcore.g:7119:1: ( rule__XClass__TypeParametersAssignment_4_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClassAccess().getTypeParametersAssignment_4_1()); 
            }
            // InternalXcore.g:7120:1: ( rule__XClass__TypeParametersAssignment_4_1 )
            // InternalXcore.g:7120:2: rule__XClass__TypeParametersAssignment_4_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XClass__TypeParametersAssignment_4_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXClassAccess().getTypeParametersAssignment_4_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XClass__Group_4__1__Impl"


    // $ANTLR start "rule__XClass__Group_4__2"
    // InternalXcore.g:7130:1: rule__XClass__Group_4__2 : rule__XClass__Group_4__2__Impl rule__XClass__Group_4__3 ;
    public final void rule__XClass__Group_4__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:7134:1: ( rule__XClass__Group_4__2__Impl rule__XClass__Group_4__3 )
            // InternalXcore.g:7135:2: rule__XClass__Group_4__2__Impl rule__XClass__Group_4__3
            {
            pushFollow(FollowSets000.FOLLOW_25);
            rule__XClass__Group_4__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XClass__Group_4__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XClass__Group_4__2"


    // $ANTLR start "rule__XClass__Group_4__2__Impl"
    // InternalXcore.g:7142:1: rule__XClass__Group_4__2__Impl : ( ( rule__XClass__Group_4_2__0 )* ) ;
    public final void rule__XClass__Group_4__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:7146:1: ( ( ( rule__XClass__Group_4_2__0 )* ) )
            // InternalXcore.g:7147:1: ( ( rule__XClass__Group_4_2__0 )* )
            {
            // InternalXcore.g:7147:1: ( ( rule__XClass__Group_4_2__0 )* )
            // InternalXcore.g:7148:1: ( rule__XClass__Group_4_2__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClassAccess().getGroup_4_2()); 
            }
            // InternalXcore.g:7149:1: ( rule__XClass__Group_4_2__0 )*
            loop78:
            do {
                int alt78=2;
                int LA78_0 = input.LA(1);

                if ( (LA78_0==87) ) {
                    alt78=1;
                }


                switch (alt78) {
            	case 1 :
            	    // InternalXcore.g:7149:2: rule__XClass__Group_4_2__0
            	    {
            	    pushFollow(FollowSets000.FOLLOW_14);
            	    rule__XClass__Group_4_2__0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop78;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXClassAccess().getGroup_4_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XClass__Group_4__2__Impl"


    // $ANTLR start "rule__XClass__Group_4__3"
    // InternalXcore.g:7159:1: rule__XClass__Group_4__3 : rule__XClass__Group_4__3__Impl ;
    public final void rule__XClass__Group_4__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:7163:1: ( rule__XClass__Group_4__3__Impl )
            // InternalXcore.g:7164:2: rule__XClass__Group_4__3__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XClass__Group_4__3__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XClass__Group_4__3"


    // $ANTLR start "rule__XClass__Group_4__3__Impl"
    // InternalXcore.g:7170:1: rule__XClass__Group_4__3__Impl : ( '>' ) ;
    public final void rule__XClass__Group_4__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:7174:1: ( ( '>' ) )
            // InternalXcore.g:7175:1: ( '>' )
            {
            // InternalXcore.g:7175:1: ( '>' )
            // InternalXcore.g:7176:1: '>'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClassAccess().getGreaterThanSignKeyword_4_3()); 
            }
            match(input,65,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXClassAccess().getGreaterThanSignKeyword_4_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XClass__Group_4__3__Impl"


    // $ANTLR start "rule__XClass__Group_4_2__0"
    // InternalXcore.g:7197:1: rule__XClass__Group_4_2__0 : rule__XClass__Group_4_2__0__Impl rule__XClass__Group_4_2__1 ;
    public final void rule__XClass__Group_4_2__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:7201:1: ( rule__XClass__Group_4_2__0__Impl rule__XClass__Group_4_2__1 )
            // InternalXcore.g:7202:2: rule__XClass__Group_4_2__0__Impl rule__XClass__Group_4_2__1
            {
            pushFollow(FollowSets000.FOLLOW_24);
            rule__XClass__Group_4_2__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XClass__Group_4_2__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XClass__Group_4_2__0"


    // $ANTLR start "rule__XClass__Group_4_2__0__Impl"
    // InternalXcore.g:7209:1: rule__XClass__Group_4_2__0__Impl : ( ',' ) ;
    public final void rule__XClass__Group_4_2__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:7213:1: ( ( ',' ) )
            // InternalXcore.g:7214:1: ( ',' )
            {
            // InternalXcore.g:7214:1: ( ',' )
            // InternalXcore.g:7215:1: ','
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClassAccess().getCommaKeyword_4_2_0()); 
            }
            match(input,87,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXClassAccess().getCommaKeyword_4_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XClass__Group_4_2__0__Impl"


    // $ANTLR start "rule__XClass__Group_4_2__1"
    // InternalXcore.g:7228:1: rule__XClass__Group_4_2__1 : rule__XClass__Group_4_2__1__Impl ;
    public final void rule__XClass__Group_4_2__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:7232:1: ( rule__XClass__Group_4_2__1__Impl )
            // InternalXcore.g:7233:2: rule__XClass__Group_4_2__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XClass__Group_4_2__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XClass__Group_4_2__1"


    // $ANTLR start "rule__XClass__Group_4_2__1__Impl"
    // InternalXcore.g:7239:1: rule__XClass__Group_4_2__1__Impl : ( ( rule__XClass__TypeParametersAssignment_4_2_1 ) ) ;
    public final void rule__XClass__Group_4_2__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:7243:1: ( ( ( rule__XClass__TypeParametersAssignment_4_2_1 ) ) )
            // InternalXcore.g:7244:1: ( ( rule__XClass__TypeParametersAssignment_4_2_1 ) )
            {
            // InternalXcore.g:7244:1: ( ( rule__XClass__TypeParametersAssignment_4_2_1 ) )
            // InternalXcore.g:7245:1: ( rule__XClass__TypeParametersAssignment_4_2_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClassAccess().getTypeParametersAssignment_4_2_1()); 
            }
            // InternalXcore.g:7246:1: ( rule__XClass__TypeParametersAssignment_4_2_1 )
            // InternalXcore.g:7246:2: rule__XClass__TypeParametersAssignment_4_2_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XClass__TypeParametersAssignment_4_2_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXClassAccess().getTypeParametersAssignment_4_2_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XClass__Group_4_2__1__Impl"


    // $ANTLR start "rule__XClass__Group_5__0"
    // InternalXcore.g:7260:1: rule__XClass__Group_5__0 : rule__XClass__Group_5__0__Impl rule__XClass__Group_5__1 ;
    public final void rule__XClass__Group_5__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:7264:1: ( rule__XClass__Group_5__0__Impl rule__XClass__Group_5__1 )
            // InternalXcore.g:7265:2: rule__XClass__Group_5__0__Impl rule__XClass__Group_5__1
            {
            pushFollow(FollowSets000.FOLLOW_11);
            rule__XClass__Group_5__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XClass__Group_5__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XClass__Group_5__0"


    // $ANTLR start "rule__XClass__Group_5__0__Impl"
    // InternalXcore.g:7272:1: rule__XClass__Group_5__0__Impl : ( 'extends' ) ;
    public final void rule__XClass__Group_5__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:7276:1: ( ( 'extends' ) )
            // InternalXcore.g:7277:1: ( 'extends' )
            {
            // InternalXcore.g:7277:1: ( 'extends' )
            // InternalXcore.g:7278:1: 'extends'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClassAccess().getExtendsKeyword_5_0()); 
            }
            match(input,34,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXClassAccess().getExtendsKeyword_5_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XClass__Group_5__0__Impl"


    // $ANTLR start "rule__XClass__Group_5__1"
    // InternalXcore.g:7291:1: rule__XClass__Group_5__1 : rule__XClass__Group_5__1__Impl rule__XClass__Group_5__2 ;
    public final void rule__XClass__Group_5__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:7295:1: ( rule__XClass__Group_5__1__Impl rule__XClass__Group_5__2 )
            // InternalXcore.g:7296:2: rule__XClass__Group_5__1__Impl rule__XClass__Group_5__2
            {
            pushFollow(FollowSets000.FOLLOW_38);
            rule__XClass__Group_5__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XClass__Group_5__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XClass__Group_5__1"


    // $ANTLR start "rule__XClass__Group_5__1__Impl"
    // InternalXcore.g:7303:1: rule__XClass__Group_5__1__Impl : ( ( rule__XClass__SuperTypesAssignment_5_1 ) ) ;
    public final void rule__XClass__Group_5__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:7307:1: ( ( ( rule__XClass__SuperTypesAssignment_5_1 ) ) )
            // InternalXcore.g:7308:1: ( ( rule__XClass__SuperTypesAssignment_5_1 ) )
            {
            // InternalXcore.g:7308:1: ( ( rule__XClass__SuperTypesAssignment_5_1 ) )
            // InternalXcore.g:7309:1: ( rule__XClass__SuperTypesAssignment_5_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClassAccess().getSuperTypesAssignment_5_1()); 
            }
            // InternalXcore.g:7310:1: ( rule__XClass__SuperTypesAssignment_5_1 )
            // InternalXcore.g:7310:2: rule__XClass__SuperTypesAssignment_5_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XClass__SuperTypesAssignment_5_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXClassAccess().getSuperTypesAssignment_5_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XClass__Group_5__1__Impl"


    // $ANTLR start "rule__XClass__Group_5__2"
    // InternalXcore.g:7320:1: rule__XClass__Group_5__2 : rule__XClass__Group_5__2__Impl ;
    public final void rule__XClass__Group_5__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:7324:1: ( rule__XClass__Group_5__2__Impl )
            // InternalXcore.g:7325:2: rule__XClass__Group_5__2__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XClass__Group_5__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XClass__Group_5__2"


    // $ANTLR start "rule__XClass__Group_5__2__Impl"
    // InternalXcore.g:7331:1: rule__XClass__Group_5__2__Impl : ( ( rule__XClass__Group_5_2__0 )* ) ;
    public final void rule__XClass__Group_5__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:7335:1: ( ( ( rule__XClass__Group_5_2__0 )* ) )
            // InternalXcore.g:7336:1: ( ( rule__XClass__Group_5_2__0 )* )
            {
            // InternalXcore.g:7336:1: ( ( rule__XClass__Group_5_2__0 )* )
            // InternalXcore.g:7337:1: ( rule__XClass__Group_5_2__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClassAccess().getGroup_5_2()); 
            }
            // InternalXcore.g:7338:1: ( rule__XClass__Group_5_2__0 )*
            loop79:
            do {
                int alt79=2;
                int LA79_0 = input.LA(1);

                if ( (LA79_0==87) ) {
                    alt79=1;
                }


                switch (alt79) {
            	case 1 :
            	    // InternalXcore.g:7338:2: rule__XClass__Group_5_2__0
            	    {
            	    pushFollow(FollowSets000.FOLLOW_14);
            	    rule__XClass__Group_5_2__0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop79;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXClassAccess().getGroup_5_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XClass__Group_5__2__Impl"


    // $ANTLR start "rule__XClass__Group_5_2__0"
    // InternalXcore.g:7354:1: rule__XClass__Group_5_2__0 : rule__XClass__Group_5_2__0__Impl rule__XClass__Group_5_2__1 ;
    public final void rule__XClass__Group_5_2__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:7358:1: ( rule__XClass__Group_5_2__0__Impl rule__XClass__Group_5_2__1 )
            // InternalXcore.g:7359:2: rule__XClass__Group_5_2__0__Impl rule__XClass__Group_5_2__1
            {
            pushFollow(FollowSets000.FOLLOW_11);
            rule__XClass__Group_5_2__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XClass__Group_5_2__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XClass__Group_5_2__0"


    // $ANTLR start "rule__XClass__Group_5_2__0__Impl"
    // InternalXcore.g:7366:1: rule__XClass__Group_5_2__0__Impl : ( ',' ) ;
    public final void rule__XClass__Group_5_2__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:7370:1: ( ( ',' ) )
            // InternalXcore.g:7371:1: ( ',' )
            {
            // InternalXcore.g:7371:1: ( ',' )
            // InternalXcore.g:7372:1: ','
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClassAccess().getCommaKeyword_5_2_0()); 
            }
            match(input,87,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXClassAccess().getCommaKeyword_5_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XClass__Group_5_2__0__Impl"


    // $ANTLR start "rule__XClass__Group_5_2__1"
    // InternalXcore.g:7385:1: rule__XClass__Group_5_2__1 : rule__XClass__Group_5_2__1__Impl ;
    public final void rule__XClass__Group_5_2__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:7389:1: ( rule__XClass__Group_5_2__1__Impl )
            // InternalXcore.g:7390:2: rule__XClass__Group_5_2__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XClass__Group_5_2__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XClass__Group_5_2__1"


    // $ANTLR start "rule__XClass__Group_5_2__1__Impl"
    // InternalXcore.g:7396:1: rule__XClass__Group_5_2__1__Impl : ( ( rule__XClass__SuperTypesAssignment_5_2_1 ) ) ;
    public final void rule__XClass__Group_5_2__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:7400:1: ( ( ( rule__XClass__SuperTypesAssignment_5_2_1 ) ) )
            // InternalXcore.g:7401:1: ( ( rule__XClass__SuperTypesAssignment_5_2_1 ) )
            {
            // InternalXcore.g:7401:1: ( ( rule__XClass__SuperTypesAssignment_5_2_1 ) )
            // InternalXcore.g:7402:1: ( rule__XClass__SuperTypesAssignment_5_2_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClassAccess().getSuperTypesAssignment_5_2_1()); 
            }
            // InternalXcore.g:7403:1: ( rule__XClass__SuperTypesAssignment_5_2_1 )
            // InternalXcore.g:7403:2: rule__XClass__SuperTypesAssignment_5_2_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XClass__SuperTypesAssignment_5_2_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXClassAccess().getSuperTypesAssignment_5_2_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XClass__Group_5_2__1__Impl"


    // $ANTLR start "rule__XClass__Group_6__0"
    // InternalXcore.g:7417:1: rule__XClass__Group_6__0 : rule__XClass__Group_6__0__Impl rule__XClass__Group_6__1 ;
    public final void rule__XClass__Group_6__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:7421:1: ( rule__XClass__Group_6__0__Impl rule__XClass__Group_6__1 )
            // InternalXcore.g:7422:2: rule__XClass__Group_6__0__Impl rule__XClass__Group_6__1
            {
            pushFollow(FollowSets000.FOLLOW_22);
            rule__XClass__Group_6__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XClass__Group_6__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XClass__Group_6__0"


    // $ANTLR start "rule__XClass__Group_6__0__Impl"
    // InternalXcore.g:7429:1: rule__XClass__Group_6__0__Impl : ( 'wraps' ) ;
    public final void rule__XClass__Group_6__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:7433:1: ( ( 'wraps' ) )
            // InternalXcore.g:7434:1: ( 'wraps' )
            {
            // InternalXcore.g:7434:1: ( 'wraps' )
            // InternalXcore.g:7435:1: 'wraps'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClassAccess().getWrapsKeyword_6_0()); 
            }
            match(input,54,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXClassAccess().getWrapsKeyword_6_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XClass__Group_6__0__Impl"


    // $ANTLR start "rule__XClass__Group_6__1"
    // InternalXcore.g:7448:1: rule__XClass__Group_6__1 : rule__XClass__Group_6__1__Impl ;
    public final void rule__XClass__Group_6__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:7452:1: ( rule__XClass__Group_6__1__Impl )
            // InternalXcore.g:7453:2: rule__XClass__Group_6__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XClass__Group_6__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XClass__Group_6__1"


    // $ANTLR start "rule__XClass__Group_6__1__Impl"
    // InternalXcore.g:7459:1: rule__XClass__Group_6__1__Impl : ( ( rule__XClass__InstanceTypeAssignment_6_1 ) ) ;
    public final void rule__XClass__Group_6__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:7463:1: ( ( ( rule__XClass__InstanceTypeAssignment_6_1 ) ) )
            // InternalXcore.g:7464:1: ( ( rule__XClass__InstanceTypeAssignment_6_1 ) )
            {
            // InternalXcore.g:7464:1: ( ( rule__XClass__InstanceTypeAssignment_6_1 ) )
            // InternalXcore.g:7465:1: ( rule__XClass__InstanceTypeAssignment_6_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClassAccess().getInstanceTypeAssignment_6_1()); 
            }
            // InternalXcore.g:7466:1: ( rule__XClass__InstanceTypeAssignment_6_1 )
            // InternalXcore.g:7466:2: rule__XClass__InstanceTypeAssignment_6_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XClass__InstanceTypeAssignment_6_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXClassAccess().getInstanceTypeAssignment_6_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XClass__Group_6__1__Impl"


    // $ANTLR start "rule__XAttribute__Group__0"
    // InternalXcore.g:7480:1: rule__XAttribute__Group__0 : rule__XAttribute__Group__0__Impl rule__XAttribute__Group__1 ;
    public final void rule__XAttribute__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:7484:1: ( rule__XAttribute__Group__0__Impl rule__XAttribute__Group__1 )
            // InternalXcore.g:7485:2: rule__XAttribute__Group__0__Impl rule__XAttribute__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_39);
            rule__XAttribute__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XAttribute__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAttribute__Group__0"


    // $ANTLR start "rule__XAttribute__Group__0__Impl"
    // InternalXcore.g:7492:1: rule__XAttribute__Group__0__Impl : ( () ) ;
    public final void rule__XAttribute__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:7496:1: ( ( () ) )
            // InternalXcore.g:7497:1: ( () )
            {
            // InternalXcore.g:7497:1: ( () )
            // InternalXcore.g:7498:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAttributeAccess().getXAttributeAction_0()); 
            }
            // InternalXcore.g:7499:1: ()
            // InternalXcore.g:7501:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAttributeAccess().getXAttributeAction_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAttribute__Group__0__Impl"


    // $ANTLR start "rule__XAttribute__Group__1"
    // InternalXcore.g:7511:1: rule__XAttribute__Group__1 : rule__XAttribute__Group__1__Impl rule__XAttribute__Group__2 ;
    public final void rule__XAttribute__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:7515:1: ( rule__XAttribute__Group__1__Impl rule__XAttribute__Group__2 )
            // InternalXcore.g:7516:2: rule__XAttribute__Group__1__Impl rule__XAttribute__Group__2
            {
            pushFollow(FollowSets000.FOLLOW_39);
            rule__XAttribute__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XAttribute__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAttribute__Group__1"


    // $ANTLR start "rule__XAttribute__Group__1__Impl"
    // InternalXcore.g:7523:1: rule__XAttribute__Group__1__Impl : ( ( rule__XAttribute__AnnotationsAssignment_1 )* ) ;
    public final void rule__XAttribute__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:7527:1: ( ( ( rule__XAttribute__AnnotationsAssignment_1 )* ) )
            // InternalXcore.g:7528:1: ( ( rule__XAttribute__AnnotationsAssignment_1 )* )
            {
            // InternalXcore.g:7528:1: ( ( rule__XAttribute__AnnotationsAssignment_1 )* )
            // InternalXcore.g:7529:1: ( rule__XAttribute__AnnotationsAssignment_1 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAttributeAccess().getAnnotationsAssignment_1()); 
            }
            // InternalXcore.g:7530:1: ( rule__XAttribute__AnnotationsAssignment_1 )*
            loop80:
            do {
                int alt80=2;
                int LA80_0 = input.LA(1);

                if ( (LA80_0==84) ) {
                    alt80=1;
                }


                switch (alt80) {
            	case 1 :
            	    // InternalXcore.g:7530:2: rule__XAttribute__AnnotationsAssignment_1
            	    {
            	    pushFollow(FollowSets000.FOLLOW_5);
            	    rule__XAttribute__AnnotationsAssignment_1();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop80;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAttributeAccess().getAnnotationsAssignment_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAttribute__Group__1__Impl"


    // $ANTLR start "rule__XAttribute__Group__2"
    // InternalXcore.g:7540:1: rule__XAttribute__Group__2 : rule__XAttribute__Group__2__Impl rule__XAttribute__Group__3 ;
    public final void rule__XAttribute__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:7544:1: ( rule__XAttribute__Group__2__Impl rule__XAttribute__Group__3 )
            // InternalXcore.g:7545:2: rule__XAttribute__Group__2__Impl rule__XAttribute__Group__3
            {
            pushFollow(FollowSets000.FOLLOW_11);
            rule__XAttribute__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XAttribute__Group__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAttribute__Group__2"


    // $ANTLR start "rule__XAttribute__Group__2__Impl"
    // InternalXcore.g:7552:1: rule__XAttribute__Group__2__Impl : ( ( rule__XAttribute__UnorderedGroup_2 ) ) ;
    public final void rule__XAttribute__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:7556:1: ( ( ( rule__XAttribute__UnorderedGroup_2 ) ) )
            // InternalXcore.g:7557:1: ( ( rule__XAttribute__UnorderedGroup_2 ) )
            {
            // InternalXcore.g:7557:1: ( ( rule__XAttribute__UnorderedGroup_2 ) )
            // InternalXcore.g:7558:1: ( rule__XAttribute__UnorderedGroup_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAttributeAccess().getUnorderedGroup_2()); 
            }
            // InternalXcore.g:7559:1: ( rule__XAttribute__UnorderedGroup_2 )
            // InternalXcore.g:7559:2: rule__XAttribute__UnorderedGroup_2
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XAttribute__UnorderedGroup_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAttributeAccess().getUnorderedGroup_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAttribute__Group__2__Impl"


    // $ANTLR start "rule__XAttribute__Group__3"
    // InternalXcore.g:7569:1: rule__XAttribute__Group__3 : rule__XAttribute__Group__3__Impl rule__XAttribute__Group__4 ;
    public final void rule__XAttribute__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:7573:1: ( rule__XAttribute__Group__3__Impl rule__XAttribute__Group__4 )
            // InternalXcore.g:7574:2: rule__XAttribute__Group__3__Impl rule__XAttribute__Group__4
            {
            pushFollow(FollowSets000.FOLLOW_40);
            rule__XAttribute__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XAttribute__Group__4();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAttribute__Group__3"


    // $ANTLR start "rule__XAttribute__Group__3__Impl"
    // InternalXcore.g:7581:1: rule__XAttribute__Group__3__Impl : ( ( rule__XAttribute__TypeAssignment_3 ) ) ;
    public final void rule__XAttribute__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:7585:1: ( ( ( rule__XAttribute__TypeAssignment_3 ) ) )
            // InternalXcore.g:7586:1: ( ( rule__XAttribute__TypeAssignment_3 ) )
            {
            // InternalXcore.g:7586:1: ( ( rule__XAttribute__TypeAssignment_3 ) )
            // InternalXcore.g:7587:1: ( rule__XAttribute__TypeAssignment_3 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAttributeAccess().getTypeAssignment_3()); 
            }
            // InternalXcore.g:7588:1: ( rule__XAttribute__TypeAssignment_3 )
            // InternalXcore.g:7588:2: rule__XAttribute__TypeAssignment_3
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XAttribute__TypeAssignment_3();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAttributeAccess().getTypeAssignment_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAttribute__Group__3__Impl"


    // $ANTLR start "rule__XAttribute__Group__4"
    // InternalXcore.g:7598:1: rule__XAttribute__Group__4 : rule__XAttribute__Group__4__Impl rule__XAttribute__Group__5 ;
    public final void rule__XAttribute__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:7602:1: ( rule__XAttribute__Group__4__Impl rule__XAttribute__Group__5 )
            // InternalXcore.g:7603:2: rule__XAttribute__Group__4__Impl rule__XAttribute__Group__5
            {
            pushFollow(FollowSets000.FOLLOW_40);
            rule__XAttribute__Group__4__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XAttribute__Group__5();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAttribute__Group__4"


    // $ANTLR start "rule__XAttribute__Group__4__Impl"
    // InternalXcore.g:7610:1: rule__XAttribute__Group__4__Impl : ( ( rule__XAttribute__MultiplicityAssignment_4 )? ) ;
    public final void rule__XAttribute__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:7614:1: ( ( ( rule__XAttribute__MultiplicityAssignment_4 )? ) )
            // InternalXcore.g:7615:1: ( ( rule__XAttribute__MultiplicityAssignment_4 )? )
            {
            // InternalXcore.g:7615:1: ( ( rule__XAttribute__MultiplicityAssignment_4 )? )
            // InternalXcore.g:7616:1: ( rule__XAttribute__MultiplicityAssignment_4 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAttributeAccess().getMultiplicityAssignment_4()); 
            }
            // InternalXcore.g:7617:1: ( rule__XAttribute__MultiplicityAssignment_4 )?
            int alt81=2;
            int LA81_0 = input.LA(1);

            if ( (LA81_0==92) ) {
                alt81=1;
            }
            switch (alt81) {
                case 1 :
                    // InternalXcore.g:7617:2: rule__XAttribute__MultiplicityAssignment_4
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XAttribute__MultiplicityAssignment_4();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAttributeAccess().getMultiplicityAssignment_4()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAttribute__Group__4__Impl"


    // $ANTLR start "rule__XAttribute__Group__5"
    // InternalXcore.g:7627:1: rule__XAttribute__Group__5 : rule__XAttribute__Group__5__Impl rule__XAttribute__Group__6 ;
    public final void rule__XAttribute__Group__5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:7631:1: ( rule__XAttribute__Group__5__Impl rule__XAttribute__Group__6 )
            // InternalXcore.g:7632:2: rule__XAttribute__Group__5__Impl rule__XAttribute__Group__6
            {
            pushFollow(FollowSets000.FOLLOW_41);
            rule__XAttribute__Group__5__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XAttribute__Group__6();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAttribute__Group__5"


    // $ANTLR start "rule__XAttribute__Group__5__Impl"
    // InternalXcore.g:7639:1: rule__XAttribute__Group__5__Impl : ( ( rule__XAttribute__NameAssignment_5 ) ) ;
    public final void rule__XAttribute__Group__5__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:7643:1: ( ( ( rule__XAttribute__NameAssignment_5 ) ) )
            // InternalXcore.g:7644:1: ( ( rule__XAttribute__NameAssignment_5 ) )
            {
            // InternalXcore.g:7644:1: ( ( rule__XAttribute__NameAssignment_5 ) )
            // InternalXcore.g:7645:1: ( rule__XAttribute__NameAssignment_5 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAttributeAccess().getNameAssignment_5()); 
            }
            // InternalXcore.g:7646:1: ( rule__XAttribute__NameAssignment_5 )
            // InternalXcore.g:7646:2: rule__XAttribute__NameAssignment_5
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XAttribute__NameAssignment_5();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAttributeAccess().getNameAssignment_5()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAttribute__Group__5__Impl"


    // $ANTLR start "rule__XAttribute__Group__6"
    // InternalXcore.g:7656:1: rule__XAttribute__Group__6 : rule__XAttribute__Group__6__Impl rule__XAttribute__Group__7 ;
    public final void rule__XAttribute__Group__6() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:7660:1: ( rule__XAttribute__Group__6__Impl rule__XAttribute__Group__7 )
            // InternalXcore.g:7661:2: rule__XAttribute__Group__6__Impl rule__XAttribute__Group__7
            {
            pushFollow(FollowSets000.FOLLOW_41);
            rule__XAttribute__Group__6__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XAttribute__Group__7();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAttribute__Group__6"


    // $ANTLR start "rule__XAttribute__Group__6__Impl"
    // InternalXcore.g:7668:1: rule__XAttribute__Group__6__Impl : ( ( rule__XAttribute__Group_6__0 )? ) ;
    public final void rule__XAttribute__Group__6__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:7672:1: ( ( ( rule__XAttribute__Group_6__0 )? ) )
            // InternalXcore.g:7673:1: ( ( rule__XAttribute__Group_6__0 )? )
            {
            // InternalXcore.g:7673:1: ( ( rule__XAttribute__Group_6__0 )? )
            // InternalXcore.g:7674:1: ( rule__XAttribute__Group_6__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAttributeAccess().getGroup_6()); 
            }
            // InternalXcore.g:7675:1: ( rule__XAttribute__Group_6__0 )?
            int alt82=2;
            int LA82_0 = input.LA(1);

            if ( (LA82_0==13) ) {
                alt82=1;
            }
            switch (alt82) {
                case 1 :
                    // InternalXcore.g:7675:2: rule__XAttribute__Group_6__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XAttribute__Group_6__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAttributeAccess().getGroup_6()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAttribute__Group__6__Impl"


    // $ANTLR start "rule__XAttribute__Group__7"
    // InternalXcore.g:7685:1: rule__XAttribute__Group__7 : rule__XAttribute__Group__7__Impl ;
    public final void rule__XAttribute__Group__7() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:7689:1: ( rule__XAttribute__Group__7__Impl )
            // InternalXcore.g:7690:2: rule__XAttribute__Group__7__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XAttribute__Group__7__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAttribute__Group__7"


    // $ANTLR start "rule__XAttribute__Group__7__Impl"
    // InternalXcore.g:7696:1: rule__XAttribute__Group__7__Impl : ( ( rule__XAttribute__UnorderedGroup_7 ) ) ;
    public final void rule__XAttribute__Group__7__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:7700:1: ( ( ( rule__XAttribute__UnorderedGroup_7 ) ) )
            // InternalXcore.g:7701:1: ( ( rule__XAttribute__UnorderedGroup_7 ) )
            {
            // InternalXcore.g:7701:1: ( ( rule__XAttribute__UnorderedGroup_7 ) )
            // InternalXcore.g:7702:1: ( rule__XAttribute__UnorderedGroup_7 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAttributeAccess().getUnorderedGroup_7()); 
            }
            // InternalXcore.g:7703:1: ( rule__XAttribute__UnorderedGroup_7 )
            // InternalXcore.g:7703:2: rule__XAttribute__UnorderedGroup_7
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XAttribute__UnorderedGroup_7();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAttributeAccess().getUnorderedGroup_7()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAttribute__Group__7__Impl"


    // $ANTLR start "rule__XAttribute__Group_6__0"
    // InternalXcore.g:7729:1: rule__XAttribute__Group_6__0 : rule__XAttribute__Group_6__0__Impl rule__XAttribute__Group_6__1 ;
    public final void rule__XAttribute__Group_6__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:7733:1: ( rule__XAttribute__Group_6__0__Impl rule__XAttribute__Group_6__1 )
            // InternalXcore.g:7734:2: rule__XAttribute__Group_6__0__Impl rule__XAttribute__Group_6__1
            {
            pushFollow(FollowSets000.FOLLOW_16);
            rule__XAttribute__Group_6__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XAttribute__Group_6__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAttribute__Group_6__0"


    // $ANTLR start "rule__XAttribute__Group_6__0__Impl"
    // InternalXcore.g:7741:1: rule__XAttribute__Group_6__0__Impl : ( '=' ) ;
    public final void rule__XAttribute__Group_6__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:7745:1: ( ( '=' ) )
            // InternalXcore.g:7746:1: ( '=' )
            {
            // InternalXcore.g:7746:1: ( '=' )
            // InternalXcore.g:7747:1: '='
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAttributeAccess().getEqualsSignKeyword_6_0()); 
            }
            match(input,13,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAttributeAccess().getEqualsSignKeyword_6_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAttribute__Group_6__0__Impl"


    // $ANTLR start "rule__XAttribute__Group_6__1"
    // InternalXcore.g:7760:1: rule__XAttribute__Group_6__1 : rule__XAttribute__Group_6__1__Impl ;
    public final void rule__XAttribute__Group_6__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:7764:1: ( rule__XAttribute__Group_6__1__Impl )
            // InternalXcore.g:7765:2: rule__XAttribute__Group_6__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XAttribute__Group_6__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAttribute__Group_6__1"


    // $ANTLR start "rule__XAttribute__Group_6__1__Impl"
    // InternalXcore.g:7771:1: rule__XAttribute__Group_6__1__Impl : ( ( rule__XAttribute__DefaultValueLiteralAssignment_6_1 ) ) ;
    public final void rule__XAttribute__Group_6__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:7775:1: ( ( ( rule__XAttribute__DefaultValueLiteralAssignment_6_1 ) ) )
            // InternalXcore.g:7776:1: ( ( rule__XAttribute__DefaultValueLiteralAssignment_6_1 ) )
            {
            // InternalXcore.g:7776:1: ( ( rule__XAttribute__DefaultValueLiteralAssignment_6_1 ) )
            // InternalXcore.g:7777:1: ( rule__XAttribute__DefaultValueLiteralAssignment_6_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAttributeAccess().getDefaultValueLiteralAssignment_6_1()); 
            }
            // InternalXcore.g:7778:1: ( rule__XAttribute__DefaultValueLiteralAssignment_6_1 )
            // InternalXcore.g:7778:2: rule__XAttribute__DefaultValueLiteralAssignment_6_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XAttribute__DefaultValueLiteralAssignment_6_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAttributeAccess().getDefaultValueLiteralAssignment_6_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAttribute__Group_6__1__Impl"


    // $ANTLR start "rule__XAttribute__Group_7_0__0"
    // InternalXcore.g:7792:1: rule__XAttribute__Group_7_0__0 : rule__XAttribute__Group_7_0__0__Impl rule__XAttribute__Group_7_0__1 ;
    public final void rule__XAttribute__Group_7_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:7796:1: ( rule__XAttribute__Group_7_0__0__Impl rule__XAttribute__Group_7_0__1 )
            // InternalXcore.g:7797:2: rule__XAttribute__Group_7_0__0__Impl rule__XAttribute__Group_7_0__1
            {
            pushFollow(FollowSets000.FOLLOW_26);
            rule__XAttribute__Group_7_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XAttribute__Group_7_0__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAttribute__Group_7_0__0"


    // $ANTLR start "rule__XAttribute__Group_7_0__0__Impl"
    // InternalXcore.g:7804:1: rule__XAttribute__Group_7_0__0__Impl : ( 'get' ) ;
    public final void rule__XAttribute__Group_7_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:7808:1: ( ( 'get' ) )
            // InternalXcore.g:7809:1: ( 'get' )
            {
            // InternalXcore.g:7809:1: ( 'get' )
            // InternalXcore.g:7810:1: 'get'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAttributeAccess().getGetKeyword_7_0_0()); 
            }
            match(input,20,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAttributeAccess().getGetKeyword_7_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAttribute__Group_7_0__0__Impl"


    // $ANTLR start "rule__XAttribute__Group_7_0__1"
    // InternalXcore.g:7823:1: rule__XAttribute__Group_7_0__1 : rule__XAttribute__Group_7_0__1__Impl ;
    public final void rule__XAttribute__Group_7_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:7827:1: ( rule__XAttribute__Group_7_0__1__Impl )
            // InternalXcore.g:7828:2: rule__XAttribute__Group_7_0__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XAttribute__Group_7_0__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAttribute__Group_7_0__1"


    // $ANTLR start "rule__XAttribute__Group_7_0__1__Impl"
    // InternalXcore.g:7834:1: rule__XAttribute__Group_7_0__1__Impl : ( ( rule__XAttribute__GetBodyAssignment_7_0_1 ) ) ;
    public final void rule__XAttribute__Group_7_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:7838:1: ( ( ( rule__XAttribute__GetBodyAssignment_7_0_1 ) ) )
            // InternalXcore.g:7839:1: ( ( rule__XAttribute__GetBodyAssignment_7_0_1 ) )
            {
            // InternalXcore.g:7839:1: ( ( rule__XAttribute__GetBodyAssignment_7_0_1 ) )
            // InternalXcore.g:7840:1: ( rule__XAttribute__GetBodyAssignment_7_0_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAttributeAccess().getGetBodyAssignment_7_0_1()); 
            }
            // InternalXcore.g:7841:1: ( rule__XAttribute__GetBodyAssignment_7_0_1 )
            // InternalXcore.g:7841:2: rule__XAttribute__GetBodyAssignment_7_0_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XAttribute__GetBodyAssignment_7_0_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAttributeAccess().getGetBodyAssignment_7_0_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAttribute__Group_7_0__1__Impl"


    // $ANTLR start "rule__XAttribute__Group_7_1__0"
    // InternalXcore.g:7855:1: rule__XAttribute__Group_7_1__0 : rule__XAttribute__Group_7_1__0__Impl rule__XAttribute__Group_7_1__1 ;
    public final void rule__XAttribute__Group_7_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:7859:1: ( rule__XAttribute__Group_7_1__0__Impl rule__XAttribute__Group_7_1__1 )
            // InternalXcore.g:7860:2: rule__XAttribute__Group_7_1__0__Impl rule__XAttribute__Group_7_1__1
            {
            pushFollow(FollowSets000.FOLLOW_26);
            rule__XAttribute__Group_7_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XAttribute__Group_7_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAttribute__Group_7_1__0"


    // $ANTLR start "rule__XAttribute__Group_7_1__0__Impl"
    // InternalXcore.g:7867:1: rule__XAttribute__Group_7_1__0__Impl : ( 'set' ) ;
    public final void rule__XAttribute__Group_7_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:7871:1: ( ( 'set' ) )
            // InternalXcore.g:7872:1: ( 'set' )
            {
            // InternalXcore.g:7872:1: ( 'set' )
            // InternalXcore.g:7873:1: 'set'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAttributeAccess().getSetKeyword_7_1_0()); 
            }
            match(input,22,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAttributeAccess().getSetKeyword_7_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAttribute__Group_7_1__0__Impl"


    // $ANTLR start "rule__XAttribute__Group_7_1__1"
    // InternalXcore.g:7886:1: rule__XAttribute__Group_7_1__1 : rule__XAttribute__Group_7_1__1__Impl ;
    public final void rule__XAttribute__Group_7_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:7890:1: ( rule__XAttribute__Group_7_1__1__Impl )
            // InternalXcore.g:7891:2: rule__XAttribute__Group_7_1__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XAttribute__Group_7_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAttribute__Group_7_1__1"


    // $ANTLR start "rule__XAttribute__Group_7_1__1__Impl"
    // InternalXcore.g:7897:1: rule__XAttribute__Group_7_1__1__Impl : ( ( rule__XAttribute__SetBodyAssignment_7_1_1 ) ) ;
    public final void rule__XAttribute__Group_7_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:7901:1: ( ( ( rule__XAttribute__SetBodyAssignment_7_1_1 ) ) )
            // InternalXcore.g:7902:1: ( ( rule__XAttribute__SetBodyAssignment_7_1_1 ) )
            {
            // InternalXcore.g:7902:1: ( ( rule__XAttribute__SetBodyAssignment_7_1_1 ) )
            // InternalXcore.g:7903:1: ( rule__XAttribute__SetBodyAssignment_7_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAttributeAccess().getSetBodyAssignment_7_1_1()); 
            }
            // InternalXcore.g:7904:1: ( rule__XAttribute__SetBodyAssignment_7_1_1 )
            // InternalXcore.g:7904:2: rule__XAttribute__SetBodyAssignment_7_1_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XAttribute__SetBodyAssignment_7_1_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAttributeAccess().getSetBodyAssignment_7_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAttribute__Group_7_1__1__Impl"


    // $ANTLR start "rule__XAttribute__Group_7_2__0"
    // InternalXcore.g:7918:1: rule__XAttribute__Group_7_2__0 : rule__XAttribute__Group_7_2__0__Impl rule__XAttribute__Group_7_2__1 ;
    public final void rule__XAttribute__Group_7_2__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:7922:1: ( rule__XAttribute__Group_7_2__0__Impl rule__XAttribute__Group_7_2__1 )
            // InternalXcore.g:7923:2: rule__XAttribute__Group_7_2__0__Impl rule__XAttribute__Group_7_2__1
            {
            pushFollow(FollowSets000.FOLLOW_26);
            rule__XAttribute__Group_7_2__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XAttribute__Group_7_2__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAttribute__Group_7_2__0"


    // $ANTLR start "rule__XAttribute__Group_7_2__0__Impl"
    // InternalXcore.g:7930:1: rule__XAttribute__Group_7_2__0__Impl : ( 'isSet' ) ;
    public final void rule__XAttribute__Group_7_2__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:7934:1: ( ( 'isSet' ) )
            // InternalXcore.g:7935:1: ( 'isSet' )
            {
            // InternalXcore.g:7935:1: ( 'isSet' )
            // InternalXcore.g:7936:1: 'isSet'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAttributeAccess().getIsSetKeyword_7_2_0()); 
            }
            match(input,21,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAttributeAccess().getIsSetKeyword_7_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAttribute__Group_7_2__0__Impl"


    // $ANTLR start "rule__XAttribute__Group_7_2__1"
    // InternalXcore.g:7949:1: rule__XAttribute__Group_7_2__1 : rule__XAttribute__Group_7_2__1__Impl ;
    public final void rule__XAttribute__Group_7_2__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:7953:1: ( rule__XAttribute__Group_7_2__1__Impl )
            // InternalXcore.g:7954:2: rule__XAttribute__Group_7_2__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XAttribute__Group_7_2__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAttribute__Group_7_2__1"


    // $ANTLR start "rule__XAttribute__Group_7_2__1__Impl"
    // InternalXcore.g:7960:1: rule__XAttribute__Group_7_2__1__Impl : ( ( rule__XAttribute__IsSetBodyAssignment_7_2_1 ) ) ;
    public final void rule__XAttribute__Group_7_2__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:7964:1: ( ( ( rule__XAttribute__IsSetBodyAssignment_7_2_1 ) ) )
            // InternalXcore.g:7965:1: ( ( rule__XAttribute__IsSetBodyAssignment_7_2_1 ) )
            {
            // InternalXcore.g:7965:1: ( ( rule__XAttribute__IsSetBodyAssignment_7_2_1 ) )
            // InternalXcore.g:7966:1: ( rule__XAttribute__IsSetBodyAssignment_7_2_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAttributeAccess().getIsSetBodyAssignment_7_2_1()); 
            }
            // InternalXcore.g:7967:1: ( rule__XAttribute__IsSetBodyAssignment_7_2_1 )
            // InternalXcore.g:7967:2: rule__XAttribute__IsSetBodyAssignment_7_2_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XAttribute__IsSetBodyAssignment_7_2_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAttributeAccess().getIsSetBodyAssignment_7_2_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAttribute__Group_7_2__1__Impl"


    // $ANTLR start "rule__XAttribute__Group_7_3__0"
    // InternalXcore.g:7981:1: rule__XAttribute__Group_7_3__0 : rule__XAttribute__Group_7_3__0__Impl rule__XAttribute__Group_7_3__1 ;
    public final void rule__XAttribute__Group_7_3__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:7985:1: ( rule__XAttribute__Group_7_3__0__Impl rule__XAttribute__Group_7_3__1 )
            // InternalXcore.g:7986:2: rule__XAttribute__Group_7_3__0__Impl rule__XAttribute__Group_7_3__1
            {
            pushFollow(FollowSets000.FOLLOW_26);
            rule__XAttribute__Group_7_3__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XAttribute__Group_7_3__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAttribute__Group_7_3__0"


    // $ANTLR start "rule__XAttribute__Group_7_3__0__Impl"
    // InternalXcore.g:7993:1: rule__XAttribute__Group_7_3__0__Impl : ( 'unset' ) ;
    public final void rule__XAttribute__Group_7_3__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:7997:1: ( ( 'unset' ) )
            // InternalXcore.g:7998:1: ( 'unset' )
            {
            // InternalXcore.g:7998:1: ( 'unset' )
            // InternalXcore.g:7999:1: 'unset'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAttributeAccess().getUnsetKeyword_7_3_0()); 
            }
            match(input,23,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAttributeAccess().getUnsetKeyword_7_3_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAttribute__Group_7_3__0__Impl"


    // $ANTLR start "rule__XAttribute__Group_7_3__1"
    // InternalXcore.g:8012:1: rule__XAttribute__Group_7_3__1 : rule__XAttribute__Group_7_3__1__Impl ;
    public final void rule__XAttribute__Group_7_3__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:8016:1: ( rule__XAttribute__Group_7_3__1__Impl )
            // InternalXcore.g:8017:2: rule__XAttribute__Group_7_3__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XAttribute__Group_7_3__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAttribute__Group_7_3__1"


    // $ANTLR start "rule__XAttribute__Group_7_3__1__Impl"
    // InternalXcore.g:8023:1: rule__XAttribute__Group_7_3__1__Impl : ( ( rule__XAttribute__UnsetBodyAssignment_7_3_1 ) ) ;
    public final void rule__XAttribute__Group_7_3__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:8027:1: ( ( ( rule__XAttribute__UnsetBodyAssignment_7_3_1 ) ) )
            // InternalXcore.g:8028:1: ( ( rule__XAttribute__UnsetBodyAssignment_7_3_1 ) )
            {
            // InternalXcore.g:8028:1: ( ( rule__XAttribute__UnsetBodyAssignment_7_3_1 ) )
            // InternalXcore.g:8029:1: ( rule__XAttribute__UnsetBodyAssignment_7_3_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAttributeAccess().getUnsetBodyAssignment_7_3_1()); 
            }
            // InternalXcore.g:8030:1: ( rule__XAttribute__UnsetBodyAssignment_7_3_1 )
            // InternalXcore.g:8030:2: rule__XAttribute__UnsetBodyAssignment_7_3_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XAttribute__UnsetBodyAssignment_7_3_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAttributeAccess().getUnsetBodyAssignment_7_3_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAttribute__Group_7_3__1__Impl"


    // $ANTLR start "rule__XReference__Group__0"
    // InternalXcore.g:8044:1: rule__XReference__Group__0 : rule__XReference__Group__0__Impl rule__XReference__Group__1 ;
    public final void rule__XReference__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:8048:1: ( rule__XReference__Group__0__Impl rule__XReference__Group__1 )
            // InternalXcore.g:8049:2: rule__XReference__Group__0__Impl rule__XReference__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_42);
            rule__XReference__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XReference__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__Group__0"


    // $ANTLR start "rule__XReference__Group__0__Impl"
    // InternalXcore.g:8056:1: rule__XReference__Group__0__Impl : ( () ) ;
    public final void rule__XReference__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:8060:1: ( ( () ) )
            // InternalXcore.g:8061:1: ( () )
            {
            // InternalXcore.g:8061:1: ( () )
            // InternalXcore.g:8062:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getXReferenceAction_0()); 
            }
            // InternalXcore.g:8063:1: ()
            // InternalXcore.g:8065:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXReferenceAccess().getXReferenceAction_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__Group__0__Impl"


    // $ANTLR start "rule__XReference__Group__1"
    // InternalXcore.g:8075:1: rule__XReference__Group__1 : rule__XReference__Group__1__Impl rule__XReference__Group__2 ;
    public final void rule__XReference__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:8079:1: ( rule__XReference__Group__1__Impl rule__XReference__Group__2 )
            // InternalXcore.g:8080:2: rule__XReference__Group__1__Impl rule__XReference__Group__2
            {
            pushFollow(FollowSets000.FOLLOW_42);
            rule__XReference__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XReference__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__Group__1"


    // $ANTLR start "rule__XReference__Group__1__Impl"
    // InternalXcore.g:8087:1: rule__XReference__Group__1__Impl : ( ( rule__XReference__AnnotationsAssignment_1 )* ) ;
    public final void rule__XReference__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:8091:1: ( ( ( rule__XReference__AnnotationsAssignment_1 )* ) )
            // InternalXcore.g:8092:1: ( ( rule__XReference__AnnotationsAssignment_1 )* )
            {
            // InternalXcore.g:8092:1: ( ( rule__XReference__AnnotationsAssignment_1 )* )
            // InternalXcore.g:8093:1: ( rule__XReference__AnnotationsAssignment_1 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getAnnotationsAssignment_1()); 
            }
            // InternalXcore.g:8094:1: ( rule__XReference__AnnotationsAssignment_1 )*
            loop83:
            do {
                int alt83=2;
                int LA83_0 = input.LA(1);

                if ( (LA83_0==84) ) {
                    alt83=1;
                }


                switch (alt83) {
            	case 1 :
            	    // InternalXcore.g:8094:2: rule__XReference__AnnotationsAssignment_1
            	    {
            	    pushFollow(FollowSets000.FOLLOW_5);
            	    rule__XReference__AnnotationsAssignment_1();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop83;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXReferenceAccess().getAnnotationsAssignment_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__Group__1__Impl"


    // $ANTLR start "rule__XReference__Group__2"
    // InternalXcore.g:8104:1: rule__XReference__Group__2 : rule__XReference__Group__2__Impl rule__XReference__Group__3 ;
    public final void rule__XReference__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:8108:1: ( rule__XReference__Group__2__Impl rule__XReference__Group__3 )
            // InternalXcore.g:8109:2: rule__XReference__Group__2__Impl rule__XReference__Group__3
            {
            pushFollow(FollowSets000.FOLLOW_43);
            rule__XReference__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XReference__Group__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__Group__2"


    // $ANTLR start "rule__XReference__Group__2__Impl"
    // InternalXcore.g:8116:1: rule__XReference__Group__2__Impl : ( ( rule__XReference__Alternatives_2 ) ) ;
    public final void rule__XReference__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:8120:1: ( ( ( rule__XReference__Alternatives_2 ) ) )
            // InternalXcore.g:8121:1: ( ( rule__XReference__Alternatives_2 ) )
            {
            // InternalXcore.g:8121:1: ( ( rule__XReference__Alternatives_2 ) )
            // InternalXcore.g:8122:1: ( rule__XReference__Alternatives_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getAlternatives_2()); 
            }
            // InternalXcore.g:8123:1: ( rule__XReference__Alternatives_2 )
            // InternalXcore.g:8123:2: rule__XReference__Alternatives_2
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XReference__Alternatives_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXReferenceAccess().getAlternatives_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__Group__2__Impl"


    // $ANTLR start "rule__XReference__Group__3"
    // InternalXcore.g:8133:1: rule__XReference__Group__3 : rule__XReference__Group__3__Impl rule__XReference__Group__4 ;
    public final void rule__XReference__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:8137:1: ( rule__XReference__Group__3__Impl rule__XReference__Group__4 )
            // InternalXcore.g:8138:2: rule__XReference__Group__3__Impl rule__XReference__Group__4
            {
            pushFollow(FollowSets000.FOLLOW_11);
            rule__XReference__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XReference__Group__4();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__Group__3"


    // $ANTLR start "rule__XReference__Group__3__Impl"
    // InternalXcore.g:8145:1: rule__XReference__Group__3__Impl : ( ( rule__XReference__UnorderedGroup_3 ) ) ;
    public final void rule__XReference__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:8149:1: ( ( ( rule__XReference__UnorderedGroup_3 ) ) )
            // InternalXcore.g:8150:1: ( ( rule__XReference__UnorderedGroup_3 ) )
            {
            // InternalXcore.g:8150:1: ( ( rule__XReference__UnorderedGroup_3 ) )
            // InternalXcore.g:8151:1: ( rule__XReference__UnorderedGroup_3 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getUnorderedGroup_3()); 
            }
            // InternalXcore.g:8152:1: ( rule__XReference__UnorderedGroup_3 )
            // InternalXcore.g:8152:2: rule__XReference__UnorderedGroup_3
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XReference__UnorderedGroup_3();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXReferenceAccess().getUnorderedGroup_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__Group__3__Impl"


    // $ANTLR start "rule__XReference__Group__4"
    // InternalXcore.g:8162:1: rule__XReference__Group__4 : rule__XReference__Group__4__Impl rule__XReference__Group__5 ;
    public final void rule__XReference__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:8166:1: ( rule__XReference__Group__4__Impl rule__XReference__Group__5 )
            // InternalXcore.g:8167:2: rule__XReference__Group__4__Impl rule__XReference__Group__5
            {
            pushFollow(FollowSets000.FOLLOW_40);
            rule__XReference__Group__4__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XReference__Group__5();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__Group__4"


    // $ANTLR start "rule__XReference__Group__4__Impl"
    // InternalXcore.g:8174:1: rule__XReference__Group__4__Impl : ( ( rule__XReference__TypeAssignment_4 ) ) ;
    public final void rule__XReference__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:8178:1: ( ( ( rule__XReference__TypeAssignment_4 ) ) )
            // InternalXcore.g:8179:1: ( ( rule__XReference__TypeAssignment_4 ) )
            {
            // InternalXcore.g:8179:1: ( ( rule__XReference__TypeAssignment_4 ) )
            // InternalXcore.g:8180:1: ( rule__XReference__TypeAssignment_4 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getTypeAssignment_4()); 
            }
            // InternalXcore.g:8181:1: ( rule__XReference__TypeAssignment_4 )
            // InternalXcore.g:8181:2: rule__XReference__TypeAssignment_4
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XReference__TypeAssignment_4();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXReferenceAccess().getTypeAssignment_4()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__Group__4__Impl"


    // $ANTLR start "rule__XReference__Group__5"
    // InternalXcore.g:8191:1: rule__XReference__Group__5 : rule__XReference__Group__5__Impl rule__XReference__Group__6 ;
    public final void rule__XReference__Group__5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:8195:1: ( rule__XReference__Group__5__Impl rule__XReference__Group__6 )
            // InternalXcore.g:8196:2: rule__XReference__Group__5__Impl rule__XReference__Group__6
            {
            pushFollow(FollowSets000.FOLLOW_40);
            rule__XReference__Group__5__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XReference__Group__6();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__Group__5"


    // $ANTLR start "rule__XReference__Group__5__Impl"
    // InternalXcore.g:8203:1: rule__XReference__Group__5__Impl : ( ( rule__XReference__MultiplicityAssignment_5 )? ) ;
    public final void rule__XReference__Group__5__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:8207:1: ( ( ( rule__XReference__MultiplicityAssignment_5 )? ) )
            // InternalXcore.g:8208:1: ( ( rule__XReference__MultiplicityAssignment_5 )? )
            {
            // InternalXcore.g:8208:1: ( ( rule__XReference__MultiplicityAssignment_5 )? )
            // InternalXcore.g:8209:1: ( rule__XReference__MultiplicityAssignment_5 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getMultiplicityAssignment_5()); 
            }
            // InternalXcore.g:8210:1: ( rule__XReference__MultiplicityAssignment_5 )?
            int alt84=2;
            int LA84_0 = input.LA(1);

            if ( (LA84_0==92) ) {
                alt84=1;
            }
            switch (alt84) {
                case 1 :
                    // InternalXcore.g:8210:2: rule__XReference__MultiplicityAssignment_5
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XReference__MultiplicityAssignment_5();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXReferenceAccess().getMultiplicityAssignment_5()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__Group__5__Impl"


    // $ANTLR start "rule__XReference__Group__6"
    // InternalXcore.g:8220:1: rule__XReference__Group__6 : rule__XReference__Group__6__Impl rule__XReference__Group__7 ;
    public final void rule__XReference__Group__6() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:8224:1: ( rule__XReference__Group__6__Impl rule__XReference__Group__7 )
            // InternalXcore.g:8225:2: rule__XReference__Group__6__Impl rule__XReference__Group__7
            {
            pushFollow(FollowSets000.FOLLOW_44);
            rule__XReference__Group__6__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XReference__Group__7();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__Group__6"


    // $ANTLR start "rule__XReference__Group__6__Impl"
    // InternalXcore.g:8232:1: rule__XReference__Group__6__Impl : ( ( rule__XReference__NameAssignment_6 ) ) ;
    public final void rule__XReference__Group__6__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:8236:1: ( ( ( rule__XReference__NameAssignment_6 ) ) )
            // InternalXcore.g:8237:1: ( ( rule__XReference__NameAssignment_6 ) )
            {
            // InternalXcore.g:8237:1: ( ( rule__XReference__NameAssignment_6 ) )
            // InternalXcore.g:8238:1: ( rule__XReference__NameAssignment_6 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getNameAssignment_6()); 
            }
            // InternalXcore.g:8239:1: ( rule__XReference__NameAssignment_6 )
            // InternalXcore.g:8239:2: rule__XReference__NameAssignment_6
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XReference__NameAssignment_6();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXReferenceAccess().getNameAssignment_6()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__Group__6__Impl"


    // $ANTLR start "rule__XReference__Group__7"
    // InternalXcore.g:8249:1: rule__XReference__Group__7 : rule__XReference__Group__7__Impl rule__XReference__Group__8 ;
    public final void rule__XReference__Group__7() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:8253:1: ( rule__XReference__Group__7__Impl rule__XReference__Group__8 )
            // InternalXcore.g:8254:2: rule__XReference__Group__7__Impl rule__XReference__Group__8
            {
            pushFollow(FollowSets000.FOLLOW_44);
            rule__XReference__Group__7__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XReference__Group__8();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__Group__7"


    // $ANTLR start "rule__XReference__Group__7__Impl"
    // InternalXcore.g:8261:1: rule__XReference__Group__7__Impl : ( ( rule__XReference__Group_7__0 )? ) ;
    public final void rule__XReference__Group__7__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:8265:1: ( ( ( rule__XReference__Group_7__0 )? ) )
            // InternalXcore.g:8266:1: ( ( rule__XReference__Group_7__0 )? )
            {
            // InternalXcore.g:8266:1: ( ( rule__XReference__Group_7__0 )? )
            // InternalXcore.g:8267:1: ( rule__XReference__Group_7__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getGroup_7()); 
            }
            // InternalXcore.g:8268:1: ( rule__XReference__Group_7__0 )?
            int alt85=2;
            int LA85_0 = input.LA(1);

            if ( (LA85_0==42) ) {
                alt85=1;
            }
            switch (alt85) {
                case 1 :
                    // InternalXcore.g:8268:2: rule__XReference__Group_7__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XReference__Group_7__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXReferenceAccess().getGroup_7()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__Group__7__Impl"


    // $ANTLR start "rule__XReference__Group__8"
    // InternalXcore.g:8278:1: rule__XReference__Group__8 : rule__XReference__Group__8__Impl rule__XReference__Group__9 ;
    public final void rule__XReference__Group__8() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:8282:1: ( rule__XReference__Group__8__Impl rule__XReference__Group__9 )
            // InternalXcore.g:8283:2: rule__XReference__Group__8__Impl rule__XReference__Group__9
            {
            pushFollow(FollowSets000.FOLLOW_44);
            rule__XReference__Group__8__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XReference__Group__9();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__Group__8"


    // $ANTLR start "rule__XReference__Group__8__Impl"
    // InternalXcore.g:8290:1: rule__XReference__Group__8__Impl : ( ( rule__XReference__Group_8__0 )? ) ;
    public final void rule__XReference__Group__8__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:8294:1: ( ( ( rule__XReference__Group_8__0 )? ) )
            // InternalXcore.g:8295:1: ( ( rule__XReference__Group_8__0 )? )
            {
            // InternalXcore.g:8295:1: ( ( rule__XReference__Group_8__0 )? )
            // InternalXcore.g:8296:1: ( rule__XReference__Group_8__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getGroup_8()); 
            }
            // InternalXcore.g:8297:1: ( rule__XReference__Group_8__0 )?
            int alt86=2;
            int LA86_0 = input.LA(1);

            if ( (LA86_0==38) ) {
                alt86=1;
            }
            switch (alt86) {
                case 1 :
                    // InternalXcore.g:8297:2: rule__XReference__Group_8__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XReference__Group_8__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXReferenceAccess().getGroup_8()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__Group__8__Impl"


    // $ANTLR start "rule__XReference__Group__9"
    // InternalXcore.g:8307:1: rule__XReference__Group__9 : rule__XReference__Group__9__Impl ;
    public final void rule__XReference__Group__9() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:8311:1: ( rule__XReference__Group__9__Impl )
            // InternalXcore.g:8312:2: rule__XReference__Group__9__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XReference__Group__9__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__Group__9"


    // $ANTLR start "rule__XReference__Group__9__Impl"
    // InternalXcore.g:8318:1: rule__XReference__Group__9__Impl : ( ( rule__XReference__UnorderedGroup_9 ) ) ;
    public final void rule__XReference__Group__9__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:8322:1: ( ( ( rule__XReference__UnorderedGroup_9 ) ) )
            // InternalXcore.g:8323:1: ( ( rule__XReference__UnorderedGroup_9 ) )
            {
            // InternalXcore.g:8323:1: ( ( rule__XReference__UnorderedGroup_9 ) )
            // InternalXcore.g:8324:1: ( rule__XReference__UnorderedGroup_9 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getUnorderedGroup_9()); 
            }
            // InternalXcore.g:8325:1: ( rule__XReference__UnorderedGroup_9 )
            // InternalXcore.g:8325:2: rule__XReference__UnorderedGroup_9
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XReference__UnorderedGroup_9();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXReferenceAccess().getUnorderedGroup_9()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__Group__9__Impl"


    // $ANTLR start "rule__XReference__Group_2_0__0"
    // InternalXcore.g:8355:1: rule__XReference__Group_2_0__0 : rule__XReference__Group_2_0__0__Impl rule__XReference__Group_2_0__1 ;
    public final void rule__XReference__Group_2_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:8359:1: ( rule__XReference__Group_2_0__0__Impl rule__XReference__Group_2_0__1 )
            // InternalXcore.g:8360:2: rule__XReference__Group_2_0__0__Impl rule__XReference__Group_2_0__1
            {
            pushFollow(FollowSets000.FOLLOW_45);
            rule__XReference__Group_2_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XReference__Group_2_0__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__Group_2_0__0"


    // $ANTLR start "rule__XReference__Group_2_0__0__Impl"
    // InternalXcore.g:8367:1: rule__XReference__Group_2_0__0__Impl : ( ( rule__XReference__ContainmentAssignment_2_0_0 ) ) ;
    public final void rule__XReference__Group_2_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:8371:1: ( ( ( rule__XReference__ContainmentAssignment_2_0_0 ) ) )
            // InternalXcore.g:8372:1: ( ( rule__XReference__ContainmentAssignment_2_0_0 ) )
            {
            // InternalXcore.g:8372:1: ( ( rule__XReference__ContainmentAssignment_2_0_0 ) )
            // InternalXcore.g:8373:1: ( rule__XReference__ContainmentAssignment_2_0_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getContainmentAssignment_2_0_0()); 
            }
            // InternalXcore.g:8374:1: ( rule__XReference__ContainmentAssignment_2_0_0 )
            // InternalXcore.g:8374:2: rule__XReference__ContainmentAssignment_2_0_0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XReference__ContainmentAssignment_2_0_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXReferenceAccess().getContainmentAssignment_2_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__Group_2_0__0__Impl"


    // $ANTLR start "rule__XReference__Group_2_0__1"
    // InternalXcore.g:8384:1: rule__XReference__Group_2_0__1 : rule__XReference__Group_2_0__1__Impl ;
    public final void rule__XReference__Group_2_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:8388:1: ( rule__XReference__Group_2_0__1__Impl )
            // InternalXcore.g:8389:2: rule__XReference__Group_2_0__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XReference__Group_2_0__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__Group_2_0__1"


    // $ANTLR start "rule__XReference__Group_2_0__1__Impl"
    // InternalXcore.g:8395:1: rule__XReference__Group_2_0__1__Impl : ( ( rule__XReference__ResolveProxiesAssignment_2_0_1 )? ) ;
    public final void rule__XReference__Group_2_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:8399:1: ( ( ( rule__XReference__ResolveProxiesAssignment_2_0_1 )? ) )
            // InternalXcore.g:8400:1: ( ( rule__XReference__ResolveProxiesAssignment_2_0_1 )? )
            {
            // InternalXcore.g:8400:1: ( ( rule__XReference__ResolveProxiesAssignment_2_0_1 )? )
            // InternalXcore.g:8401:1: ( rule__XReference__ResolveProxiesAssignment_2_0_1 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getResolveProxiesAssignment_2_0_1()); 
            }
            // InternalXcore.g:8402:1: ( rule__XReference__ResolveProxiesAssignment_2_0_1 )?
            int alt87=2;
            int LA87_0 = input.LA(1);

            if ( (LA87_0==46) ) {
                alt87=1;
            }
            switch (alt87) {
                case 1 :
                    // InternalXcore.g:8402:2: rule__XReference__ResolveProxiesAssignment_2_0_1
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XReference__ResolveProxiesAssignment_2_0_1();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXReferenceAccess().getResolveProxiesAssignment_2_0_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__Group_2_0__1__Impl"


    // $ANTLR start "rule__XReference__Group_2_1__0"
    // InternalXcore.g:8416:1: rule__XReference__Group_2_1__0 : rule__XReference__Group_2_1__0__Impl rule__XReference__Group_2_1__1 ;
    public final void rule__XReference__Group_2_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:8420:1: ( rule__XReference__Group_2_1__0__Impl rule__XReference__Group_2_1__1 )
            // InternalXcore.g:8421:2: rule__XReference__Group_2_1__0__Impl rule__XReference__Group_2_1__1
            {
            pushFollow(FollowSets000.FOLLOW_46);
            rule__XReference__Group_2_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XReference__Group_2_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__Group_2_1__0"


    // $ANTLR start "rule__XReference__Group_2_1__0__Impl"
    // InternalXcore.g:8428:1: rule__XReference__Group_2_1__0__Impl : ( ( rule__XReference__ResolveProxiesAssignment_2_1_0 ) ) ;
    public final void rule__XReference__Group_2_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:8432:1: ( ( ( rule__XReference__ResolveProxiesAssignment_2_1_0 ) ) )
            // InternalXcore.g:8433:1: ( ( rule__XReference__ResolveProxiesAssignment_2_1_0 ) )
            {
            // InternalXcore.g:8433:1: ( ( rule__XReference__ResolveProxiesAssignment_2_1_0 ) )
            // InternalXcore.g:8434:1: ( rule__XReference__ResolveProxiesAssignment_2_1_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getResolveProxiesAssignment_2_1_0()); 
            }
            // InternalXcore.g:8435:1: ( rule__XReference__ResolveProxiesAssignment_2_1_0 )
            // InternalXcore.g:8435:2: rule__XReference__ResolveProxiesAssignment_2_1_0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XReference__ResolveProxiesAssignment_2_1_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXReferenceAccess().getResolveProxiesAssignment_2_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__Group_2_1__0__Impl"


    // $ANTLR start "rule__XReference__Group_2_1__1"
    // InternalXcore.g:8445:1: rule__XReference__Group_2_1__1 : rule__XReference__Group_2_1__1__Impl ;
    public final void rule__XReference__Group_2_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:8449:1: ( rule__XReference__Group_2_1__1__Impl )
            // InternalXcore.g:8450:2: rule__XReference__Group_2_1__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XReference__Group_2_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__Group_2_1__1"


    // $ANTLR start "rule__XReference__Group_2_1__1__Impl"
    // InternalXcore.g:8456:1: rule__XReference__Group_2_1__1__Impl : ( ( rule__XReference__ContainmentAssignment_2_1_1 ) ) ;
    public final void rule__XReference__Group_2_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:8460:1: ( ( ( rule__XReference__ContainmentAssignment_2_1_1 ) ) )
            // InternalXcore.g:8461:1: ( ( rule__XReference__ContainmentAssignment_2_1_1 ) )
            {
            // InternalXcore.g:8461:1: ( ( rule__XReference__ContainmentAssignment_2_1_1 ) )
            // InternalXcore.g:8462:1: ( rule__XReference__ContainmentAssignment_2_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getContainmentAssignment_2_1_1()); 
            }
            // InternalXcore.g:8463:1: ( rule__XReference__ContainmentAssignment_2_1_1 )
            // InternalXcore.g:8463:2: rule__XReference__ContainmentAssignment_2_1_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XReference__ContainmentAssignment_2_1_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXReferenceAccess().getContainmentAssignment_2_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__Group_2_1__1__Impl"


    // $ANTLR start "rule__XReference__Group_2_2__0"
    // InternalXcore.g:8477:1: rule__XReference__Group_2_2__0 : rule__XReference__Group_2_2__0__Impl rule__XReference__Group_2_2__1 ;
    public final void rule__XReference__Group_2_2__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:8481:1: ( rule__XReference__Group_2_2__0__Impl rule__XReference__Group_2_2__1 )
            // InternalXcore.g:8482:2: rule__XReference__Group_2_2__0__Impl rule__XReference__Group_2_2__1
            {
            pushFollow(FollowSets000.FOLLOW_45);
            rule__XReference__Group_2_2__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XReference__Group_2_2__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__Group_2_2__0"


    // $ANTLR start "rule__XReference__Group_2_2__0__Impl"
    // InternalXcore.g:8489:1: rule__XReference__Group_2_2__0__Impl : ( ( rule__XReference__ContainerAssignment_2_2_0 ) ) ;
    public final void rule__XReference__Group_2_2__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:8493:1: ( ( ( rule__XReference__ContainerAssignment_2_2_0 ) ) )
            // InternalXcore.g:8494:1: ( ( rule__XReference__ContainerAssignment_2_2_0 ) )
            {
            // InternalXcore.g:8494:1: ( ( rule__XReference__ContainerAssignment_2_2_0 ) )
            // InternalXcore.g:8495:1: ( rule__XReference__ContainerAssignment_2_2_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getContainerAssignment_2_2_0()); 
            }
            // InternalXcore.g:8496:1: ( rule__XReference__ContainerAssignment_2_2_0 )
            // InternalXcore.g:8496:2: rule__XReference__ContainerAssignment_2_2_0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XReference__ContainerAssignment_2_2_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXReferenceAccess().getContainerAssignment_2_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__Group_2_2__0__Impl"


    // $ANTLR start "rule__XReference__Group_2_2__1"
    // InternalXcore.g:8506:1: rule__XReference__Group_2_2__1 : rule__XReference__Group_2_2__1__Impl ;
    public final void rule__XReference__Group_2_2__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:8510:1: ( rule__XReference__Group_2_2__1__Impl )
            // InternalXcore.g:8511:2: rule__XReference__Group_2_2__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XReference__Group_2_2__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__Group_2_2__1"


    // $ANTLR start "rule__XReference__Group_2_2__1__Impl"
    // InternalXcore.g:8517:1: rule__XReference__Group_2_2__1__Impl : ( ( rule__XReference__ResolveProxiesAssignment_2_2_1 )? ) ;
    public final void rule__XReference__Group_2_2__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:8521:1: ( ( ( rule__XReference__ResolveProxiesAssignment_2_2_1 )? ) )
            // InternalXcore.g:8522:1: ( ( rule__XReference__ResolveProxiesAssignment_2_2_1 )? )
            {
            // InternalXcore.g:8522:1: ( ( rule__XReference__ResolveProxiesAssignment_2_2_1 )? )
            // InternalXcore.g:8523:1: ( rule__XReference__ResolveProxiesAssignment_2_2_1 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getResolveProxiesAssignment_2_2_1()); 
            }
            // InternalXcore.g:8524:1: ( rule__XReference__ResolveProxiesAssignment_2_2_1 )?
            int alt88=2;
            int LA88_0 = input.LA(1);

            if ( (LA88_0==46) ) {
                alt88=1;
            }
            switch (alt88) {
                case 1 :
                    // InternalXcore.g:8524:2: rule__XReference__ResolveProxiesAssignment_2_2_1
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XReference__ResolveProxiesAssignment_2_2_1();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXReferenceAccess().getResolveProxiesAssignment_2_2_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__Group_2_2__1__Impl"


    // $ANTLR start "rule__XReference__Group_2_3__0"
    // InternalXcore.g:8538:1: rule__XReference__Group_2_3__0 : rule__XReference__Group_2_3__0__Impl rule__XReference__Group_2_3__1 ;
    public final void rule__XReference__Group_2_3__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:8542:1: ( rule__XReference__Group_2_3__0__Impl rule__XReference__Group_2_3__1 )
            // InternalXcore.g:8543:2: rule__XReference__Group_2_3__0__Impl rule__XReference__Group_2_3__1
            {
            pushFollow(FollowSets000.FOLLOW_47);
            rule__XReference__Group_2_3__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XReference__Group_2_3__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__Group_2_3__0"


    // $ANTLR start "rule__XReference__Group_2_3__0__Impl"
    // InternalXcore.g:8550:1: rule__XReference__Group_2_3__0__Impl : ( ( rule__XReference__ResolveProxiesAssignment_2_3_0 ) ) ;
    public final void rule__XReference__Group_2_3__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:8554:1: ( ( ( rule__XReference__ResolveProxiesAssignment_2_3_0 ) ) )
            // InternalXcore.g:8555:1: ( ( rule__XReference__ResolveProxiesAssignment_2_3_0 ) )
            {
            // InternalXcore.g:8555:1: ( ( rule__XReference__ResolveProxiesAssignment_2_3_0 ) )
            // InternalXcore.g:8556:1: ( rule__XReference__ResolveProxiesAssignment_2_3_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getResolveProxiesAssignment_2_3_0()); 
            }
            // InternalXcore.g:8557:1: ( rule__XReference__ResolveProxiesAssignment_2_3_0 )
            // InternalXcore.g:8557:2: rule__XReference__ResolveProxiesAssignment_2_3_0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XReference__ResolveProxiesAssignment_2_3_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXReferenceAccess().getResolveProxiesAssignment_2_3_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__Group_2_3__0__Impl"


    // $ANTLR start "rule__XReference__Group_2_3__1"
    // InternalXcore.g:8567:1: rule__XReference__Group_2_3__1 : rule__XReference__Group_2_3__1__Impl ;
    public final void rule__XReference__Group_2_3__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:8571:1: ( rule__XReference__Group_2_3__1__Impl )
            // InternalXcore.g:8572:2: rule__XReference__Group_2_3__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XReference__Group_2_3__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__Group_2_3__1"


    // $ANTLR start "rule__XReference__Group_2_3__1__Impl"
    // InternalXcore.g:8578:1: rule__XReference__Group_2_3__1__Impl : ( ( rule__XReference__ContainerAssignment_2_3_1 ) ) ;
    public final void rule__XReference__Group_2_3__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:8582:1: ( ( ( rule__XReference__ContainerAssignment_2_3_1 ) ) )
            // InternalXcore.g:8583:1: ( ( rule__XReference__ContainerAssignment_2_3_1 ) )
            {
            // InternalXcore.g:8583:1: ( ( rule__XReference__ContainerAssignment_2_3_1 ) )
            // InternalXcore.g:8584:1: ( rule__XReference__ContainerAssignment_2_3_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getContainerAssignment_2_3_1()); 
            }
            // InternalXcore.g:8585:1: ( rule__XReference__ContainerAssignment_2_3_1 )
            // InternalXcore.g:8585:2: rule__XReference__ContainerAssignment_2_3_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XReference__ContainerAssignment_2_3_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXReferenceAccess().getContainerAssignment_2_3_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__Group_2_3__1__Impl"


    // $ANTLR start "rule__XReference__Group_2_4__0"
    // InternalXcore.g:8599:1: rule__XReference__Group_2_4__0 : rule__XReference__Group_2_4__0__Impl rule__XReference__Group_2_4__1 ;
    public final void rule__XReference__Group_2_4__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:8603:1: ( rule__XReference__Group_2_4__0__Impl rule__XReference__Group_2_4__1 )
            // InternalXcore.g:8604:2: rule__XReference__Group_2_4__0__Impl rule__XReference__Group_2_4__1
            {
            pushFollow(FollowSets000.FOLLOW_48);
            rule__XReference__Group_2_4__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XReference__Group_2_4__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__Group_2_4__0"


    // $ANTLR start "rule__XReference__Group_2_4__0__Impl"
    // InternalXcore.g:8611:1: rule__XReference__Group_2_4__0__Impl : ( 'refers' ) ;
    public final void rule__XReference__Group_2_4__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:8615:1: ( ( 'refers' ) )
            // InternalXcore.g:8616:1: ( 'refers' )
            {
            // InternalXcore.g:8616:1: ( 'refers' )
            // InternalXcore.g:8617:1: 'refers'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getRefersKeyword_2_4_0()); 
            }
            match(input,45,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXReferenceAccess().getRefersKeyword_2_4_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__Group_2_4__0__Impl"


    // $ANTLR start "rule__XReference__Group_2_4__1"
    // InternalXcore.g:8630:1: rule__XReference__Group_2_4__1 : rule__XReference__Group_2_4__1__Impl ;
    public final void rule__XReference__Group_2_4__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:8634:1: ( rule__XReference__Group_2_4__1__Impl )
            // InternalXcore.g:8635:2: rule__XReference__Group_2_4__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XReference__Group_2_4__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__Group_2_4__1"


    // $ANTLR start "rule__XReference__Group_2_4__1__Impl"
    // InternalXcore.g:8641:1: rule__XReference__Group_2_4__1__Impl : ( ( rule__XReference__LocalAssignment_2_4_1 )? ) ;
    public final void rule__XReference__Group_2_4__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:8645:1: ( ( ( rule__XReference__LocalAssignment_2_4_1 )? ) )
            // InternalXcore.g:8646:1: ( ( rule__XReference__LocalAssignment_2_4_1 )? )
            {
            // InternalXcore.g:8646:1: ( ( rule__XReference__LocalAssignment_2_4_1 )? )
            // InternalXcore.g:8647:1: ( rule__XReference__LocalAssignment_2_4_1 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getLocalAssignment_2_4_1()); 
            }
            // InternalXcore.g:8648:1: ( rule__XReference__LocalAssignment_2_4_1 )?
            int alt89=2;
            int LA89_0 = input.LA(1);

            if ( (LA89_0==40) ) {
                alt89=1;
            }
            switch (alt89) {
                case 1 :
                    // InternalXcore.g:8648:2: rule__XReference__LocalAssignment_2_4_1
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XReference__LocalAssignment_2_4_1();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXReferenceAccess().getLocalAssignment_2_4_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__Group_2_4__1__Impl"


    // $ANTLR start "rule__XReference__Group_2_5__0"
    // InternalXcore.g:8662:1: rule__XReference__Group_2_5__0 : rule__XReference__Group_2_5__0__Impl rule__XReference__Group_2_5__1 ;
    public final void rule__XReference__Group_2_5__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:8666:1: ( rule__XReference__Group_2_5__0__Impl rule__XReference__Group_2_5__1 )
            // InternalXcore.g:8667:2: rule__XReference__Group_2_5__0__Impl rule__XReference__Group_2_5__1
            {
            pushFollow(FollowSets000.FOLLOW_49);
            rule__XReference__Group_2_5__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XReference__Group_2_5__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__Group_2_5__0"


    // $ANTLR start "rule__XReference__Group_2_5__0__Impl"
    // InternalXcore.g:8674:1: rule__XReference__Group_2_5__0__Impl : ( ( rule__XReference__LocalAssignment_2_5_0 ) ) ;
    public final void rule__XReference__Group_2_5__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:8678:1: ( ( ( rule__XReference__LocalAssignment_2_5_0 ) ) )
            // InternalXcore.g:8679:1: ( ( rule__XReference__LocalAssignment_2_5_0 ) )
            {
            // InternalXcore.g:8679:1: ( ( rule__XReference__LocalAssignment_2_5_0 ) )
            // InternalXcore.g:8680:1: ( rule__XReference__LocalAssignment_2_5_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getLocalAssignment_2_5_0()); 
            }
            // InternalXcore.g:8681:1: ( rule__XReference__LocalAssignment_2_5_0 )
            // InternalXcore.g:8681:2: rule__XReference__LocalAssignment_2_5_0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XReference__LocalAssignment_2_5_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXReferenceAccess().getLocalAssignment_2_5_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__Group_2_5__0__Impl"


    // $ANTLR start "rule__XReference__Group_2_5__1"
    // InternalXcore.g:8691:1: rule__XReference__Group_2_5__1 : rule__XReference__Group_2_5__1__Impl ;
    public final void rule__XReference__Group_2_5__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:8695:1: ( rule__XReference__Group_2_5__1__Impl )
            // InternalXcore.g:8696:2: rule__XReference__Group_2_5__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XReference__Group_2_5__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__Group_2_5__1"


    // $ANTLR start "rule__XReference__Group_2_5__1__Impl"
    // InternalXcore.g:8702:1: rule__XReference__Group_2_5__1__Impl : ( 'refers' ) ;
    public final void rule__XReference__Group_2_5__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:8706:1: ( ( 'refers' ) )
            // InternalXcore.g:8707:1: ( 'refers' )
            {
            // InternalXcore.g:8707:1: ( 'refers' )
            // InternalXcore.g:8708:1: 'refers'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getRefersKeyword_2_5_1()); 
            }
            match(input,45,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXReferenceAccess().getRefersKeyword_2_5_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__Group_2_5__1__Impl"


    // $ANTLR start "rule__XReference__Group_7__0"
    // InternalXcore.g:8725:1: rule__XReference__Group_7__0 : rule__XReference__Group_7__0__Impl rule__XReference__Group_7__1 ;
    public final void rule__XReference__Group_7__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:8729:1: ( rule__XReference__Group_7__0__Impl rule__XReference__Group_7__1 )
            // InternalXcore.g:8730:2: rule__XReference__Group_7__0__Impl rule__XReference__Group_7__1
            {
            pushFollow(FollowSets000.FOLLOW_6);
            rule__XReference__Group_7__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XReference__Group_7__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__Group_7__0"


    // $ANTLR start "rule__XReference__Group_7__0__Impl"
    // InternalXcore.g:8737:1: rule__XReference__Group_7__0__Impl : ( 'opposite' ) ;
    public final void rule__XReference__Group_7__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:8741:1: ( ( 'opposite' ) )
            // InternalXcore.g:8742:1: ( 'opposite' )
            {
            // InternalXcore.g:8742:1: ( 'opposite' )
            // InternalXcore.g:8743:1: 'opposite'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getOppositeKeyword_7_0()); 
            }
            match(input,42,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXReferenceAccess().getOppositeKeyword_7_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__Group_7__0__Impl"


    // $ANTLR start "rule__XReference__Group_7__1"
    // InternalXcore.g:8756:1: rule__XReference__Group_7__1 : rule__XReference__Group_7__1__Impl ;
    public final void rule__XReference__Group_7__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:8760:1: ( rule__XReference__Group_7__1__Impl )
            // InternalXcore.g:8761:2: rule__XReference__Group_7__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XReference__Group_7__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__Group_7__1"


    // $ANTLR start "rule__XReference__Group_7__1__Impl"
    // InternalXcore.g:8767:1: rule__XReference__Group_7__1__Impl : ( ( rule__XReference__OppositeAssignment_7_1 ) ) ;
    public final void rule__XReference__Group_7__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:8771:1: ( ( ( rule__XReference__OppositeAssignment_7_1 ) ) )
            // InternalXcore.g:8772:1: ( ( rule__XReference__OppositeAssignment_7_1 ) )
            {
            // InternalXcore.g:8772:1: ( ( rule__XReference__OppositeAssignment_7_1 ) )
            // InternalXcore.g:8773:1: ( rule__XReference__OppositeAssignment_7_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getOppositeAssignment_7_1()); 
            }
            // InternalXcore.g:8774:1: ( rule__XReference__OppositeAssignment_7_1 )
            // InternalXcore.g:8774:2: rule__XReference__OppositeAssignment_7_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XReference__OppositeAssignment_7_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXReferenceAccess().getOppositeAssignment_7_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__Group_7__1__Impl"


    // $ANTLR start "rule__XReference__Group_8__0"
    // InternalXcore.g:8788:1: rule__XReference__Group_8__0 : rule__XReference__Group_8__0__Impl rule__XReference__Group_8__1 ;
    public final void rule__XReference__Group_8__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:8792:1: ( rule__XReference__Group_8__0__Impl rule__XReference__Group_8__1 )
            // InternalXcore.g:8793:2: rule__XReference__Group_8__0__Impl rule__XReference__Group_8__1
            {
            pushFollow(FollowSets000.FOLLOW_6);
            rule__XReference__Group_8__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XReference__Group_8__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__Group_8__0"


    // $ANTLR start "rule__XReference__Group_8__0__Impl"
    // InternalXcore.g:8800:1: rule__XReference__Group_8__0__Impl : ( 'keys' ) ;
    public final void rule__XReference__Group_8__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:8804:1: ( ( 'keys' ) )
            // InternalXcore.g:8805:1: ( 'keys' )
            {
            // InternalXcore.g:8805:1: ( 'keys' )
            // InternalXcore.g:8806:1: 'keys'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getKeysKeyword_8_0()); 
            }
            match(input,38,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXReferenceAccess().getKeysKeyword_8_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__Group_8__0__Impl"


    // $ANTLR start "rule__XReference__Group_8__1"
    // InternalXcore.g:8819:1: rule__XReference__Group_8__1 : rule__XReference__Group_8__1__Impl rule__XReference__Group_8__2 ;
    public final void rule__XReference__Group_8__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:8823:1: ( rule__XReference__Group_8__1__Impl rule__XReference__Group_8__2 )
            // InternalXcore.g:8824:2: rule__XReference__Group_8__1__Impl rule__XReference__Group_8__2
            {
            pushFollow(FollowSets000.FOLLOW_38);
            rule__XReference__Group_8__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XReference__Group_8__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__Group_8__1"


    // $ANTLR start "rule__XReference__Group_8__1__Impl"
    // InternalXcore.g:8831:1: rule__XReference__Group_8__1__Impl : ( ( rule__XReference__KeysAssignment_8_1 ) ) ;
    public final void rule__XReference__Group_8__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:8835:1: ( ( ( rule__XReference__KeysAssignment_8_1 ) ) )
            // InternalXcore.g:8836:1: ( ( rule__XReference__KeysAssignment_8_1 ) )
            {
            // InternalXcore.g:8836:1: ( ( rule__XReference__KeysAssignment_8_1 ) )
            // InternalXcore.g:8837:1: ( rule__XReference__KeysAssignment_8_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getKeysAssignment_8_1()); 
            }
            // InternalXcore.g:8838:1: ( rule__XReference__KeysAssignment_8_1 )
            // InternalXcore.g:8838:2: rule__XReference__KeysAssignment_8_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XReference__KeysAssignment_8_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXReferenceAccess().getKeysAssignment_8_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__Group_8__1__Impl"


    // $ANTLR start "rule__XReference__Group_8__2"
    // InternalXcore.g:8848:1: rule__XReference__Group_8__2 : rule__XReference__Group_8__2__Impl ;
    public final void rule__XReference__Group_8__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:8852:1: ( rule__XReference__Group_8__2__Impl )
            // InternalXcore.g:8853:2: rule__XReference__Group_8__2__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XReference__Group_8__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__Group_8__2"


    // $ANTLR start "rule__XReference__Group_8__2__Impl"
    // InternalXcore.g:8859:1: rule__XReference__Group_8__2__Impl : ( ( rule__XReference__Group_8_2__0 )* ) ;
    public final void rule__XReference__Group_8__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:8863:1: ( ( ( rule__XReference__Group_8_2__0 )* ) )
            // InternalXcore.g:8864:1: ( ( rule__XReference__Group_8_2__0 )* )
            {
            // InternalXcore.g:8864:1: ( ( rule__XReference__Group_8_2__0 )* )
            // InternalXcore.g:8865:1: ( rule__XReference__Group_8_2__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getGroup_8_2()); 
            }
            // InternalXcore.g:8866:1: ( rule__XReference__Group_8_2__0 )*
            loop90:
            do {
                int alt90=2;
                int LA90_0 = input.LA(1);

                if ( (LA90_0==87) ) {
                    alt90=1;
                }


                switch (alt90) {
            	case 1 :
            	    // InternalXcore.g:8866:2: rule__XReference__Group_8_2__0
            	    {
            	    pushFollow(FollowSets000.FOLLOW_14);
            	    rule__XReference__Group_8_2__0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop90;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXReferenceAccess().getGroup_8_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__Group_8__2__Impl"


    // $ANTLR start "rule__XReference__Group_8_2__0"
    // InternalXcore.g:8882:1: rule__XReference__Group_8_2__0 : rule__XReference__Group_8_2__0__Impl rule__XReference__Group_8_2__1 ;
    public final void rule__XReference__Group_8_2__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:8886:1: ( rule__XReference__Group_8_2__0__Impl rule__XReference__Group_8_2__1 )
            // InternalXcore.g:8887:2: rule__XReference__Group_8_2__0__Impl rule__XReference__Group_8_2__1
            {
            pushFollow(FollowSets000.FOLLOW_6);
            rule__XReference__Group_8_2__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XReference__Group_8_2__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__Group_8_2__0"


    // $ANTLR start "rule__XReference__Group_8_2__0__Impl"
    // InternalXcore.g:8894:1: rule__XReference__Group_8_2__0__Impl : ( ',' ) ;
    public final void rule__XReference__Group_8_2__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:8898:1: ( ( ',' ) )
            // InternalXcore.g:8899:1: ( ',' )
            {
            // InternalXcore.g:8899:1: ( ',' )
            // InternalXcore.g:8900:1: ','
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getCommaKeyword_8_2_0()); 
            }
            match(input,87,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXReferenceAccess().getCommaKeyword_8_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__Group_8_2__0__Impl"


    // $ANTLR start "rule__XReference__Group_8_2__1"
    // InternalXcore.g:8913:1: rule__XReference__Group_8_2__1 : rule__XReference__Group_8_2__1__Impl ;
    public final void rule__XReference__Group_8_2__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:8917:1: ( rule__XReference__Group_8_2__1__Impl )
            // InternalXcore.g:8918:2: rule__XReference__Group_8_2__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XReference__Group_8_2__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__Group_8_2__1"


    // $ANTLR start "rule__XReference__Group_8_2__1__Impl"
    // InternalXcore.g:8924:1: rule__XReference__Group_8_2__1__Impl : ( ( rule__XReference__KeysAssignment_8_2_1 ) ) ;
    public final void rule__XReference__Group_8_2__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:8928:1: ( ( ( rule__XReference__KeysAssignment_8_2_1 ) ) )
            // InternalXcore.g:8929:1: ( ( rule__XReference__KeysAssignment_8_2_1 ) )
            {
            // InternalXcore.g:8929:1: ( ( rule__XReference__KeysAssignment_8_2_1 ) )
            // InternalXcore.g:8930:1: ( rule__XReference__KeysAssignment_8_2_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getKeysAssignment_8_2_1()); 
            }
            // InternalXcore.g:8931:1: ( rule__XReference__KeysAssignment_8_2_1 )
            // InternalXcore.g:8931:2: rule__XReference__KeysAssignment_8_2_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XReference__KeysAssignment_8_2_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXReferenceAccess().getKeysAssignment_8_2_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__Group_8_2__1__Impl"


    // $ANTLR start "rule__XReference__Group_9_0__0"
    // InternalXcore.g:8945:1: rule__XReference__Group_9_0__0 : rule__XReference__Group_9_0__0__Impl rule__XReference__Group_9_0__1 ;
    public final void rule__XReference__Group_9_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:8949:1: ( rule__XReference__Group_9_0__0__Impl rule__XReference__Group_9_0__1 )
            // InternalXcore.g:8950:2: rule__XReference__Group_9_0__0__Impl rule__XReference__Group_9_0__1
            {
            pushFollow(FollowSets000.FOLLOW_26);
            rule__XReference__Group_9_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XReference__Group_9_0__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__Group_9_0__0"


    // $ANTLR start "rule__XReference__Group_9_0__0__Impl"
    // InternalXcore.g:8957:1: rule__XReference__Group_9_0__0__Impl : ( 'get' ) ;
    public final void rule__XReference__Group_9_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:8961:1: ( ( 'get' ) )
            // InternalXcore.g:8962:1: ( 'get' )
            {
            // InternalXcore.g:8962:1: ( 'get' )
            // InternalXcore.g:8963:1: 'get'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getGetKeyword_9_0_0()); 
            }
            match(input,20,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXReferenceAccess().getGetKeyword_9_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__Group_9_0__0__Impl"


    // $ANTLR start "rule__XReference__Group_9_0__1"
    // InternalXcore.g:8976:1: rule__XReference__Group_9_0__1 : rule__XReference__Group_9_0__1__Impl ;
    public final void rule__XReference__Group_9_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:8980:1: ( rule__XReference__Group_9_0__1__Impl )
            // InternalXcore.g:8981:2: rule__XReference__Group_9_0__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XReference__Group_9_0__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__Group_9_0__1"


    // $ANTLR start "rule__XReference__Group_9_0__1__Impl"
    // InternalXcore.g:8987:1: rule__XReference__Group_9_0__1__Impl : ( ( rule__XReference__GetBodyAssignment_9_0_1 ) ) ;
    public final void rule__XReference__Group_9_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:8991:1: ( ( ( rule__XReference__GetBodyAssignment_9_0_1 ) ) )
            // InternalXcore.g:8992:1: ( ( rule__XReference__GetBodyAssignment_9_0_1 ) )
            {
            // InternalXcore.g:8992:1: ( ( rule__XReference__GetBodyAssignment_9_0_1 ) )
            // InternalXcore.g:8993:1: ( rule__XReference__GetBodyAssignment_9_0_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getGetBodyAssignment_9_0_1()); 
            }
            // InternalXcore.g:8994:1: ( rule__XReference__GetBodyAssignment_9_0_1 )
            // InternalXcore.g:8994:2: rule__XReference__GetBodyAssignment_9_0_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XReference__GetBodyAssignment_9_0_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXReferenceAccess().getGetBodyAssignment_9_0_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__Group_9_0__1__Impl"


    // $ANTLR start "rule__XReference__Group_9_1__0"
    // InternalXcore.g:9008:1: rule__XReference__Group_9_1__0 : rule__XReference__Group_9_1__0__Impl rule__XReference__Group_9_1__1 ;
    public final void rule__XReference__Group_9_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:9012:1: ( rule__XReference__Group_9_1__0__Impl rule__XReference__Group_9_1__1 )
            // InternalXcore.g:9013:2: rule__XReference__Group_9_1__0__Impl rule__XReference__Group_9_1__1
            {
            pushFollow(FollowSets000.FOLLOW_26);
            rule__XReference__Group_9_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XReference__Group_9_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__Group_9_1__0"


    // $ANTLR start "rule__XReference__Group_9_1__0__Impl"
    // InternalXcore.g:9020:1: rule__XReference__Group_9_1__0__Impl : ( 'set' ) ;
    public final void rule__XReference__Group_9_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:9024:1: ( ( 'set' ) )
            // InternalXcore.g:9025:1: ( 'set' )
            {
            // InternalXcore.g:9025:1: ( 'set' )
            // InternalXcore.g:9026:1: 'set'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getSetKeyword_9_1_0()); 
            }
            match(input,22,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXReferenceAccess().getSetKeyword_9_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__Group_9_1__0__Impl"


    // $ANTLR start "rule__XReference__Group_9_1__1"
    // InternalXcore.g:9039:1: rule__XReference__Group_9_1__1 : rule__XReference__Group_9_1__1__Impl ;
    public final void rule__XReference__Group_9_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:9043:1: ( rule__XReference__Group_9_1__1__Impl )
            // InternalXcore.g:9044:2: rule__XReference__Group_9_1__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XReference__Group_9_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__Group_9_1__1"


    // $ANTLR start "rule__XReference__Group_9_1__1__Impl"
    // InternalXcore.g:9050:1: rule__XReference__Group_9_1__1__Impl : ( ( rule__XReference__SetBodyAssignment_9_1_1 ) ) ;
    public final void rule__XReference__Group_9_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:9054:1: ( ( ( rule__XReference__SetBodyAssignment_9_1_1 ) ) )
            // InternalXcore.g:9055:1: ( ( rule__XReference__SetBodyAssignment_9_1_1 ) )
            {
            // InternalXcore.g:9055:1: ( ( rule__XReference__SetBodyAssignment_9_1_1 ) )
            // InternalXcore.g:9056:1: ( rule__XReference__SetBodyAssignment_9_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getSetBodyAssignment_9_1_1()); 
            }
            // InternalXcore.g:9057:1: ( rule__XReference__SetBodyAssignment_9_1_1 )
            // InternalXcore.g:9057:2: rule__XReference__SetBodyAssignment_9_1_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XReference__SetBodyAssignment_9_1_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXReferenceAccess().getSetBodyAssignment_9_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__Group_9_1__1__Impl"


    // $ANTLR start "rule__XReference__Group_9_2__0"
    // InternalXcore.g:9071:1: rule__XReference__Group_9_2__0 : rule__XReference__Group_9_2__0__Impl rule__XReference__Group_9_2__1 ;
    public final void rule__XReference__Group_9_2__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:9075:1: ( rule__XReference__Group_9_2__0__Impl rule__XReference__Group_9_2__1 )
            // InternalXcore.g:9076:2: rule__XReference__Group_9_2__0__Impl rule__XReference__Group_9_2__1
            {
            pushFollow(FollowSets000.FOLLOW_26);
            rule__XReference__Group_9_2__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XReference__Group_9_2__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__Group_9_2__0"


    // $ANTLR start "rule__XReference__Group_9_2__0__Impl"
    // InternalXcore.g:9083:1: rule__XReference__Group_9_2__0__Impl : ( 'isSet' ) ;
    public final void rule__XReference__Group_9_2__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:9087:1: ( ( 'isSet' ) )
            // InternalXcore.g:9088:1: ( 'isSet' )
            {
            // InternalXcore.g:9088:1: ( 'isSet' )
            // InternalXcore.g:9089:1: 'isSet'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getIsSetKeyword_9_2_0()); 
            }
            match(input,21,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXReferenceAccess().getIsSetKeyword_9_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__Group_9_2__0__Impl"


    // $ANTLR start "rule__XReference__Group_9_2__1"
    // InternalXcore.g:9102:1: rule__XReference__Group_9_2__1 : rule__XReference__Group_9_2__1__Impl ;
    public final void rule__XReference__Group_9_2__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:9106:1: ( rule__XReference__Group_9_2__1__Impl )
            // InternalXcore.g:9107:2: rule__XReference__Group_9_2__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XReference__Group_9_2__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__Group_9_2__1"


    // $ANTLR start "rule__XReference__Group_9_2__1__Impl"
    // InternalXcore.g:9113:1: rule__XReference__Group_9_2__1__Impl : ( ( rule__XReference__IsSetBodyAssignment_9_2_1 ) ) ;
    public final void rule__XReference__Group_9_2__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:9117:1: ( ( ( rule__XReference__IsSetBodyAssignment_9_2_1 ) ) )
            // InternalXcore.g:9118:1: ( ( rule__XReference__IsSetBodyAssignment_9_2_1 ) )
            {
            // InternalXcore.g:9118:1: ( ( rule__XReference__IsSetBodyAssignment_9_2_1 ) )
            // InternalXcore.g:9119:1: ( rule__XReference__IsSetBodyAssignment_9_2_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getIsSetBodyAssignment_9_2_1()); 
            }
            // InternalXcore.g:9120:1: ( rule__XReference__IsSetBodyAssignment_9_2_1 )
            // InternalXcore.g:9120:2: rule__XReference__IsSetBodyAssignment_9_2_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XReference__IsSetBodyAssignment_9_2_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXReferenceAccess().getIsSetBodyAssignment_9_2_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__Group_9_2__1__Impl"


    // $ANTLR start "rule__XReference__Group_9_3__0"
    // InternalXcore.g:9134:1: rule__XReference__Group_9_3__0 : rule__XReference__Group_9_3__0__Impl rule__XReference__Group_9_3__1 ;
    public final void rule__XReference__Group_9_3__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:9138:1: ( rule__XReference__Group_9_3__0__Impl rule__XReference__Group_9_3__1 )
            // InternalXcore.g:9139:2: rule__XReference__Group_9_3__0__Impl rule__XReference__Group_9_3__1
            {
            pushFollow(FollowSets000.FOLLOW_26);
            rule__XReference__Group_9_3__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XReference__Group_9_3__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__Group_9_3__0"


    // $ANTLR start "rule__XReference__Group_9_3__0__Impl"
    // InternalXcore.g:9146:1: rule__XReference__Group_9_3__0__Impl : ( 'unset' ) ;
    public final void rule__XReference__Group_9_3__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:9150:1: ( ( 'unset' ) )
            // InternalXcore.g:9151:1: ( 'unset' )
            {
            // InternalXcore.g:9151:1: ( 'unset' )
            // InternalXcore.g:9152:1: 'unset'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getUnsetKeyword_9_3_0()); 
            }
            match(input,23,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXReferenceAccess().getUnsetKeyword_9_3_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__Group_9_3__0__Impl"


    // $ANTLR start "rule__XReference__Group_9_3__1"
    // InternalXcore.g:9165:1: rule__XReference__Group_9_3__1 : rule__XReference__Group_9_3__1__Impl ;
    public final void rule__XReference__Group_9_3__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:9169:1: ( rule__XReference__Group_9_3__1__Impl )
            // InternalXcore.g:9170:2: rule__XReference__Group_9_3__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XReference__Group_9_3__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__Group_9_3__1"


    // $ANTLR start "rule__XReference__Group_9_3__1__Impl"
    // InternalXcore.g:9176:1: rule__XReference__Group_9_3__1__Impl : ( ( rule__XReference__UnsetBodyAssignment_9_3_1 ) ) ;
    public final void rule__XReference__Group_9_3__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:9180:1: ( ( ( rule__XReference__UnsetBodyAssignment_9_3_1 ) ) )
            // InternalXcore.g:9181:1: ( ( rule__XReference__UnsetBodyAssignment_9_3_1 ) )
            {
            // InternalXcore.g:9181:1: ( ( rule__XReference__UnsetBodyAssignment_9_3_1 ) )
            // InternalXcore.g:9182:1: ( rule__XReference__UnsetBodyAssignment_9_3_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getUnsetBodyAssignment_9_3_1()); 
            }
            // InternalXcore.g:9183:1: ( rule__XReference__UnsetBodyAssignment_9_3_1 )
            // InternalXcore.g:9183:2: rule__XReference__UnsetBodyAssignment_9_3_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XReference__UnsetBodyAssignment_9_3_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXReferenceAccess().getUnsetBodyAssignment_9_3_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__Group_9_3__1__Impl"


    // $ANTLR start "rule__XOperation__Group__0"
    // InternalXcore.g:9197:1: rule__XOperation__Group__0 : rule__XOperation__Group__0__Impl rule__XOperation__Group__1 ;
    public final void rule__XOperation__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:9201:1: ( rule__XOperation__Group__0__Impl rule__XOperation__Group__1 )
            // InternalXcore.g:9202:2: rule__XOperation__Group__0__Impl rule__XOperation__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_50);
            rule__XOperation__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XOperation__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOperation__Group__0"


    // $ANTLR start "rule__XOperation__Group__0__Impl"
    // InternalXcore.g:9209:1: rule__XOperation__Group__0__Impl : ( () ) ;
    public final void rule__XOperation__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:9213:1: ( ( () ) )
            // InternalXcore.g:9214:1: ( () )
            {
            // InternalXcore.g:9214:1: ( () )
            // InternalXcore.g:9215:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getXOperationAction_0()); 
            }
            // InternalXcore.g:9216:1: ()
            // InternalXcore.g:9218:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXOperationAccess().getXOperationAction_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOperation__Group__0__Impl"


    // $ANTLR start "rule__XOperation__Group__1"
    // InternalXcore.g:9228:1: rule__XOperation__Group__1 : rule__XOperation__Group__1__Impl rule__XOperation__Group__2 ;
    public final void rule__XOperation__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:9232:1: ( rule__XOperation__Group__1__Impl rule__XOperation__Group__2 )
            // InternalXcore.g:9233:2: rule__XOperation__Group__1__Impl rule__XOperation__Group__2
            {
            pushFollow(FollowSets000.FOLLOW_50);
            rule__XOperation__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XOperation__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOperation__Group__1"


    // $ANTLR start "rule__XOperation__Group__1__Impl"
    // InternalXcore.g:9240:1: rule__XOperation__Group__1__Impl : ( ( rule__XOperation__AnnotationsAssignment_1 )* ) ;
    public final void rule__XOperation__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:9244:1: ( ( ( rule__XOperation__AnnotationsAssignment_1 )* ) )
            // InternalXcore.g:9245:1: ( ( rule__XOperation__AnnotationsAssignment_1 )* )
            {
            // InternalXcore.g:9245:1: ( ( rule__XOperation__AnnotationsAssignment_1 )* )
            // InternalXcore.g:9246:1: ( rule__XOperation__AnnotationsAssignment_1 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getAnnotationsAssignment_1()); 
            }
            // InternalXcore.g:9247:1: ( rule__XOperation__AnnotationsAssignment_1 )*
            loop91:
            do {
                int alt91=2;
                int LA91_0 = input.LA(1);

                if ( (LA91_0==84) ) {
                    alt91=1;
                }


                switch (alt91) {
            	case 1 :
            	    // InternalXcore.g:9247:2: rule__XOperation__AnnotationsAssignment_1
            	    {
            	    pushFollow(FollowSets000.FOLLOW_5);
            	    rule__XOperation__AnnotationsAssignment_1();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop91;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXOperationAccess().getAnnotationsAssignment_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOperation__Group__1__Impl"


    // $ANTLR start "rule__XOperation__Group__2"
    // InternalXcore.g:9257:1: rule__XOperation__Group__2 : rule__XOperation__Group__2__Impl rule__XOperation__Group__3 ;
    public final void rule__XOperation__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:9261:1: ( rule__XOperation__Group__2__Impl rule__XOperation__Group__3 )
            // InternalXcore.g:9262:2: rule__XOperation__Group__2__Impl rule__XOperation__Group__3
            {
            pushFollow(FollowSets000.FOLLOW_51);
            rule__XOperation__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XOperation__Group__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOperation__Group__2"


    // $ANTLR start "rule__XOperation__Group__2__Impl"
    // InternalXcore.g:9269:1: rule__XOperation__Group__2__Impl : ( 'op' ) ;
    public final void rule__XOperation__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:9273:1: ( ( 'op' ) )
            // InternalXcore.g:9274:1: ( 'op' )
            {
            // InternalXcore.g:9274:1: ( 'op' )
            // InternalXcore.g:9275:1: 'op'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getOpKeyword_2()); 
            }
            match(input,41,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXOperationAccess().getOpKeyword_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOperation__Group__2__Impl"


    // $ANTLR start "rule__XOperation__Group__3"
    // InternalXcore.g:9288:1: rule__XOperation__Group__3 : rule__XOperation__Group__3__Impl rule__XOperation__Group__4 ;
    public final void rule__XOperation__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:9292:1: ( rule__XOperation__Group__3__Impl rule__XOperation__Group__4 )
            // InternalXcore.g:9293:2: rule__XOperation__Group__3__Impl rule__XOperation__Group__4
            {
            pushFollow(FollowSets000.FOLLOW_51);
            rule__XOperation__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XOperation__Group__4();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOperation__Group__3"


    // $ANTLR start "rule__XOperation__Group__3__Impl"
    // InternalXcore.g:9300:1: rule__XOperation__Group__3__Impl : ( ( rule__XOperation__Alternatives_3 )? ) ;
    public final void rule__XOperation__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:9304:1: ( ( ( rule__XOperation__Alternatives_3 )? ) )
            // InternalXcore.g:9305:1: ( ( rule__XOperation__Alternatives_3 )? )
            {
            // InternalXcore.g:9305:1: ( ( rule__XOperation__Alternatives_3 )? )
            // InternalXcore.g:9306:1: ( rule__XOperation__Alternatives_3 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getAlternatives_3()); 
            }
            // InternalXcore.g:9307:1: ( rule__XOperation__Alternatives_3 )?
            int alt92=2;
            int LA92_0 = input.LA(1);

            if ( ((LA92_0>=50 && LA92_0<=51)) ) {
                alt92=1;
            }
            switch (alt92) {
                case 1 :
                    // InternalXcore.g:9307:2: rule__XOperation__Alternatives_3
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XOperation__Alternatives_3();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXOperationAccess().getAlternatives_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOperation__Group__3__Impl"


    // $ANTLR start "rule__XOperation__Group__4"
    // InternalXcore.g:9317:1: rule__XOperation__Group__4 : rule__XOperation__Group__4__Impl rule__XOperation__Group__5 ;
    public final void rule__XOperation__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:9321:1: ( rule__XOperation__Group__4__Impl rule__XOperation__Group__5 )
            // InternalXcore.g:9322:2: rule__XOperation__Group__4__Impl rule__XOperation__Group__5
            {
            pushFollow(FollowSets000.FOLLOW_51);
            rule__XOperation__Group__4__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XOperation__Group__5();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOperation__Group__4"


    // $ANTLR start "rule__XOperation__Group__4__Impl"
    // InternalXcore.g:9329:1: rule__XOperation__Group__4__Impl : ( ( rule__XOperation__Group_4__0 )? ) ;
    public final void rule__XOperation__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:9333:1: ( ( ( rule__XOperation__Group_4__0 )? ) )
            // InternalXcore.g:9334:1: ( ( rule__XOperation__Group_4__0 )? )
            {
            // InternalXcore.g:9334:1: ( ( rule__XOperation__Group_4__0 )? )
            // InternalXcore.g:9335:1: ( rule__XOperation__Group_4__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getGroup_4()); 
            }
            // InternalXcore.g:9336:1: ( rule__XOperation__Group_4__0 )?
            int alt93=2;
            int LA93_0 = input.LA(1);

            if ( (LA93_0==66) ) {
                alt93=1;
            }
            switch (alt93) {
                case 1 :
                    // InternalXcore.g:9336:2: rule__XOperation__Group_4__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XOperation__Group_4__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXOperationAccess().getGroup_4()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOperation__Group__4__Impl"


    // $ANTLR start "rule__XOperation__Group__5"
    // InternalXcore.g:9346:1: rule__XOperation__Group__5 : rule__XOperation__Group__5__Impl rule__XOperation__Group__6 ;
    public final void rule__XOperation__Group__5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:9350:1: ( rule__XOperation__Group__5__Impl rule__XOperation__Group__6 )
            // InternalXcore.g:9351:2: rule__XOperation__Group__5__Impl rule__XOperation__Group__6
            {
            pushFollow(FollowSets000.FOLLOW_40);
            rule__XOperation__Group__5__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XOperation__Group__6();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOperation__Group__5"


    // $ANTLR start "rule__XOperation__Group__5__Impl"
    // InternalXcore.g:9358:1: rule__XOperation__Group__5__Impl : ( ( rule__XOperation__Alternatives_5 ) ) ;
    public final void rule__XOperation__Group__5__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:9362:1: ( ( ( rule__XOperation__Alternatives_5 ) ) )
            // InternalXcore.g:9363:1: ( ( rule__XOperation__Alternatives_5 ) )
            {
            // InternalXcore.g:9363:1: ( ( rule__XOperation__Alternatives_5 ) )
            // InternalXcore.g:9364:1: ( rule__XOperation__Alternatives_5 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getAlternatives_5()); 
            }
            // InternalXcore.g:9365:1: ( rule__XOperation__Alternatives_5 )
            // InternalXcore.g:9365:2: rule__XOperation__Alternatives_5
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XOperation__Alternatives_5();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXOperationAccess().getAlternatives_5()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOperation__Group__5__Impl"


    // $ANTLR start "rule__XOperation__Group__6"
    // InternalXcore.g:9375:1: rule__XOperation__Group__6 : rule__XOperation__Group__6__Impl rule__XOperation__Group__7 ;
    public final void rule__XOperation__Group__6() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:9379:1: ( rule__XOperation__Group__6__Impl rule__XOperation__Group__7 )
            // InternalXcore.g:9380:2: rule__XOperation__Group__6__Impl rule__XOperation__Group__7
            {
            pushFollow(FollowSets000.FOLLOW_40);
            rule__XOperation__Group__6__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XOperation__Group__7();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOperation__Group__6"


    // $ANTLR start "rule__XOperation__Group__6__Impl"
    // InternalXcore.g:9387:1: rule__XOperation__Group__6__Impl : ( ( rule__XOperation__MultiplicityAssignment_6 )? ) ;
    public final void rule__XOperation__Group__6__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:9391:1: ( ( ( rule__XOperation__MultiplicityAssignment_6 )? ) )
            // InternalXcore.g:9392:1: ( ( rule__XOperation__MultiplicityAssignment_6 )? )
            {
            // InternalXcore.g:9392:1: ( ( rule__XOperation__MultiplicityAssignment_6 )? )
            // InternalXcore.g:9393:1: ( rule__XOperation__MultiplicityAssignment_6 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getMultiplicityAssignment_6()); 
            }
            // InternalXcore.g:9394:1: ( rule__XOperation__MultiplicityAssignment_6 )?
            int alt94=2;
            int LA94_0 = input.LA(1);

            if ( (LA94_0==92) ) {
                alt94=1;
            }
            switch (alt94) {
                case 1 :
                    // InternalXcore.g:9394:2: rule__XOperation__MultiplicityAssignment_6
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XOperation__MultiplicityAssignment_6();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXOperationAccess().getMultiplicityAssignment_6()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOperation__Group__6__Impl"


    // $ANTLR start "rule__XOperation__Group__7"
    // InternalXcore.g:9404:1: rule__XOperation__Group__7 : rule__XOperation__Group__7__Impl rule__XOperation__Group__8 ;
    public final void rule__XOperation__Group__7() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:9408:1: ( rule__XOperation__Group__7__Impl rule__XOperation__Group__8 )
            // InternalXcore.g:9409:2: rule__XOperation__Group__7__Impl rule__XOperation__Group__8
            {
            pushFollow(FollowSets000.FOLLOW_12);
            rule__XOperation__Group__7__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XOperation__Group__8();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOperation__Group__7"


    // $ANTLR start "rule__XOperation__Group__7__Impl"
    // InternalXcore.g:9416:1: rule__XOperation__Group__7__Impl : ( ( rule__XOperation__NameAssignment_7 ) ) ;
    public final void rule__XOperation__Group__7__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:9420:1: ( ( ( rule__XOperation__NameAssignment_7 ) ) )
            // InternalXcore.g:9421:1: ( ( rule__XOperation__NameAssignment_7 ) )
            {
            // InternalXcore.g:9421:1: ( ( rule__XOperation__NameAssignment_7 ) )
            // InternalXcore.g:9422:1: ( rule__XOperation__NameAssignment_7 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getNameAssignment_7()); 
            }
            // InternalXcore.g:9423:1: ( rule__XOperation__NameAssignment_7 )
            // InternalXcore.g:9423:2: rule__XOperation__NameAssignment_7
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XOperation__NameAssignment_7();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXOperationAccess().getNameAssignment_7()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOperation__Group__7__Impl"


    // $ANTLR start "rule__XOperation__Group__8"
    // InternalXcore.g:9433:1: rule__XOperation__Group__8 : rule__XOperation__Group__8__Impl rule__XOperation__Group__9 ;
    public final void rule__XOperation__Group__8() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:9437:1: ( rule__XOperation__Group__8__Impl rule__XOperation__Group__9 )
            // InternalXcore.g:9438:2: rule__XOperation__Group__8__Impl rule__XOperation__Group__9
            {
            pushFollow(FollowSets000.FOLLOW_52);
            rule__XOperation__Group__8__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XOperation__Group__9();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOperation__Group__8"


    // $ANTLR start "rule__XOperation__Group__8__Impl"
    // InternalXcore.g:9445:1: rule__XOperation__Group__8__Impl : ( '(' ) ;
    public final void rule__XOperation__Group__8__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:9449:1: ( ( '(' ) )
            // InternalXcore.g:9450:1: ( '(' )
            {
            // InternalXcore.g:9450:1: ( '(' )
            // InternalXcore.g:9451:1: '('
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getLeftParenthesisKeyword_8()); 
            }
            match(input,85,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXOperationAccess().getLeftParenthesisKeyword_8()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOperation__Group__8__Impl"


    // $ANTLR start "rule__XOperation__Group__9"
    // InternalXcore.g:9464:1: rule__XOperation__Group__9 : rule__XOperation__Group__9__Impl rule__XOperation__Group__10 ;
    public final void rule__XOperation__Group__9() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:9468:1: ( rule__XOperation__Group__9__Impl rule__XOperation__Group__10 )
            // InternalXcore.g:9469:2: rule__XOperation__Group__9__Impl rule__XOperation__Group__10
            {
            pushFollow(FollowSets000.FOLLOW_52);
            rule__XOperation__Group__9__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XOperation__Group__10();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOperation__Group__9"


    // $ANTLR start "rule__XOperation__Group__9__Impl"
    // InternalXcore.g:9476:1: rule__XOperation__Group__9__Impl : ( ( rule__XOperation__Group_9__0 )? ) ;
    public final void rule__XOperation__Group__9__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:9480:1: ( ( ( rule__XOperation__Group_9__0 )? ) )
            // InternalXcore.g:9481:1: ( ( rule__XOperation__Group_9__0 )? )
            {
            // InternalXcore.g:9481:1: ( ( rule__XOperation__Group_9__0 )? )
            // InternalXcore.g:9482:1: ( rule__XOperation__Group_9__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getGroup_9()); 
            }
            // InternalXcore.g:9483:1: ( rule__XOperation__Group_9__0 )?
            int alt95=2;
            int LA95_0 = input.LA(1);

            if ( (LA95_0==RULE_ID||(LA95_0>=20 && LA95_0<=23)||(LA95_0>=50 && LA95_0<=51)||LA95_0==84) ) {
                alt95=1;
            }
            switch (alt95) {
                case 1 :
                    // InternalXcore.g:9483:2: rule__XOperation__Group_9__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XOperation__Group_9__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXOperationAccess().getGroup_9()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOperation__Group__9__Impl"


    // $ANTLR start "rule__XOperation__Group__10"
    // InternalXcore.g:9493:1: rule__XOperation__Group__10 : rule__XOperation__Group__10__Impl rule__XOperation__Group__11 ;
    public final void rule__XOperation__Group__10() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:9497:1: ( rule__XOperation__Group__10__Impl rule__XOperation__Group__11 )
            // InternalXcore.g:9498:2: rule__XOperation__Group__10__Impl rule__XOperation__Group__11
            {
            pushFollow(FollowSets000.FOLLOW_53);
            rule__XOperation__Group__10__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XOperation__Group__11();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOperation__Group__10"


    // $ANTLR start "rule__XOperation__Group__10__Impl"
    // InternalXcore.g:9505:1: rule__XOperation__Group__10__Impl : ( ')' ) ;
    public final void rule__XOperation__Group__10__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:9509:1: ( ( ')' ) )
            // InternalXcore.g:9510:1: ( ')' )
            {
            // InternalXcore.g:9510:1: ( ')' )
            // InternalXcore.g:9511:1: ')'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getRightParenthesisKeyword_10()); 
            }
            match(input,86,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXOperationAccess().getRightParenthesisKeyword_10()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOperation__Group__10__Impl"


    // $ANTLR start "rule__XOperation__Group__11"
    // InternalXcore.g:9524:1: rule__XOperation__Group__11 : rule__XOperation__Group__11__Impl rule__XOperation__Group__12 ;
    public final void rule__XOperation__Group__11() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:9528:1: ( rule__XOperation__Group__11__Impl rule__XOperation__Group__12 )
            // InternalXcore.g:9529:2: rule__XOperation__Group__11__Impl rule__XOperation__Group__12
            {
            pushFollow(FollowSets000.FOLLOW_53);
            rule__XOperation__Group__11__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XOperation__Group__12();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOperation__Group__11"


    // $ANTLR start "rule__XOperation__Group__11__Impl"
    // InternalXcore.g:9536:1: rule__XOperation__Group__11__Impl : ( ( rule__XOperation__Group_11__0 )? ) ;
    public final void rule__XOperation__Group__11__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:9540:1: ( ( ( rule__XOperation__Group_11__0 )? ) )
            // InternalXcore.g:9541:1: ( ( rule__XOperation__Group_11__0 )? )
            {
            // InternalXcore.g:9541:1: ( ( rule__XOperation__Group_11__0 )? )
            // InternalXcore.g:9542:1: ( rule__XOperation__Group_11__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getGroup_11()); 
            }
            // InternalXcore.g:9543:1: ( rule__XOperation__Group_11__0 )?
            int alt96=2;
            int LA96_0 = input.LA(1);

            if ( (LA96_0==48) ) {
                alt96=1;
            }
            switch (alt96) {
                case 1 :
                    // InternalXcore.g:9543:2: rule__XOperation__Group_11__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XOperation__Group_11__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXOperationAccess().getGroup_11()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOperation__Group__11__Impl"


    // $ANTLR start "rule__XOperation__Group__12"
    // InternalXcore.g:9553:1: rule__XOperation__Group__12 : rule__XOperation__Group__12__Impl ;
    public final void rule__XOperation__Group__12() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:9557:1: ( rule__XOperation__Group__12__Impl )
            // InternalXcore.g:9558:2: rule__XOperation__Group__12__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XOperation__Group__12__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOperation__Group__12"


    // $ANTLR start "rule__XOperation__Group__12__Impl"
    // InternalXcore.g:9564:1: rule__XOperation__Group__12__Impl : ( ( rule__XOperation__BodyAssignment_12 )? ) ;
    public final void rule__XOperation__Group__12__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:9568:1: ( ( ( rule__XOperation__BodyAssignment_12 )? ) )
            // InternalXcore.g:9569:1: ( ( rule__XOperation__BodyAssignment_12 )? )
            {
            // InternalXcore.g:9569:1: ( ( rule__XOperation__BodyAssignment_12 )? )
            // InternalXcore.g:9570:1: ( rule__XOperation__BodyAssignment_12 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getBodyAssignment_12()); 
            }
            // InternalXcore.g:9571:1: ( rule__XOperation__BodyAssignment_12 )?
            int alt97=2;
            int LA97_0 = input.LA(1);

            if ( (LA97_0==89) ) {
                alt97=1;
            }
            switch (alt97) {
                case 1 :
                    // InternalXcore.g:9571:2: rule__XOperation__BodyAssignment_12
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XOperation__BodyAssignment_12();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXOperationAccess().getBodyAssignment_12()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOperation__Group__12__Impl"


    // $ANTLR start "rule__XOperation__Group_3_0__0"
    // InternalXcore.g:9607:1: rule__XOperation__Group_3_0__0 : rule__XOperation__Group_3_0__0__Impl rule__XOperation__Group_3_0__1 ;
    public final void rule__XOperation__Group_3_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:9611:1: ( rule__XOperation__Group_3_0__0__Impl rule__XOperation__Group_3_0__1 )
            // InternalXcore.g:9612:2: rule__XOperation__Group_3_0__0__Impl rule__XOperation__Group_3_0__1
            {
            pushFollow(FollowSets000.FOLLOW_54);
            rule__XOperation__Group_3_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XOperation__Group_3_0__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOperation__Group_3_0__0"


    // $ANTLR start "rule__XOperation__Group_3_0__0__Impl"
    // InternalXcore.g:9619:1: rule__XOperation__Group_3_0__0__Impl : ( ( rule__XOperation__UnorderedAssignment_3_0_0 ) ) ;
    public final void rule__XOperation__Group_3_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:9623:1: ( ( ( rule__XOperation__UnorderedAssignment_3_0_0 ) ) )
            // InternalXcore.g:9624:1: ( ( rule__XOperation__UnorderedAssignment_3_0_0 ) )
            {
            // InternalXcore.g:9624:1: ( ( rule__XOperation__UnorderedAssignment_3_0_0 ) )
            // InternalXcore.g:9625:1: ( rule__XOperation__UnorderedAssignment_3_0_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getUnorderedAssignment_3_0_0()); 
            }
            // InternalXcore.g:9626:1: ( rule__XOperation__UnorderedAssignment_3_0_0 )
            // InternalXcore.g:9626:2: rule__XOperation__UnorderedAssignment_3_0_0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XOperation__UnorderedAssignment_3_0_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXOperationAccess().getUnorderedAssignment_3_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOperation__Group_3_0__0__Impl"


    // $ANTLR start "rule__XOperation__Group_3_0__1"
    // InternalXcore.g:9636:1: rule__XOperation__Group_3_0__1 : rule__XOperation__Group_3_0__1__Impl ;
    public final void rule__XOperation__Group_3_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:9640:1: ( rule__XOperation__Group_3_0__1__Impl )
            // InternalXcore.g:9641:2: rule__XOperation__Group_3_0__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XOperation__Group_3_0__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOperation__Group_3_0__1"


    // $ANTLR start "rule__XOperation__Group_3_0__1__Impl"
    // InternalXcore.g:9647:1: rule__XOperation__Group_3_0__1__Impl : ( ( rule__XOperation__UniqueAssignment_3_0_1 )? ) ;
    public final void rule__XOperation__Group_3_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:9651:1: ( ( ( rule__XOperation__UniqueAssignment_3_0_1 )? ) )
            // InternalXcore.g:9652:1: ( ( rule__XOperation__UniqueAssignment_3_0_1 )? )
            {
            // InternalXcore.g:9652:1: ( ( rule__XOperation__UniqueAssignment_3_0_1 )? )
            // InternalXcore.g:9653:1: ( rule__XOperation__UniqueAssignment_3_0_1 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getUniqueAssignment_3_0_1()); 
            }
            // InternalXcore.g:9654:1: ( rule__XOperation__UniqueAssignment_3_0_1 )?
            int alt98=2;
            int LA98_0 = input.LA(1);

            if ( (LA98_0==50) ) {
                alt98=1;
            }
            switch (alt98) {
                case 1 :
                    // InternalXcore.g:9654:2: rule__XOperation__UniqueAssignment_3_0_1
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XOperation__UniqueAssignment_3_0_1();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXOperationAccess().getUniqueAssignment_3_0_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOperation__Group_3_0__1__Impl"


    // $ANTLR start "rule__XOperation__Group_3_1__0"
    // InternalXcore.g:9668:1: rule__XOperation__Group_3_1__0 : rule__XOperation__Group_3_1__0__Impl rule__XOperation__Group_3_1__1 ;
    public final void rule__XOperation__Group_3_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:9672:1: ( rule__XOperation__Group_3_1__0__Impl rule__XOperation__Group_3_1__1 )
            // InternalXcore.g:9673:2: rule__XOperation__Group_3_1__0__Impl rule__XOperation__Group_3_1__1
            {
            pushFollow(FollowSets000.FOLLOW_55);
            rule__XOperation__Group_3_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XOperation__Group_3_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOperation__Group_3_1__0"


    // $ANTLR start "rule__XOperation__Group_3_1__0__Impl"
    // InternalXcore.g:9680:1: rule__XOperation__Group_3_1__0__Impl : ( ( rule__XOperation__UniqueAssignment_3_1_0 ) ) ;
    public final void rule__XOperation__Group_3_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:9684:1: ( ( ( rule__XOperation__UniqueAssignment_3_1_0 ) ) )
            // InternalXcore.g:9685:1: ( ( rule__XOperation__UniqueAssignment_3_1_0 ) )
            {
            // InternalXcore.g:9685:1: ( ( rule__XOperation__UniqueAssignment_3_1_0 ) )
            // InternalXcore.g:9686:1: ( rule__XOperation__UniqueAssignment_3_1_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getUniqueAssignment_3_1_0()); 
            }
            // InternalXcore.g:9687:1: ( rule__XOperation__UniqueAssignment_3_1_0 )
            // InternalXcore.g:9687:2: rule__XOperation__UniqueAssignment_3_1_0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XOperation__UniqueAssignment_3_1_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXOperationAccess().getUniqueAssignment_3_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOperation__Group_3_1__0__Impl"


    // $ANTLR start "rule__XOperation__Group_3_1__1"
    // InternalXcore.g:9697:1: rule__XOperation__Group_3_1__1 : rule__XOperation__Group_3_1__1__Impl ;
    public final void rule__XOperation__Group_3_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:9701:1: ( rule__XOperation__Group_3_1__1__Impl )
            // InternalXcore.g:9702:2: rule__XOperation__Group_3_1__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XOperation__Group_3_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOperation__Group_3_1__1"


    // $ANTLR start "rule__XOperation__Group_3_1__1__Impl"
    // InternalXcore.g:9708:1: rule__XOperation__Group_3_1__1__Impl : ( ( rule__XOperation__UnorderedAssignment_3_1_1 )? ) ;
    public final void rule__XOperation__Group_3_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:9712:1: ( ( ( rule__XOperation__UnorderedAssignment_3_1_1 )? ) )
            // InternalXcore.g:9713:1: ( ( rule__XOperation__UnorderedAssignment_3_1_1 )? )
            {
            // InternalXcore.g:9713:1: ( ( rule__XOperation__UnorderedAssignment_3_1_1 )? )
            // InternalXcore.g:9714:1: ( rule__XOperation__UnorderedAssignment_3_1_1 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getUnorderedAssignment_3_1_1()); 
            }
            // InternalXcore.g:9715:1: ( rule__XOperation__UnorderedAssignment_3_1_1 )?
            int alt99=2;
            int LA99_0 = input.LA(1);

            if ( (LA99_0==51) ) {
                alt99=1;
            }
            switch (alt99) {
                case 1 :
                    // InternalXcore.g:9715:2: rule__XOperation__UnorderedAssignment_3_1_1
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XOperation__UnorderedAssignment_3_1_1();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXOperationAccess().getUnorderedAssignment_3_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOperation__Group_3_1__1__Impl"


    // $ANTLR start "rule__XOperation__Group_4__0"
    // InternalXcore.g:9729:1: rule__XOperation__Group_4__0 : rule__XOperation__Group_4__0__Impl rule__XOperation__Group_4__1 ;
    public final void rule__XOperation__Group_4__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:9733:1: ( rule__XOperation__Group_4__0__Impl rule__XOperation__Group_4__1 )
            // InternalXcore.g:9734:2: rule__XOperation__Group_4__0__Impl rule__XOperation__Group_4__1
            {
            pushFollow(FollowSets000.FOLLOW_24);
            rule__XOperation__Group_4__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XOperation__Group_4__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOperation__Group_4__0"


    // $ANTLR start "rule__XOperation__Group_4__0__Impl"
    // InternalXcore.g:9741:1: rule__XOperation__Group_4__0__Impl : ( '<' ) ;
    public final void rule__XOperation__Group_4__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:9745:1: ( ( '<' ) )
            // InternalXcore.g:9746:1: ( '<' )
            {
            // InternalXcore.g:9746:1: ( '<' )
            // InternalXcore.g:9747:1: '<'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getLessThanSignKeyword_4_0()); 
            }
            match(input,66,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXOperationAccess().getLessThanSignKeyword_4_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOperation__Group_4__0__Impl"


    // $ANTLR start "rule__XOperation__Group_4__1"
    // InternalXcore.g:9760:1: rule__XOperation__Group_4__1 : rule__XOperation__Group_4__1__Impl rule__XOperation__Group_4__2 ;
    public final void rule__XOperation__Group_4__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:9764:1: ( rule__XOperation__Group_4__1__Impl rule__XOperation__Group_4__2 )
            // InternalXcore.g:9765:2: rule__XOperation__Group_4__1__Impl rule__XOperation__Group_4__2
            {
            pushFollow(FollowSets000.FOLLOW_25);
            rule__XOperation__Group_4__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XOperation__Group_4__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOperation__Group_4__1"


    // $ANTLR start "rule__XOperation__Group_4__1__Impl"
    // InternalXcore.g:9772:1: rule__XOperation__Group_4__1__Impl : ( ( rule__XOperation__TypeParametersAssignment_4_1 ) ) ;
    public final void rule__XOperation__Group_4__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:9776:1: ( ( ( rule__XOperation__TypeParametersAssignment_4_1 ) ) )
            // InternalXcore.g:9777:1: ( ( rule__XOperation__TypeParametersAssignment_4_1 ) )
            {
            // InternalXcore.g:9777:1: ( ( rule__XOperation__TypeParametersAssignment_4_1 ) )
            // InternalXcore.g:9778:1: ( rule__XOperation__TypeParametersAssignment_4_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getTypeParametersAssignment_4_1()); 
            }
            // InternalXcore.g:9779:1: ( rule__XOperation__TypeParametersAssignment_4_1 )
            // InternalXcore.g:9779:2: rule__XOperation__TypeParametersAssignment_4_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XOperation__TypeParametersAssignment_4_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXOperationAccess().getTypeParametersAssignment_4_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOperation__Group_4__1__Impl"


    // $ANTLR start "rule__XOperation__Group_4__2"
    // InternalXcore.g:9789:1: rule__XOperation__Group_4__2 : rule__XOperation__Group_4__2__Impl rule__XOperation__Group_4__3 ;
    public final void rule__XOperation__Group_4__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:9793:1: ( rule__XOperation__Group_4__2__Impl rule__XOperation__Group_4__3 )
            // InternalXcore.g:9794:2: rule__XOperation__Group_4__2__Impl rule__XOperation__Group_4__3
            {
            pushFollow(FollowSets000.FOLLOW_25);
            rule__XOperation__Group_4__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XOperation__Group_4__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOperation__Group_4__2"


    // $ANTLR start "rule__XOperation__Group_4__2__Impl"
    // InternalXcore.g:9801:1: rule__XOperation__Group_4__2__Impl : ( ( rule__XOperation__Group_4_2__0 )* ) ;
    public final void rule__XOperation__Group_4__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:9805:1: ( ( ( rule__XOperation__Group_4_2__0 )* ) )
            // InternalXcore.g:9806:1: ( ( rule__XOperation__Group_4_2__0 )* )
            {
            // InternalXcore.g:9806:1: ( ( rule__XOperation__Group_4_2__0 )* )
            // InternalXcore.g:9807:1: ( rule__XOperation__Group_4_2__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getGroup_4_2()); 
            }
            // InternalXcore.g:9808:1: ( rule__XOperation__Group_4_2__0 )*
            loop100:
            do {
                int alt100=2;
                int LA100_0 = input.LA(1);

                if ( (LA100_0==87) ) {
                    alt100=1;
                }


                switch (alt100) {
            	case 1 :
            	    // InternalXcore.g:9808:2: rule__XOperation__Group_4_2__0
            	    {
            	    pushFollow(FollowSets000.FOLLOW_14);
            	    rule__XOperation__Group_4_2__0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop100;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXOperationAccess().getGroup_4_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOperation__Group_4__2__Impl"


    // $ANTLR start "rule__XOperation__Group_4__3"
    // InternalXcore.g:9818:1: rule__XOperation__Group_4__3 : rule__XOperation__Group_4__3__Impl ;
    public final void rule__XOperation__Group_4__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:9822:1: ( rule__XOperation__Group_4__3__Impl )
            // InternalXcore.g:9823:2: rule__XOperation__Group_4__3__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XOperation__Group_4__3__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOperation__Group_4__3"


    // $ANTLR start "rule__XOperation__Group_4__3__Impl"
    // InternalXcore.g:9829:1: rule__XOperation__Group_4__3__Impl : ( '>' ) ;
    public final void rule__XOperation__Group_4__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:9833:1: ( ( '>' ) )
            // InternalXcore.g:9834:1: ( '>' )
            {
            // InternalXcore.g:9834:1: ( '>' )
            // InternalXcore.g:9835:1: '>'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getGreaterThanSignKeyword_4_3()); 
            }
            match(input,65,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXOperationAccess().getGreaterThanSignKeyword_4_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOperation__Group_4__3__Impl"


    // $ANTLR start "rule__XOperation__Group_4_2__0"
    // InternalXcore.g:9856:1: rule__XOperation__Group_4_2__0 : rule__XOperation__Group_4_2__0__Impl rule__XOperation__Group_4_2__1 ;
    public final void rule__XOperation__Group_4_2__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:9860:1: ( rule__XOperation__Group_4_2__0__Impl rule__XOperation__Group_4_2__1 )
            // InternalXcore.g:9861:2: rule__XOperation__Group_4_2__0__Impl rule__XOperation__Group_4_2__1
            {
            pushFollow(FollowSets000.FOLLOW_24);
            rule__XOperation__Group_4_2__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XOperation__Group_4_2__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOperation__Group_4_2__0"


    // $ANTLR start "rule__XOperation__Group_4_2__0__Impl"
    // InternalXcore.g:9868:1: rule__XOperation__Group_4_2__0__Impl : ( ',' ) ;
    public final void rule__XOperation__Group_4_2__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:9872:1: ( ( ',' ) )
            // InternalXcore.g:9873:1: ( ',' )
            {
            // InternalXcore.g:9873:1: ( ',' )
            // InternalXcore.g:9874:1: ','
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getCommaKeyword_4_2_0()); 
            }
            match(input,87,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXOperationAccess().getCommaKeyword_4_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOperation__Group_4_2__0__Impl"


    // $ANTLR start "rule__XOperation__Group_4_2__1"
    // InternalXcore.g:9887:1: rule__XOperation__Group_4_2__1 : rule__XOperation__Group_4_2__1__Impl ;
    public final void rule__XOperation__Group_4_2__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:9891:1: ( rule__XOperation__Group_4_2__1__Impl )
            // InternalXcore.g:9892:2: rule__XOperation__Group_4_2__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XOperation__Group_4_2__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOperation__Group_4_2__1"


    // $ANTLR start "rule__XOperation__Group_4_2__1__Impl"
    // InternalXcore.g:9898:1: rule__XOperation__Group_4_2__1__Impl : ( ( rule__XOperation__TypeParametersAssignment_4_2_1 ) ) ;
    public final void rule__XOperation__Group_4_2__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:9902:1: ( ( ( rule__XOperation__TypeParametersAssignment_4_2_1 ) ) )
            // InternalXcore.g:9903:1: ( ( rule__XOperation__TypeParametersAssignment_4_2_1 ) )
            {
            // InternalXcore.g:9903:1: ( ( rule__XOperation__TypeParametersAssignment_4_2_1 ) )
            // InternalXcore.g:9904:1: ( rule__XOperation__TypeParametersAssignment_4_2_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getTypeParametersAssignment_4_2_1()); 
            }
            // InternalXcore.g:9905:1: ( rule__XOperation__TypeParametersAssignment_4_2_1 )
            // InternalXcore.g:9905:2: rule__XOperation__TypeParametersAssignment_4_2_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XOperation__TypeParametersAssignment_4_2_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXOperationAccess().getTypeParametersAssignment_4_2_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOperation__Group_4_2__1__Impl"


    // $ANTLR start "rule__XOperation__Group_9__0"
    // InternalXcore.g:9919:1: rule__XOperation__Group_9__0 : rule__XOperation__Group_9__0__Impl rule__XOperation__Group_9__1 ;
    public final void rule__XOperation__Group_9__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:9923:1: ( rule__XOperation__Group_9__0__Impl rule__XOperation__Group_9__1 )
            // InternalXcore.g:9924:2: rule__XOperation__Group_9__0__Impl rule__XOperation__Group_9__1
            {
            pushFollow(FollowSets000.FOLLOW_38);
            rule__XOperation__Group_9__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XOperation__Group_9__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOperation__Group_9__0"


    // $ANTLR start "rule__XOperation__Group_9__0__Impl"
    // InternalXcore.g:9931:1: rule__XOperation__Group_9__0__Impl : ( ( rule__XOperation__ParametersAssignment_9_0 ) ) ;
    public final void rule__XOperation__Group_9__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:9935:1: ( ( ( rule__XOperation__ParametersAssignment_9_0 ) ) )
            // InternalXcore.g:9936:1: ( ( rule__XOperation__ParametersAssignment_9_0 ) )
            {
            // InternalXcore.g:9936:1: ( ( rule__XOperation__ParametersAssignment_9_0 ) )
            // InternalXcore.g:9937:1: ( rule__XOperation__ParametersAssignment_9_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getParametersAssignment_9_0()); 
            }
            // InternalXcore.g:9938:1: ( rule__XOperation__ParametersAssignment_9_0 )
            // InternalXcore.g:9938:2: rule__XOperation__ParametersAssignment_9_0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XOperation__ParametersAssignment_9_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXOperationAccess().getParametersAssignment_9_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOperation__Group_9__0__Impl"


    // $ANTLR start "rule__XOperation__Group_9__1"
    // InternalXcore.g:9948:1: rule__XOperation__Group_9__1 : rule__XOperation__Group_9__1__Impl ;
    public final void rule__XOperation__Group_9__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:9952:1: ( rule__XOperation__Group_9__1__Impl )
            // InternalXcore.g:9953:2: rule__XOperation__Group_9__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XOperation__Group_9__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOperation__Group_9__1"


    // $ANTLR start "rule__XOperation__Group_9__1__Impl"
    // InternalXcore.g:9959:1: rule__XOperation__Group_9__1__Impl : ( ( rule__XOperation__Group_9_1__0 )* ) ;
    public final void rule__XOperation__Group_9__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:9963:1: ( ( ( rule__XOperation__Group_9_1__0 )* ) )
            // InternalXcore.g:9964:1: ( ( rule__XOperation__Group_9_1__0 )* )
            {
            // InternalXcore.g:9964:1: ( ( rule__XOperation__Group_9_1__0 )* )
            // InternalXcore.g:9965:1: ( rule__XOperation__Group_9_1__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getGroup_9_1()); 
            }
            // InternalXcore.g:9966:1: ( rule__XOperation__Group_9_1__0 )*
            loop101:
            do {
                int alt101=2;
                int LA101_0 = input.LA(1);

                if ( (LA101_0==87) ) {
                    alt101=1;
                }


                switch (alt101) {
            	case 1 :
            	    // InternalXcore.g:9966:2: rule__XOperation__Group_9_1__0
            	    {
            	    pushFollow(FollowSets000.FOLLOW_14);
            	    rule__XOperation__Group_9_1__0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop101;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXOperationAccess().getGroup_9_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOperation__Group_9__1__Impl"


    // $ANTLR start "rule__XOperation__Group_9_1__0"
    // InternalXcore.g:9980:1: rule__XOperation__Group_9_1__0 : rule__XOperation__Group_9_1__0__Impl rule__XOperation__Group_9_1__1 ;
    public final void rule__XOperation__Group_9_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:9984:1: ( rule__XOperation__Group_9_1__0__Impl rule__XOperation__Group_9_1__1 )
            // InternalXcore.g:9985:2: rule__XOperation__Group_9_1__0__Impl rule__XOperation__Group_9_1__1
            {
            pushFollow(FollowSets000.FOLLOW_56);
            rule__XOperation__Group_9_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XOperation__Group_9_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOperation__Group_9_1__0"


    // $ANTLR start "rule__XOperation__Group_9_1__0__Impl"
    // InternalXcore.g:9992:1: rule__XOperation__Group_9_1__0__Impl : ( ',' ) ;
    public final void rule__XOperation__Group_9_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:9996:1: ( ( ',' ) )
            // InternalXcore.g:9997:1: ( ',' )
            {
            // InternalXcore.g:9997:1: ( ',' )
            // InternalXcore.g:9998:1: ','
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getCommaKeyword_9_1_0()); 
            }
            match(input,87,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXOperationAccess().getCommaKeyword_9_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOperation__Group_9_1__0__Impl"


    // $ANTLR start "rule__XOperation__Group_9_1__1"
    // InternalXcore.g:10011:1: rule__XOperation__Group_9_1__1 : rule__XOperation__Group_9_1__1__Impl ;
    public final void rule__XOperation__Group_9_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:10015:1: ( rule__XOperation__Group_9_1__1__Impl )
            // InternalXcore.g:10016:2: rule__XOperation__Group_9_1__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XOperation__Group_9_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOperation__Group_9_1__1"


    // $ANTLR start "rule__XOperation__Group_9_1__1__Impl"
    // InternalXcore.g:10022:1: rule__XOperation__Group_9_1__1__Impl : ( ( rule__XOperation__ParametersAssignment_9_1_1 ) ) ;
    public final void rule__XOperation__Group_9_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:10026:1: ( ( ( rule__XOperation__ParametersAssignment_9_1_1 ) ) )
            // InternalXcore.g:10027:1: ( ( rule__XOperation__ParametersAssignment_9_1_1 ) )
            {
            // InternalXcore.g:10027:1: ( ( rule__XOperation__ParametersAssignment_9_1_1 ) )
            // InternalXcore.g:10028:1: ( rule__XOperation__ParametersAssignment_9_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getParametersAssignment_9_1_1()); 
            }
            // InternalXcore.g:10029:1: ( rule__XOperation__ParametersAssignment_9_1_1 )
            // InternalXcore.g:10029:2: rule__XOperation__ParametersAssignment_9_1_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XOperation__ParametersAssignment_9_1_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXOperationAccess().getParametersAssignment_9_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOperation__Group_9_1__1__Impl"


    // $ANTLR start "rule__XOperation__Group_11__0"
    // InternalXcore.g:10043:1: rule__XOperation__Group_11__0 : rule__XOperation__Group_11__0__Impl rule__XOperation__Group_11__1 ;
    public final void rule__XOperation__Group_11__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:10047:1: ( rule__XOperation__Group_11__0__Impl rule__XOperation__Group_11__1 )
            // InternalXcore.g:10048:2: rule__XOperation__Group_11__0__Impl rule__XOperation__Group_11__1
            {
            pushFollow(FollowSets000.FOLLOW_11);
            rule__XOperation__Group_11__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XOperation__Group_11__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOperation__Group_11__0"


    // $ANTLR start "rule__XOperation__Group_11__0__Impl"
    // InternalXcore.g:10055:1: rule__XOperation__Group_11__0__Impl : ( 'throws' ) ;
    public final void rule__XOperation__Group_11__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:10059:1: ( ( 'throws' ) )
            // InternalXcore.g:10060:1: ( 'throws' )
            {
            // InternalXcore.g:10060:1: ( 'throws' )
            // InternalXcore.g:10061:1: 'throws'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getThrowsKeyword_11_0()); 
            }
            match(input,48,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXOperationAccess().getThrowsKeyword_11_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOperation__Group_11__0__Impl"


    // $ANTLR start "rule__XOperation__Group_11__1"
    // InternalXcore.g:10074:1: rule__XOperation__Group_11__1 : rule__XOperation__Group_11__1__Impl rule__XOperation__Group_11__2 ;
    public final void rule__XOperation__Group_11__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:10078:1: ( rule__XOperation__Group_11__1__Impl rule__XOperation__Group_11__2 )
            // InternalXcore.g:10079:2: rule__XOperation__Group_11__1__Impl rule__XOperation__Group_11__2
            {
            pushFollow(FollowSets000.FOLLOW_38);
            rule__XOperation__Group_11__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XOperation__Group_11__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOperation__Group_11__1"


    // $ANTLR start "rule__XOperation__Group_11__1__Impl"
    // InternalXcore.g:10086:1: rule__XOperation__Group_11__1__Impl : ( ( rule__XOperation__ExceptionsAssignment_11_1 ) ) ;
    public final void rule__XOperation__Group_11__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:10090:1: ( ( ( rule__XOperation__ExceptionsAssignment_11_1 ) ) )
            // InternalXcore.g:10091:1: ( ( rule__XOperation__ExceptionsAssignment_11_1 ) )
            {
            // InternalXcore.g:10091:1: ( ( rule__XOperation__ExceptionsAssignment_11_1 ) )
            // InternalXcore.g:10092:1: ( rule__XOperation__ExceptionsAssignment_11_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getExceptionsAssignment_11_1()); 
            }
            // InternalXcore.g:10093:1: ( rule__XOperation__ExceptionsAssignment_11_1 )
            // InternalXcore.g:10093:2: rule__XOperation__ExceptionsAssignment_11_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XOperation__ExceptionsAssignment_11_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXOperationAccess().getExceptionsAssignment_11_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOperation__Group_11__1__Impl"


    // $ANTLR start "rule__XOperation__Group_11__2"
    // InternalXcore.g:10103:1: rule__XOperation__Group_11__2 : rule__XOperation__Group_11__2__Impl ;
    public final void rule__XOperation__Group_11__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:10107:1: ( rule__XOperation__Group_11__2__Impl )
            // InternalXcore.g:10108:2: rule__XOperation__Group_11__2__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XOperation__Group_11__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOperation__Group_11__2"


    // $ANTLR start "rule__XOperation__Group_11__2__Impl"
    // InternalXcore.g:10114:1: rule__XOperation__Group_11__2__Impl : ( ( rule__XOperation__Group_11_2__0 )* ) ;
    public final void rule__XOperation__Group_11__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:10118:1: ( ( ( rule__XOperation__Group_11_2__0 )* ) )
            // InternalXcore.g:10119:1: ( ( rule__XOperation__Group_11_2__0 )* )
            {
            // InternalXcore.g:10119:1: ( ( rule__XOperation__Group_11_2__0 )* )
            // InternalXcore.g:10120:1: ( rule__XOperation__Group_11_2__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getGroup_11_2()); 
            }
            // InternalXcore.g:10121:1: ( rule__XOperation__Group_11_2__0 )*
            loop102:
            do {
                int alt102=2;
                int LA102_0 = input.LA(1);

                if ( (LA102_0==87) ) {
                    alt102=1;
                }


                switch (alt102) {
            	case 1 :
            	    // InternalXcore.g:10121:2: rule__XOperation__Group_11_2__0
            	    {
            	    pushFollow(FollowSets000.FOLLOW_14);
            	    rule__XOperation__Group_11_2__0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop102;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXOperationAccess().getGroup_11_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOperation__Group_11__2__Impl"


    // $ANTLR start "rule__XOperation__Group_11_2__0"
    // InternalXcore.g:10137:1: rule__XOperation__Group_11_2__0 : rule__XOperation__Group_11_2__0__Impl rule__XOperation__Group_11_2__1 ;
    public final void rule__XOperation__Group_11_2__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:10141:1: ( rule__XOperation__Group_11_2__0__Impl rule__XOperation__Group_11_2__1 )
            // InternalXcore.g:10142:2: rule__XOperation__Group_11_2__0__Impl rule__XOperation__Group_11_2__1
            {
            pushFollow(FollowSets000.FOLLOW_11);
            rule__XOperation__Group_11_2__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XOperation__Group_11_2__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOperation__Group_11_2__0"


    // $ANTLR start "rule__XOperation__Group_11_2__0__Impl"
    // InternalXcore.g:10149:1: rule__XOperation__Group_11_2__0__Impl : ( ',' ) ;
    public final void rule__XOperation__Group_11_2__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:10153:1: ( ( ',' ) )
            // InternalXcore.g:10154:1: ( ',' )
            {
            // InternalXcore.g:10154:1: ( ',' )
            // InternalXcore.g:10155:1: ','
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getCommaKeyword_11_2_0()); 
            }
            match(input,87,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXOperationAccess().getCommaKeyword_11_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOperation__Group_11_2__0__Impl"


    // $ANTLR start "rule__XOperation__Group_11_2__1"
    // InternalXcore.g:10168:1: rule__XOperation__Group_11_2__1 : rule__XOperation__Group_11_2__1__Impl ;
    public final void rule__XOperation__Group_11_2__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:10172:1: ( rule__XOperation__Group_11_2__1__Impl )
            // InternalXcore.g:10173:2: rule__XOperation__Group_11_2__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XOperation__Group_11_2__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOperation__Group_11_2__1"


    // $ANTLR start "rule__XOperation__Group_11_2__1__Impl"
    // InternalXcore.g:10179:1: rule__XOperation__Group_11_2__1__Impl : ( ( rule__XOperation__ExceptionsAssignment_11_2_1 ) ) ;
    public final void rule__XOperation__Group_11_2__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:10183:1: ( ( ( rule__XOperation__ExceptionsAssignment_11_2_1 ) ) )
            // InternalXcore.g:10184:1: ( ( rule__XOperation__ExceptionsAssignment_11_2_1 ) )
            {
            // InternalXcore.g:10184:1: ( ( rule__XOperation__ExceptionsAssignment_11_2_1 ) )
            // InternalXcore.g:10185:1: ( rule__XOperation__ExceptionsAssignment_11_2_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getExceptionsAssignment_11_2_1()); 
            }
            // InternalXcore.g:10186:1: ( rule__XOperation__ExceptionsAssignment_11_2_1 )
            // InternalXcore.g:10186:2: rule__XOperation__ExceptionsAssignment_11_2_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XOperation__ExceptionsAssignment_11_2_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXOperationAccess().getExceptionsAssignment_11_2_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOperation__Group_11_2__1__Impl"


    // $ANTLR start "rule__XParameter__Group__0"
    // InternalXcore.g:10200:1: rule__XParameter__Group__0 : rule__XParameter__Group__0__Impl rule__XParameter__Group__1 ;
    public final void rule__XParameter__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:10204:1: ( rule__XParameter__Group__0__Impl rule__XParameter__Group__1 )
            // InternalXcore.g:10205:2: rule__XParameter__Group__0__Impl rule__XParameter__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_56);
            rule__XParameter__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XParameter__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XParameter__Group__0"


    // $ANTLR start "rule__XParameter__Group__0__Impl"
    // InternalXcore.g:10212:1: rule__XParameter__Group__0__Impl : ( ( rule__XParameter__AnnotationsAssignment_0 )* ) ;
    public final void rule__XParameter__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:10216:1: ( ( ( rule__XParameter__AnnotationsAssignment_0 )* ) )
            // InternalXcore.g:10217:1: ( ( rule__XParameter__AnnotationsAssignment_0 )* )
            {
            // InternalXcore.g:10217:1: ( ( rule__XParameter__AnnotationsAssignment_0 )* )
            // InternalXcore.g:10218:1: ( rule__XParameter__AnnotationsAssignment_0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXParameterAccess().getAnnotationsAssignment_0()); 
            }
            // InternalXcore.g:10219:1: ( rule__XParameter__AnnotationsAssignment_0 )*
            loop103:
            do {
                int alt103=2;
                int LA103_0 = input.LA(1);

                if ( (LA103_0==84) ) {
                    alt103=1;
                }


                switch (alt103) {
            	case 1 :
            	    // InternalXcore.g:10219:2: rule__XParameter__AnnotationsAssignment_0
            	    {
            	    pushFollow(FollowSets000.FOLLOW_5);
            	    rule__XParameter__AnnotationsAssignment_0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop103;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXParameterAccess().getAnnotationsAssignment_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XParameter__Group__0__Impl"


    // $ANTLR start "rule__XParameter__Group__1"
    // InternalXcore.g:10229:1: rule__XParameter__Group__1 : rule__XParameter__Group__1__Impl rule__XParameter__Group__2 ;
    public final void rule__XParameter__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:10233:1: ( rule__XParameter__Group__1__Impl rule__XParameter__Group__2 )
            // InternalXcore.g:10234:2: rule__XParameter__Group__1__Impl rule__XParameter__Group__2
            {
            pushFollow(FollowSets000.FOLLOW_56);
            rule__XParameter__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XParameter__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XParameter__Group__1"


    // $ANTLR start "rule__XParameter__Group__1__Impl"
    // InternalXcore.g:10241:1: rule__XParameter__Group__1__Impl : ( ( rule__XParameter__Alternatives_1 )? ) ;
    public final void rule__XParameter__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:10245:1: ( ( ( rule__XParameter__Alternatives_1 )? ) )
            // InternalXcore.g:10246:1: ( ( rule__XParameter__Alternatives_1 )? )
            {
            // InternalXcore.g:10246:1: ( ( rule__XParameter__Alternatives_1 )? )
            // InternalXcore.g:10247:1: ( rule__XParameter__Alternatives_1 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXParameterAccess().getAlternatives_1()); 
            }
            // InternalXcore.g:10248:1: ( rule__XParameter__Alternatives_1 )?
            int alt104=2;
            int LA104_0 = input.LA(1);

            if ( ((LA104_0>=50 && LA104_0<=51)) ) {
                alt104=1;
            }
            switch (alt104) {
                case 1 :
                    // InternalXcore.g:10248:2: rule__XParameter__Alternatives_1
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XParameter__Alternatives_1();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXParameterAccess().getAlternatives_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XParameter__Group__1__Impl"


    // $ANTLR start "rule__XParameter__Group__2"
    // InternalXcore.g:10258:1: rule__XParameter__Group__2 : rule__XParameter__Group__2__Impl rule__XParameter__Group__3 ;
    public final void rule__XParameter__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:10262:1: ( rule__XParameter__Group__2__Impl rule__XParameter__Group__3 )
            // InternalXcore.g:10263:2: rule__XParameter__Group__2__Impl rule__XParameter__Group__3
            {
            pushFollow(FollowSets000.FOLLOW_40);
            rule__XParameter__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XParameter__Group__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XParameter__Group__2"


    // $ANTLR start "rule__XParameter__Group__2__Impl"
    // InternalXcore.g:10270:1: rule__XParameter__Group__2__Impl : ( ( rule__XParameter__TypeAssignment_2 ) ) ;
    public final void rule__XParameter__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:10274:1: ( ( ( rule__XParameter__TypeAssignment_2 ) ) )
            // InternalXcore.g:10275:1: ( ( rule__XParameter__TypeAssignment_2 ) )
            {
            // InternalXcore.g:10275:1: ( ( rule__XParameter__TypeAssignment_2 ) )
            // InternalXcore.g:10276:1: ( rule__XParameter__TypeAssignment_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXParameterAccess().getTypeAssignment_2()); 
            }
            // InternalXcore.g:10277:1: ( rule__XParameter__TypeAssignment_2 )
            // InternalXcore.g:10277:2: rule__XParameter__TypeAssignment_2
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XParameter__TypeAssignment_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXParameterAccess().getTypeAssignment_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XParameter__Group__2__Impl"


    // $ANTLR start "rule__XParameter__Group__3"
    // InternalXcore.g:10287:1: rule__XParameter__Group__3 : rule__XParameter__Group__3__Impl rule__XParameter__Group__4 ;
    public final void rule__XParameter__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:10291:1: ( rule__XParameter__Group__3__Impl rule__XParameter__Group__4 )
            // InternalXcore.g:10292:2: rule__XParameter__Group__3__Impl rule__XParameter__Group__4
            {
            pushFollow(FollowSets000.FOLLOW_40);
            rule__XParameter__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XParameter__Group__4();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XParameter__Group__3"


    // $ANTLR start "rule__XParameter__Group__3__Impl"
    // InternalXcore.g:10299:1: rule__XParameter__Group__3__Impl : ( ( rule__XParameter__MultiplicityAssignment_3 )? ) ;
    public final void rule__XParameter__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:10303:1: ( ( ( rule__XParameter__MultiplicityAssignment_3 )? ) )
            // InternalXcore.g:10304:1: ( ( rule__XParameter__MultiplicityAssignment_3 )? )
            {
            // InternalXcore.g:10304:1: ( ( rule__XParameter__MultiplicityAssignment_3 )? )
            // InternalXcore.g:10305:1: ( rule__XParameter__MultiplicityAssignment_3 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXParameterAccess().getMultiplicityAssignment_3()); 
            }
            // InternalXcore.g:10306:1: ( rule__XParameter__MultiplicityAssignment_3 )?
            int alt105=2;
            int LA105_0 = input.LA(1);

            if ( (LA105_0==92) ) {
                alt105=1;
            }
            switch (alt105) {
                case 1 :
                    // InternalXcore.g:10306:2: rule__XParameter__MultiplicityAssignment_3
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XParameter__MultiplicityAssignment_3();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXParameterAccess().getMultiplicityAssignment_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XParameter__Group__3__Impl"


    // $ANTLR start "rule__XParameter__Group__4"
    // InternalXcore.g:10316:1: rule__XParameter__Group__4 : rule__XParameter__Group__4__Impl ;
    public final void rule__XParameter__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:10320:1: ( rule__XParameter__Group__4__Impl )
            // InternalXcore.g:10321:2: rule__XParameter__Group__4__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XParameter__Group__4__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XParameter__Group__4"


    // $ANTLR start "rule__XParameter__Group__4__Impl"
    // InternalXcore.g:10327:1: rule__XParameter__Group__4__Impl : ( ( rule__XParameter__NameAssignment_4 ) ) ;
    public final void rule__XParameter__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:10331:1: ( ( ( rule__XParameter__NameAssignment_4 ) ) )
            // InternalXcore.g:10332:1: ( ( rule__XParameter__NameAssignment_4 ) )
            {
            // InternalXcore.g:10332:1: ( ( rule__XParameter__NameAssignment_4 ) )
            // InternalXcore.g:10333:1: ( rule__XParameter__NameAssignment_4 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXParameterAccess().getNameAssignment_4()); 
            }
            // InternalXcore.g:10334:1: ( rule__XParameter__NameAssignment_4 )
            // InternalXcore.g:10334:2: rule__XParameter__NameAssignment_4
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XParameter__NameAssignment_4();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXParameterAccess().getNameAssignment_4()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XParameter__Group__4__Impl"


    // $ANTLR start "rule__XParameter__Group_1_0__0"
    // InternalXcore.g:10354:1: rule__XParameter__Group_1_0__0 : rule__XParameter__Group_1_0__0__Impl rule__XParameter__Group_1_0__1 ;
    public final void rule__XParameter__Group_1_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:10358:1: ( rule__XParameter__Group_1_0__0__Impl rule__XParameter__Group_1_0__1 )
            // InternalXcore.g:10359:2: rule__XParameter__Group_1_0__0__Impl rule__XParameter__Group_1_0__1
            {
            pushFollow(FollowSets000.FOLLOW_54);
            rule__XParameter__Group_1_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XParameter__Group_1_0__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XParameter__Group_1_0__0"


    // $ANTLR start "rule__XParameter__Group_1_0__0__Impl"
    // InternalXcore.g:10366:1: rule__XParameter__Group_1_0__0__Impl : ( ( rule__XParameter__UnorderedAssignment_1_0_0 ) ) ;
    public final void rule__XParameter__Group_1_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:10370:1: ( ( ( rule__XParameter__UnorderedAssignment_1_0_0 ) ) )
            // InternalXcore.g:10371:1: ( ( rule__XParameter__UnorderedAssignment_1_0_0 ) )
            {
            // InternalXcore.g:10371:1: ( ( rule__XParameter__UnorderedAssignment_1_0_0 ) )
            // InternalXcore.g:10372:1: ( rule__XParameter__UnorderedAssignment_1_0_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXParameterAccess().getUnorderedAssignment_1_0_0()); 
            }
            // InternalXcore.g:10373:1: ( rule__XParameter__UnorderedAssignment_1_0_0 )
            // InternalXcore.g:10373:2: rule__XParameter__UnorderedAssignment_1_0_0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XParameter__UnorderedAssignment_1_0_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXParameterAccess().getUnorderedAssignment_1_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XParameter__Group_1_0__0__Impl"


    // $ANTLR start "rule__XParameter__Group_1_0__1"
    // InternalXcore.g:10383:1: rule__XParameter__Group_1_0__1 : rule__XParameter__Group_1_0__1__Impl ;
    public final void rule__XParameter__Group_1_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:10387:1: ( rule__XParameter__Group_1_0__1__Impl )
            // InternalXcore.g:10388:2: rule__XParameter__Group_1_0__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XParameter__Group_1_0__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XParameter__Group_1_0__1"


    // $ANTLR start "rule__XParameter__Group_1_0__1__Impl"
    // InternalXcore.g:10394:1: rule__XParameter__Group_1_0__1__Impl : ( ( rule__XParameter__UniqueAssignment_1_0_1 )? ) ;
    public final void rule__XParameter__Group_1_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:10398:1: ( ( ( rule__XParameter__UniqueAssignment_1_0_1 )? ) )
            // InternalXcore.g:10399:1: ( ( rule__XParameter__UniqueAssignment_1_0_1 )? )
            {
            // InternalXcore.g:10399:1: ( ( rule__XParameter__UniqueAssignment_1_0_1 )? )
            // InternalXcore.g:10400:1: ( rule__XParameter__UniqueAssignment_1_0_1 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXParameterAccess().getUniqueAssignment_1_0_1()); 
            }
            // InternalXcore.g:10401:1: ( rule__XParameter__UniqueAssignment_1_0_1 )?
            int alt106=2;
            int LA106_0 = input.LA(1);

            if ( (LA106_0==50) ) {
                alt106=1;
            }
            switch (alt106) {
                case 1 :
                    // InternalXcore.g:10401:2: rule__XParameter__UniqueAssignment_1_0_1
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XParameter__UniqueAssignment_1_0_1();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXParameterAccess().getUniqueAssignment_1_0_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XParameter__Group_1_0__1__Impl"


    // $ANTLR start "rule__XParameter__Group_1_1__0"
    // InternalXcore.g:10415:1: rule__XParameter__Group_1_1__0 : rule__XParameter__Group_1_1__0__Impl rule__XParameter__Group_1_1__1 ;
    public final void rule__XParameter__Group_1_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:10419:1: ( rule__XParameter__Group_1_1__0__Impl rule__XParameter__Group_1_1__1 )
            // InternalXcore.g:10420:2: rule__XParameter__Group_1_1__0__Impl rule__XParameter__Group_1_1__1
            {
            pushFollow(FollowSets000.FOLLOW_55);
            rule__XParameter__Group_1_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XParameter__Group_1_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XParameter__Group_1_1__0"


    // $ANTLR start "rule__XParameter__Group_1_1__0__Impl"
    // InternalXcore.g:10427:1: rule__XParameter__Group_1_1__0__Impl : ( ( rule__XParameter__UniqueAssignment_1_1_0 ) ) ;
    public final void rule__XParameter__Group_1_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:10431:1: ( ( ( rule__XParameter__UniqueAssignment_1_1_0 ) ) )
            // InternalXcore.g:10432:1: ( ( rule__XParameter__UniqueAssignment_1_1_0 ) )
            {
            // InternalXcore.g:10432:1: ( ( rule__XParameter__UniqueAssignment_1_1_0 ) )
            // InternalXcore.g:10433:1: ( rule__XParameter__UniqueAssignment_1_1_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXParameterAccess().getUniqueAssignment_1_1_0()); 
            }
            // InternalXcore.g:10434:1: ( rule__XParameter__UniqueAssignment_1_1_0 )
            // InternalXcore.g:10434:2: rule__XParameter__UniqueAssignment_1_1_0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XParameter__UniqueAssignment_1_1_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXParameterAccess().getUniqueAssignment_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XParameter__Group_1_1__0__Impl"


    // $ANTLR start "rule__XParameter__Group_1_1__1"
    // InternalXcore.g:10444:1: rule__XParameter__Group_1_1__1 : rule__XParameter__Group_1_1__1__Impl ;
    public final void rule__XParameter__Group_1_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:10448:1: ( rule__XParameter__Group_1_1__1__Impl )
            // InternalXcore.g:10449:2: rule__XParameter__Group_1_1__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XParameter__Group_1_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XParameter__Group_1_1__1"


    // $ANTLR start "rule__XParameter__Group_1_1__1__Impl"
    // InternalXcore.g:10455:1: rule__XParameter__Group_1_1__1__Impl : ( ( rule__XParameter__UnorderedAssignment_1_1_1 )? ) ;
    public final void rule__XParameter__Group_1_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:10459:1: ( ( ( rule__XParameter__UnorderedAssignment_1_1_1 )? ) )
            // InternalXcore.g:10460:1: ( ( rule__XParameter__UnorderedAssignment_1_1_1 )? )
            {
            // InternalXcore.g:10460:1: ( ( rule__XParameter__UnorderedAssignment_1_1_1 )? )
            // InternalXcore.g:10461:1: ( rule__XParameter__UnorderedAssignment_1_1_1 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXParameterAccess().getUnorderedAssignment_1_1_1()); 
            }
            // InternalXcore.g:10462:1: ( rule__XParameter__UnorderedAssignment_1_1_1 )?
            int alt107=2;
            int LA107_0 = input.LA(1);

            if ( (LA107_0==51) ) {
                alt107=1;
            }
            switch (alt107) {
                case 1 :
                    // InternalXcore.g:10462:2: rule__XParameter__UnorderedAssignment_1_1_1
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XParameter__UnorderedAssignment_1_1_1();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXParameterAccess().getUnorderedAssignment_1_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XParameter__Group_1_1__1__Impl"


    // $ANTLR start "rule__XTypeParameter__Group__0"
    // InternalXcore.g:10476:1: rule__XTypeParameter__Group__0 : rule__XTypeParameter__Group__0__Impl rule__XTypeParameter__Group__1 ;
    public final void rule__XTypeParameter__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:10480:1: ( rule__XTypeParameter__Group__0__Impl rule__XTypeParameter__Group__1 )
            // InternalXcore.g:10481:2: rule__XTypeParameter__Group__0__Impl rule__XTypeParameter__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_24);
            rule__XTypeParameter__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XTypeParameter__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XTypeParameter__Group__0"


    // $ANTLR start "rule__XTypeParameter__Group__0__Impl"
    // InternalXcore.g:10488:1: rule__XTypeParameter__Group__0__Impl : ( ( rule__XTypeParameter__AnnotationsAssignment_0 )* ) ;
    public final void rule__XTypeParameter__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:10492:1: ( ( ( rule__XTypeParameter__AnnotationsAssignment_0 )* ) )
            // InternalXcore.g:10493:1: ( ( rule__XTypeParameter__AnnotationsAssignment_0 )* )
            {
            // InternalXcore.g:10493:1: ( ( rule__XTypeParameter__AnnotationsAssignment_0 )* )
            // InternalXcore.g:10494:1: ( rule__XTypeParameter__AnnotationsAssignment_0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXTypeParameterAccess().getAnnotationsAssignment_0()); 
            }
            // InternalXcore.g:10495:1: ( rule__XTypeParameter__AnnotationsAssignment_0 )*
            loop108:
            do {
                int alt108=2;
                int LA108_0 = input.LA(1);

                if ( (LA108_0==84) ) {
                    alt108=1;
                }


                switch (alt108) {
            	case 1 :
            	    // InternalXcore.g:10495:2: rule__XTypeParameter__AnnotationsAssignment_0
            	    {
            	    pushFollow(FollowSets000.FOLLOW_5);
            	    rule__XTypeParameter__AnnotationsAssignment_0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop108;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXTypeParameterAccess().getAnnotationsAssignment_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XTypeParameter__Group__0__Impl"


    // $ANTLR start "rule__XTypeParameter__Group__1"
    // InternalXcore.g:10505:1: rule__XTypeParameter__Group__1 : rule__XTypeParameter__Group__1__Impl rule__XTypeParameter__Group__2 ;
    public final void rule__XTypeParameter__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:10509:1: ( rule__XTypeParameter__Group__1__Impl rule__XTypeParameter__Group__2 )
            // InternalXcore.g:10510:2: rule__XTypeParameter__Group__1__Impl rule__XTypeParameter__Group__2
            {
            pushFollow(FollowSets000.FOLLOW_57);
            rule__XTypeParameter__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XTypeParameter__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XTypeParameter__Group__1"


    // $ANTLR start "rule__XTypeParameter__Group__1__Impl"
    // InternalXcore.g:10517:1: rule__XTypeParameter__Group__1__Impl : ( ( rule__XTypeParameter__NameAssignment_1 ) ) ;
    public final void rule__XTypeParameter__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:10521:1: ( ( ( rule__XTypeParameter__NameAssignment_1 ) ) )
            // InternalXcore.g:10522:1: ( ( rule__XTypeParameter__NameAssignment_1 ) )
            {
            // InternalXcore.g:10522:1: ( ( rule__XTypeParameter__NameAssignment_1 ) )
            // InternalXcore.g:10523:1: ( rule__XTypeParameter__NameAssignment_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXTypeParameterAccess().getNameAssignment_1()); 
            }
            // InternalXcore.g:10524:1: ( rule__XTypeParameter__NameAssignment_1 )
            // InternalXcore.g:10524:2: rule__XTypeParameter__NameAssignment_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XTypeParameter__NameAssignment_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXTypeParameterAccess().getNameAssignment_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XTypeParameter__Group__1__Impl"


    // $ANTLR start "rule__XTypeParameter__Group__2"
    // InternalXcore.g:10534:1: rule__XTypeParameter__Group__2 : rule__XTypeParameter__Group__2__Impl ;
    public final void rule__XTypeParameter__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:10538:1: ( rule__XTypeParameter__Group__2__Impl )
            // InternalXcore.g:10539:2: rule__XTypeParameter__Group__2__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XTypeParameter__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XTypeParameter__Group__2"


    // $ANTLR start "rule__XTypeParameter__Group__2__Impl"
    // InternalXcore.g:10545:1: rule__XTypeParameter__Group__2__Impl : ( ( rule__XTypeParameter__Group_2__0 )? ) ;
    public final void rule__XTypeParameter__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:10549:1: ( ( ( rule__XTypeParameter__Group_2__0 )? ) )
            // InternalXcore.g:10550:1: ( ( rule__XTypeParameter__Group_2__0 )? )
            {
            // InternalXcore.g:10550:1: ( ( rule__XTypeParameter__Group_2__0 )? )
            // InternalXcore.g:10551:1: ( rule__XTypeParameter__Group_2__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXTypeParameterAccess().getGroup_2()); 
            }
            // InternalXcore.g:10552:1: ( rule__XTypeParameter__Group_2__0 )?
            int alt109=2;
            int LA109_0 = input.LA(1);

            if ( (LA109_0==34) ) {
                alt109=1;
            }
            switch (alt109) {
                case 1 :
                    // InternalXcore.g:10552:2: rule__XTypeParameter__Group_2__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XTypeParameter__Group_2__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXTypeParameterAccess().getGroup_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XTypeParameter__Group__2__Impl"


    // $ANTLR start "rule__XTypeParameter__Group_2__0"
    // InternalXcore.g:10568:1: rule__XTypeParameter__Group_2__0 : rule__XTypeParameter__Group_2__0__Impl rule__XTypeParameter__Group_2__1 ;
    public final void rule__XTypeParameter__Group_2__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:10572:1: ( rule__XTypeParameter__Group_2__0__Impl rule__XTypeParameter__Group_2__1 )
            // InternalXcore.g:10573:2: rule__XTypeParameter__Group_2__0__Impl rule__XTypeParameter__Group_2__1
            {
            pushFollow(FollowSets000.FOLLOW_11);
            rule__XTypeParameter__Group_2__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XTypeParameter__Group_2__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XTypeParameter__Group_2__0"


    // $ANTLR start "rule__XTypeParameter__Group_2__0__Impl"
    // InternalXcore.g:10580:1: rule__XTypeParameter__Group_2__0__Impl : ( 'extends' ) ;
    public final void rule__XTypeParameter__Group_2__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:10584:1: ( ( 'extends' ) )
            // InternalXcore.g:10585:1: ( 'extends' )
            {
            // InternalXcore.g:10585:1: ( 'extends' )
            // InternalXcore.g:10586:1: 'extends'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXTypeParameterAccess().getExtendsKeyword_2_0()); 
            }
            match(input,34,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXTypeParameterAccess().getExtendsKeyword_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XTypeParameter__Group_2__0__Impl"


    // $ANTLR start "rule__XTypeParameter__Group_2__1"
    // InternalXcore.g:10599:1: rule__XTypeParameter__Group_2__1 : rule__XTypeParameter__Group_2__1__Impl rule__XTypeParameter__Group_2__2 ;
    public final void rule__XTypeParameter__Group_2__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:10603:1: ( rule__XTypeParameter__Group_2__1__Impl rule__XTypeParameter__Group_2__2 )
            // InternalXcore.g:10604:2: rule__XTypeParameter__Group_2__1__Impl rule__XTypeParameter__Group_2__2
            {
            pushFollow(FollowSets000.FOLLOW_58);
            rule__XTypeParameter__Group_2__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XTypeParameter__Group_2__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XTypeParameter__Group_2__1"


    // $ANTLR start "rule__XTypeParameter__Group_2__1__Impl"
    // InternalXcore.g:10611:1: rule__XTypeParameter__Group_2__1__Impl : ( ( rule__XTypeParameter__BoundsAssignment_2_1 ) ) ;
    public final void rule__XTypeParameter__Group_2__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:10615:1: ( ( ( rule__XTypeParameter__BoundsAssignment_2_1 ) ) )
            // InternalXcore.g:10616:1: ( ( rule__XTypeParameter__BoundsAssignment_2_1 ) )
            {
            // InternalXcore.g:10616:1: ( ( rule__XTypeParameter__BoundsAssignment_2_1 ) )
            // InternalXcore.g:10617:1: ( rule__XTypeParameter__BoundsAssignment_2_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXTypeParameterAccess().getBoundsAssignment_2_1()); 
            }
            // InternalXcore.g:10618:1: ( rule__XTypeParameter__BoundsAssignment_2_1 )
            // InternalXcore.g:10618:2: rule__XTypeParameter__BoundsAssignment_2_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XTypeParameter__BoundsAssignment_2_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXTypeParameterAccess().getBoundsAssignment_2_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XTypeParameter__Group_2__1__Impl"


    // $ANTLR start "rule__XTypeParameter__Group_2__2"
    // InternalXcore.g:10628:1: rule__XTypeParameter__Group_2__2 : rule__XTypeParameter__Group_2__2__Impl ;
    public final void rule__XTypeParameter__Group_2__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:10632:1: ( rule__XTypeParameter__Group_2__2__Impl )
            // InternalXcore.g:10633:2: rule__XTypeParameter__Group_2__2__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XTypeParameter__Group_2__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XTypeParameter__Group_2__2"


    // $ANTLR start "rule__XTypeParameter__Group_2__2__Impl"
    // InternalXcore.g:10639:1: rule__XTypeParameter__Group_2__2__Impl : ( ( rule__XTypeParameter__Group_2_2__0 )* ) ;
    public final void rule__XTypeParameter__Group_2__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:10643:1: ( ( ( rule__XTypeParameter__Group_2_2__0 )* ) )
            // InternalXcore.g:10644:1: ( ( rule__XTypeParameter__Group_2_2__0 )* )
            {
            // InternalXcore.g:10644:1: ( ( rule__XTypeParameter__Group_2_2__0 )* )
            // InternalXcore.g:10645:1: ( rule__XTypeParameter__Group_2_2__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXTypeParameterAccess().getGroup_2_2()); 
            }
            // InternalXcore.g:10646:1: ( rule__XTypeParameter__Group_2_2__0 )*
            loop110:
            do {
                int alt110=2;
                int LA110_0 = input.LA(1);

                if ( (LA110_0==91) ) {
                    alt110=1;
                }


                switch (alt110) {
            	case 1 :
            	    // InternalXcore.g:10646:2: rule__XTypeParameter__Group_2_2__0
            	    {
            	    pushFollow(FollowSets000.FOLLOW_59);
            	    rule__XTypeParameter__Group_2_2__0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop110;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXTypeParameterAccess().getGroup_2_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XTypeParameter__Group_2__2__Impl"


    // $ANTLR start "rule__XTypeParameter__Group_2_2__0"
    // InternalXcore.g:10662:1: rule__XTypeParameter__Group_2_2__0 : rule__XTypeParameter__Group_2_2__0__Impl rule__XTypeParameter__Group_2_2__1 ;
    public final void rule__XTypeParameter__Group_2_2__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:10666:1: ( rule__XTypeParameter__Group_2_2__0__Impl rule__XTypeParameter__Group_2_2__1 )
            // InternalXcore.g:10667:2: rule__XTypeParameter__Group_2_2__0__Impl rule__XTypeParameter__Group_2_2__1
            {
            pushFollow(FollowSets000.FOLLOW_11);
            rule__XTypeParameter__Group_2_2__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XTypeParameter__Group_2_2__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XTypeParameter__Group_2_2__0"


    // $ANTLR start "rule__XTypeParameter__Group_2_2__0__Impl"
    // InternalXcore.g:10674:1: rule__XTypeParameter__Group_2_2__0__Impl : ( '&' ) ;
    public final void rule__XTypeParameter__Group_2_2__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:10678:1: ( ( '&' ) )
            // InternalXcore.g:10679:1: ( '&' )
            {
            // InternalXcore.g:10679:1: ( '&' )
            // InternalXcore.g:10680:1: '&'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXTypeParameterAccess().getAmpersandKeyword_2_2_0()); 
            }
            match(input,91,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXTypeParameterAccess().getAmpersandKeyword_2_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XTypeParameter__Group_2_2__0__Impl"


    // $ANTLR start "rule__XTypeParameter__Group_2_2__1"
    // InternalXcore.g:10693:1: rule__XTypeParameter__Group_2_2__1 : rule__XTypeParameter__Group_2_2__1__Impl ;
    public final void rule__XTypeParameter__Group_2_2__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:10697:1: ( rule__XTypeParameter__Group_2_2__1__Impl )
            // InternalXcore.g:10698:2: rule__XTypeParameter__Group_2_2__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XTypeParameter__Group_2_2__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XTypeParameter__Group_2_2__1"


    // $ANTLR start "rule__XTypeParameter__Group_2_2__1__Impl"
    // InternalXcore.g:10704:1: rule__XTypeParameter__Group_2_2__1__Impl : ( ( rule__XTypeParameter__BoundsAssignment_2_2_1 ) ) ;
    public final void rule__XTypeParameter__Group_2_2__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:10708:1: ( ( ( rule__XTypeParameter__BoundsAssignment_2_2_1 ) ) )
            // InternalXcore.g:10709:1: ( ( rule__XTypeParameter__BoundsAssignment_2_2_1 ) )
            {
            // InternalXcore.g:10709:1: ( ( rule__XTypeParameter__BoundsAssignment_2_2_1 ) )
            // InternalXcore.g:10710:1: ( rule__XTypeParameter__BoundsAssignment_2_2_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXTypeParameterAccess().getBoundsAssignment_2_2_1()); 
            }
            // InternalXcore.g:10711:1: ( rule__XTypeParameter__BoundsAssignment_2_2_1 )
            // InternalXcore.g:10711:2: rule__XTypeParameter__BoundsAssignment_2_2_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XTypeParameter__BoundsAssignment_2_2_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXTypeParameterAccess().getBoundsAssignment_2_2_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XTypeParameter__Group_2_2__1__Impl"


    // $ANTLR start "rule__XMultiplicity__Group__0"
    // InternalXcore.g:10725:1: rule__XMultiplicity__Group__0 : rule__XMultiplicity__Group__0__Impl rule__XMultiplicity__Group__1 ;
    public final void rule__XMultiplicity__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:10729:1: ( rule__XMultiplicity__Group__0__Impl rule__XMultiplicity__Group__1 )
            // InternalXcore.g:10730:2: rule__XMultiplicity__Group__0__Impl rule__XMultiplicity__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_60);
            rule__XMultiplicity__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XMultiplicity__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMultiplicity__Group__0"


    // $ANTLR start "rule__XMultiplicity__Group__0__Impl"
    // InternalXcore.g:10737:1: rule__XMultiplicity__Group__0__Impl : ( '[' ) ;
    public final void rule__XMultiplicity__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:10741:1: ( ( '[' ) )
            // InternalXcore.g:10742:1: ( '[' )
            {
            // InternalXcore.g:10742:1: ( '[' )
            // InternalXcore.g:10743:1: '['
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMultiplicityAccess().getLeftSquareBracketKeyword_0()); 
            }
            match(input,92,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXMultiplicityAccess().getLeftSquareBracketKeyword_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMultiplicity__Group__0__Impl"


    // $ANTLR start "rule__XMultiplicity__Group__1"
    // InternalXcore.g:10756:1: rule__XMultiplicity__Group__1 : rule__XMultiplicity__Group__1__Impl rule__XMultiplicity__Group__2 ;
    public final void rule__XMultiplicity__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:10760:1: ( rule__XMultiplicity__Group__1__Impl rule__XMultiplicity__Group__2 )
            // InternalXcore.g:10761:2: rule__XMultiplicity__Group__1__Impl rule__XMultiplicity__Group__2
            {
            pushFollow(FollowSets000.FOLLOW_60);
            rule__XMultiplicity__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XMultiplicity__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMultiplicity__Group__1"


    // $ANTLR start "rule__XMultiplicity__Group__1__Impl"
    // InternalXcore.g:10768:1: rule__XMultiplicity__Group__1__Impl : ( ( rule__XMultiplicity__Alternatives_1 )? ) ;
    public final void rule__XMultiplicity__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:10772:1: ( ( ( rule__XMultiplicity__Alternatives_1 )? ) )
            // InternalXcore.g:10773:1: ( ( rule__XMultiplicity__Alternatives_1 )? )
            {
            // InternalXcore.g:10773:1: ( ( rule__XMultiplicity__Alternatives_1 )? )
            // InternalXcore.g:10774:1: ( rule__XMultiplicity__Alternatives_1 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMultiplicityAccess().getAlternatives_1()); 
            }
            // InternalXcore.g:10775:1: ( rule__XMultiplicity__Alternatives_1 )?
            int alt111=2;
            int LA111_0 = input.LA(1);

            if ( (LA111_0==RULE_INT||(LA111_0>=17 && LA111_0<=19)) ) {
                alt111=1;
            }
            switch (alt111) {
                case 1 :
                    // InternalXcore.g:10775:2: rule__XMultiplicity__Alternatives_1
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XMultiplicity__Alternatives_1();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXMultiplicityAccess().getAlternatives_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMultiplicity__Group__1__Impl"


    // $ANTLR start "rule__XMultiplicity__Group__2"
    // InternalXcore.g:10785:1: rule__XMultiplicity__Group__2 : rule__XMultiplicity__Group__2__Impl ;
    public final void rule__XMultiplicity__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:10789:1: ( rule__XMultiplicity__Group__2__Impl )
            // InternalXcore.g:10790:2: rule__XMultiplicity__Group__2__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XMultiplicity__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMultiplicity__Group__2"


    // $ANTLR start "rule__XMultiplicity__Group__2__Impl"
    // InternalXcore.g:10796:1: rule__XMultiplicity__Group__2__Impl : ( ']' ) ;
    public final void rule__XMultiplicity__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:10800:1: ( ( ']' ) )
            // InternalXcore.g:10801:1: ( ']' )
            {
            // InternalXcore.g:10801:1: ( ']' )
            // InternalXcore.g:10802:1: ']'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMultiplicityAccess().getRightSquareBracketKeyword_2()); 
            }
            match(input,93,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXMultiplicityAccess().getRightSquareBracketKeyword_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMultiplicity__Group__2__Impl"


    // $ANTLR start "rule__XMultiplicity__Group_1_3__0"
    // InternalXcore.g:10821:1: rule__XMultiplicity__Group_1_3__0 : rule__XMultiplicity__Group_1_3__0__Impl rule__XMultiplicity__Group_1_3__1 ;
    public final void rule__XMultiplicity__Group_1_3__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:10825:1: ( rule__XMultiplicity__Group_1_3__0__Impl rule__XMultiplicity__Group_1_3__1 )
            // InternalXcore.g:10826:2: rule__XMultiplicity__Group_1_3__0__Impl rule__XMultiplicity__Group_1_3__1
            {
            pushFollow(FollowSets000.FOLLOW_61);
            rule__XMultiplicity__Group_1_3__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XMultiplicity__Group_1_3__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMultiplicity__Group_1_3__0"


    // $ANTLR start "rule__XMultiplicity__Group_1_3__0__Impl"
    // InternalXcore.g:10833:1: rule__XMultiplicity__Group_1_3__0__Impl : ( RULE_INT ) ;
    public final void rule__XMultiplicity__Group_1_3__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:10837:1: ( ( RULE_INT ) )
            // InternalXcore.g:10838:1: ( RULE_INT )
            {
            // InternalXcore.g:10838:1: ( RULE_INT )
            // InternalXcore.g:10839:1: RULE_INT
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMultiplicityAccess().getINTTerminalRuleCall_1_3_0()); 
            }
            match(input,RULE_INT,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXMultiplicityAccess().getINTTerminalRuleCall_1_3_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMultiplicity__Group_1_3__0__Impl"


    // $ANTLR start "rule__XMultiplicity__Group_1_3__1"
    // InternalXcore.g:10850:1: rule__XMultiplicity__Group_1_3__1 : rule__XMultiplicity__Group_1_3__1__Impl ;
    public final void rule__XMultiplicity__Group_1_3__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:10854:1: ( rule__XMultiplicity__Group_1_3__1__Impl )
            // InternalXcore.g:10855:2: rule__XMultiplicity__Group_1_3__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XMultiplicity__Group_1_3__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMultiplicity__Group_1_3__1"


    // $ANTLR start "rule__XMultiplicity__Group_1_3__1__Impl"
    // InternalXcore.g:10861:1: rule__XMultiplicity__Group_1_3__1__Impl : ( ( rule__XMultiplicity__Group_1_3_1__0 )? ) ;
    public final void rule__XMultiplicity__Group_1_3__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:10865:1: ( ( ( rule__XMultiplicity__Group_1_3_1__0 )? ) )
            // InternalXcore.g:10866:1: ( ( rule__XMultiplicity__Group_1_3_1__0 )? )
            {
            // InternalXcore.g:10866:1: ( ( rule__XMultiplicity__Group_1_3_1__0 )? )
            // InternalXcore.g:10867:1: ( rule__XMultiplicity__Group_1_3_1__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMultiplicityAccess().getGroup_1_3_1()); 
            }
            // InternalXcore.g:10868:1: ( rule__XMultiplicity__Group_1_3_1__0 )?
            int alt112=2;
            int LA112_0 = input.LA(1);

            if ( (LA112_0==69) ) {
                alt112=1;
            }
            switch (alt112) {
                case 1 :
                    // InternalXcore.g:10868:2: rule__XMultiplicity__Group_1_3_1__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XMultiplicity__Group_1_3_1__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXMultiplicityAccess().getGroup_1_3_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMultiplicity__Group_1_3__1__Impl"


    // $ANTLR start "rule__XMultiplicity__Group_1_3_1__0"
    // InternalXcore.g:10882:1: rule__XMultiplicity__Group_1_3_1__0 : rule__XMultiplicity__Group_1_3_1__0__Impl rule__XMultiplicity__Group_1_3_1__1 ;
    public final void rule__XMultiplicity__Group_1_3_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:10886:1: ( rule__XMultiplicity__Group_1_3_1__0__Impl rule__XMultiplicity__Group_1_3_1__1 )
            // InternalXcore.g:10887:2: rule__XMultiplicity__Group_1_3_1__0__Impl rule__XMultiplicity__Group_1_3_1__1
            {
            pushFollow(FollowSets000.FOLLOW_62);
            rule__XMultiplicity__Group_1_3_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XMultiplicity__Group_1_3_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMultiplicity__Group_1_3_1__0"


    // $ANTLR start "rule__XMultiplicity__Group_1_3_1__0__Impl"
    // InternalXcore.g:10894:1: rule__XMultiplicity__Group_1_3_1__0__Impl : ( '..' ) ;
    public final void rule__XMultiplicity__Group_1_3_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:10898:1: ( ( '..' ) )
            // InternalXcore.g:10899:1: ( '..' )
            {
            // InternalXcore.g:10899:1: ( '..' )
            // InternalXcore.g:10900:1: '..'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMultiplicityAccess().getFullStopFullStopKeyword_1_3_1_0()); 
            }
            match(input,69,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXMultiplicityAccess().getFullStopFullStopKeyword_1_3_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMultiplicity__Group_1_3_1__0__Impl"


    // $ANTLR start "rule__XMultiplicity__Group_1_3_1__1"
    // InternalXcore.g:10913:1: rule__XMultiplicity__Group_1_3_1__1 : rule__XMultiplicity__Group_1_3_1__1__Impl ;
    public final void rule__XMultiplicity__Group_1_3_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:10917:1: ( rule__XMultiplicity__Group_1_3_1__1__Impl )
            // InternalXcore.g:10918:2: rule__XMultiplicity__Group_1_3_1__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XMultiplicity__Group_1_3_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMultiplicity__Group_1_3_1__1"


    // $ANTLR start "rule__XMultiplicity__Group_1_3_1__1__Impl"
    // InternalXcore.g:10924:1: rule__XMultiplicity__Group_1_3_1__1__Impl : ( ( rule__XMultiplicity__Alternatives_1_3_1_1 ) ) ;
    public final void rule__XMultiplicity__Group_1_3_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:10928:1: ( ( ( rule__XMultiplicity__Alternatives_1_3_1_1 ) ) )
            // InternalXcore.g:10929:1: ( ( rule__XMultiplicity__Alternatives_1_3_1_1 ) )
            {
            // InternalXcore.g:10929:1: ( ( rule__XMultiplicity__Alternatives_1_3_1_1 ) )
            // InternalXcore.g:10930:1: ( rule__XMultiplicity__Alternatives_1_3_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMultiplicityAccess().getAlternatives_1_3_1_1()); 
            }
            // InternalXcore.g:10931:1: ( rule__XMultiplicity__Alternatives_1_3_1_1 )
            // InternalXcore.g:10931:2: rule__XMultiplicity__Alternatives_1_3_1_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XMultiplicity__Alternatives_1_3_1_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXMultiplicityAccess().getAlternatives_1_3_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMultiplicity__Group_1_3_1__1__Impl"


    // $ANTLR start "rule__XBlockExpression__Group__0"
    // InternalXcore.g:10945:1: rule__XBlockExpression__Group__0 : rule__XBlockExpression__Group__0__Impl rule__XBlockExpression__Group__1 ;
    public final void rule__XBlockExpression__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:10949:1: ( rule__XBlockExpression__Group__0__Impl rule__XBlockExpression__Group__1 )
            // InternalXcore.g:10950:2: rule__XBlockExpression__Group__0__Impl rule__XBlockExpression__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_26);
            rule__XBlockExpression__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XBlockExpression__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XBlockExpression__Group__0"


    // $ANTLR start "rule__XBlockExpression__Group__0__Impl"
    // InternalXcore.g:10957:1: rule__XBlockExpression__Group__0__Impl : ( () ) ;
    public final void rule__XBlockExpression__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:10961:1: ( ( () ) )
            // InternalXcore.g:10962:1: ( () )
            {
            // InternalXcore.g:10962:1: ( () )
            // InternalXcore.g:10963:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXBlockExpressionAccess().getXBlockExpressionAction_0()); 
            }
            // InternalXcore.g:10964:1: ()
            // InternalXcore.g:10966:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXBlockExpressionAccess().getXBlockExpressionAction_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XBlockExpression__Group__0__Impl"


    // $ANTLR start "rule__XBlockExpression__Group__1"
    // InternalXcore.g:10976:1: rule__XBlockExpression__Group__1 : rule__XBlockExpression__Group__1__Impl rule__XBlockExpression__Group__2 ;
    public final void rule__XBlockExpression__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:10980:1: ( rule__XBlockExpression__Group__1__Impl rule__XBlockExpression__Group__2 )
            // InternalXcore.g:10981:2: rule__XBlockExpression__Group__1__Impl rule__XBlockExpression__Group__2
            {
            pushFollow(FollowSets000.FOLLOW_63);
            rule__XBlockExpression__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XBlockExpression__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XBlockExpression__Group__1"


    // $ANTLR start "rule__XBlockExpression__Group__1__Impl"
    // InternalXcore.g:10988:1: rule__XBlockExpression__Group__1__Impl : ( '{' ) ;
    public final void rule__XBlockExpression__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:10992:1: ( ( '{' ) )
            // InternalXcore.g:10993:1: ( '{' )
            {
            // InternalXcore.g:10993:1: ( '{' )
            // InternalXcore.g:10994:1: '{'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXBlockExpressionAccess().getLeftCurlyBracketKeyword_1()); 
            }
            match(input,89,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXBlockExpressionAccess().getLeftCurlyBracketKeyword_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XBlockExpression__Group__1__Impl"


    // $ANTLR start "rule__XBlockExpression__Group__2"
    // InternalXcore.g:11007:1: rule__XBlockExpression__Group__2 : rule__XBlockExpression__Group__2__Impl rule__XBlockExpression__Group__3 ;
    public final void rule__XBlockExpression__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:11011:1: ( rule__XBlockExpression__Group__2__Impl rule__XBlockExpression__Group__3 )
            // InternalXcore.g:11012:2: rule__XBlockExpression__Group__2__Impl rule__XBlockExpression__Group__3
            {
            pushFollow(FollowSets000.FOLLOW_63);
            rule__XBlockExpression__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XBlockExpression__Group__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XBlockExpression__Group__2"


    // $ANTLR start "rule__XBlockExpression__Group__2__Impl"
    // InternalXcore.g:11019:1: rule__XBlockExpression__Group__2__Impl : ( ( rule__XBlockExpression__Group_2__0 )* ) ;
    public final void rule__XBlockExpression__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:11023:1: ( ( ( rule__XBlockExpression__Group_2__0 )* ) )
            // InternalXcore.g:11024:1: ( ( rule__XBlockExpression__Group_2__0 )* )
            {
            // InternalXcore.g:11024:1: ( ( rule__XBlockExpression__Group_2__0 )* )
            // InternalXcore.g:11025:1: ( rule__XBlockExpression__Group_2__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXBlockExpressionAccess().getGroup_2()); 
            }
            // InternalXcore.g:11026:1: ( rule__XBlockExpression__Group_2__0 )*
            loop113:
            do {
                int alt113=2;
                int LA113_0 = input.LA(1);

                if ( ((LA113_0>=RULE_INT && LA113_0<=RULE_STRING)||LA113_0==16||(LA113_0>=19 && LA113_0<=54)||LA113_0==66||LA113_0==73||LA113_0==77||(LA113_0>=81 && LA113_0<=83)||LA113_0==85||LA113_0==89||LA113_0==92||(LA113_0>=96 && LA113_0<=97)||LA113_0==99||(LA113_0>=103 && LA113_0<=111)||LA113_0==113||(LA113_0>=118 && LA113_0<=119)) ) {
                    alt113=1;
                }


                switch (alt113) {
            	case 1 :
            	    // InternalXcore.g:11026:2: rule__XBlockExpression__Group_2__0
            	    {
            	    pushFollow(FollowSets000.FOLLOW_64);
            	    rule__XBlockExpression__Group_2__0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop113;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXBlockExpressionAccess().getGroup_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XBlockExpression__Group__2__Impl"


    // $ANTLR start "rule__XBlockExpression__Group__3"
    // InternalXcore.g:11036:1: rule__XBlockExpression__Group__3 : rule__XBlockExpression__Group__3__Impl ;
    public final void rule__XBlockExpression__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:11040:1: ( rule__XBlockExpression__Group__3__Impl )
            // InternalXcore.g:11041:2: rule__XBlockExpression__Group__3__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XBlockExpression__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XBlockExpression__Group__3"


    // $ANTLR start "rule__XBlockExpression__Group__3__Impl"
    // InternalXcore.g:11047:1: rule__XBlockExpression__Group__3__Impl : ( '}' ) ;
    public final void rule__XBlockExpression__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:11051:1: ( ( '}' ) )
            // InternalXcore.g:11052:1: ( '}' )
            {
            // InternalXcore.g:11052:1: ( '}' )
            // InternalXcore.g:11053:1: '}'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXBlockExpressionAccess().getRightCurlyBracketKeyword_3()); 
            }
            match(input,90,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXBlockExpressionAccess().getRightCurlyBracketKeyword_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XBlockExpression__Group__3__Impl"


    // $ANTLR start "rule__XBlockExpression__Group_2__0"
    // InternalXcore.g:11074:1: rule__XBlockExpression__Group_2__0 : rule__XBlockExpression__Group_2__0__Impl rule__XBlockExpression__Group_2__1 ;
    public final void rule__XBlockExpression__Group_2__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:11078:1: ( rule__XBlockExpression__Group_2__0__Impl rule__XBlockExpression__Group_2__1 )
            // InternalXcore.g:11079:2: rule__XBlockExpression__Group_2__0__Impl rule__XBlockExpression__Group_2__1
            {
            pushFollow(FollowSets000.FOLLOW_65);
            rule__XBlockExpression__Group_2__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XBlockExpression__Group_2__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XBlockExpression__Group_2__0"


    // $ANTLR start "rule__XBlockExpression__Group_2__0__Impl"
    // InternalXcore.g:11086:1: rule__XBlockExpression__Group_2__0__Impl : ( ( rule__XBlockExpression__ExpressionsAssignment_2_0 ) ) ;
    public final void rule__XBlockExpression__Group_2__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:11090:1: ( ( ( rule__XBlockExpression__ExpressionsAssignment_2_0 ) ) )
            // InternalXcore.g:11091:1: ( ( rule__XBlockExpression__ExpressionsAssignment_2_0 ) )
            {
            // InternalXcore.g:11091:1: ( ( rule__XBlockExpression__ExpressionsAssignment_2_0 ) )
            // InternalXcore.g:11092:1: ( rule__XBlockExpression__ExpressionsAssignment_2_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXBlockExpressionAccess().getExpressionsAssignment_2_0()); 
            }
            // InternalXcore.g:11093:1: ( rule__XBlockExpression__ExpressionsAssignment_2_0 )
            // InternalXcore.g:11093:2: rule__XBlockExpression__ExpressionsAssignment_2_0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XBlockExpression__ExpressionsAssignment_2_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXBlockExpressionAccess().getExpressionsAssignment_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XBlockExpression__Group_2__0__Impl"


    // $ANTLR start "rule__XBlockExpression__Group_2__1"
    // InternalXcore.g:11103:1: rule__XBlockExpression__Group_2__1 : rule__XBlockExpression__Group_2__1__Impl ;
    public final void rule__XBlockExpression__Group_2__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:11107:1: ( rule__XBlockExpression__Group_2__1__Impl )
            // InternalXcore.g:11108:2: rule__XBlockExpression__Group_2__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XBlockExpression__Group_2__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XBlockExpression__Group_2__1"


    // $ANTLR start "rule__XBlockExpression__Group_2__1__Impl"
    // InternalXcore.g:11114:1: rule__XBlockExpression__Group_2__1__Impl : ( ( ';' )? ) ;
    public final void rule__XBlockExpression__Group_2__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:11118:1: ( ( ( ';' )? ) )
            // InternalXcore.g:11119:1: ( ( ';' )? )
            {
            // InternalXcore.g:11119:1: ( ( ';' )? )
            // InternalXcore.g:11120:1: ( ';' )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXBlockExpressionAccess().getSemicolonKeyword_2_1()); 
            }
            // InternalXcore.g:11121:1: ( ';' )?
            int alt114=2;
            int LA114_0 = input.LA(1);

            if ( (LA114_0==94) ) {
                alt114=1;
            }
            switch (alt114) {
                case 1 :
                    // InternalXcore.g:11122:2: ';'
                    {
                    match(input,94,FollowSets000.FOLLOW_2); if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXBlockExpressionAccess().getSemicolonKeyword_2_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XBlockExpression__Group_2__1__Impl"


    // $ANTLR start "rule__XGenericType__Group__0"
    // InternalXcore.g:11137:1: rule__XGenericType__Group__0 : rule__XGenericType__Group__0__Impl rule__XGenericType__Group__1 ;
    public final void rule__XGenericType__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:11141:1: ( rule__XGenericType__Group__0__Impl rule__XGenericType__Group__1 )
            // InternalXcore.g:11142:2: rule__XGenericType__Group__0__Impl rule__XGenericType__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_66);
            rule__XGenericType__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XGenericType__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XGenericType__Group__0"


    // $ANTLR start "rule__XGenericType__Group__0__Impl"
    // InternalXcore.g:11149:1: rule__XGenericType__Group__0__Impl : ( ( rule__XGenericType__TypeAssignment_0 ) ) ;
    public final void rule__XGenericType__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:11153:1: ( ( ( rule__XGenericType__TypeAssignment_0 ) ) )
            // InternalXcore.g:11154:1: ( ( rule__XGenericType__TypeAssignment_0 ) )
            {
            // InternalXcore.g:11154:1: ( ( rule__XGenericType__TypeAssignment_0 ) )
            // InternalXcore.g:11155:1: ( rule__XGenericType__TypeAssignment_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXGenericTypeAccess().getTypeAssignment_0()); 
            }
            // InternalXcore.g:11156:1: ( rule__XGenericType__TypeAssignment_0 )
            // InternalXcore.g:11156:2: rule__XGenericType__TypeAssignment_0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XGenericType__TypeAssignment_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXGenericTypeAccess().getTypeAssignment_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XGenericType__Group__0__Impl"


    // $ANTLR start "rule__XGenericType__Group__1"
    // InternalXcore.g:11166:1: rule__XGenericType__Group__1 : rule__XGenericType__Group__1__Impl ;
    public final void rule__XGenericType__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:11170:1: ( rule__XGenericType__Group__1__Impl )
            // InternalXcore.g:11171:2: rule__XGenericType__Group__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XGenericType__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XGenericType__Group__1"


    // $ANTLR start "rule__XGenericType__Group__1__Impl"
    // InternalXcore.g:11177:1: rule__XGenericType__Group__1__Impl : ( ( rule__XGenericType__Group_1__0 )? ) ;
    public final void rule__XGenericType__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:11181:1: ( ( ( rule__XGenericType__Group_1__0 )? ) )
            // InternalXcore.g:11182:1: ( ( rule__XGenericType__Group_1__0 )? )
            {
            // InternalXcore.g:11182:1: ( ( rule__XGenericType__Group_1__0 )? )
            // InternalXcore.g:11183:1: ( rule__XGenericType__Group_1__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXGenericTypeAccess().getGroup_1()); 
            }
            // InternalXcore.g:11184:1: ( rule__XGenericType__Group_1__0 )?
            int alt115=2;
            int LA115_0 = input.LA(1);

            if ( (LA115_0==66) ) {
                alt115=1;
            }
            switch (alt115) {
                case 1 :
                    // InternalXcore.g:11184:2: rule__XGenericType__Group_1__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XGenericType__Group_1__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXGenericTypeAccess().getGroup_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XGenericType__Group__1__Impl"


    // $ANTLR start "rule__XGenericType__Group_1__0"
    // InternalXcore.g:11198:1: rule__XGenericType__Group_1__0 : rule__XGenericType__Group_1__0__Impl rule__XGenericType__Group_1__1 ;
    public final void rule__XGenericType__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:11202:1: ( rule__XGenericType__Group_1__0__Impl rule__XGenericType__Group_1__1 )
            // InternalXcore.g:11203:2: rule__XGenericType__Group_1__0__Impl rule__XGenericType__Group_1__1
            {
            pushFollow(FollowSets000.FOLLOW_67);
            rule__XGenericType__Group_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XGenericType__Group_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XGenericType__Group_1__0"


    // $ANTLR start "rule__XGenericType__Group_1__0__Impl"
    // InternalXcore.g:11210:1: rule__XGenericType__Group_1__0__Impl : ( ( '<' ) ) ;
    public final void rule__XGenericType__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:11214:1: ( ( ( '<' ) ) )
            // InternalXcore.g:11215:1: ( ( '<' ) )
            {
            // InternalXcore.g:11215:1: ( ( '<' ) )
            // InternalXcore.g:11216:1: ( '<' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXGenericTypeAccess().getLessThanSignKeyword_1_0()); 
            }
            // InternalXcore.g:11217:1: ( '<' )
            // InternalXcore.g:11218:2: '<'
            {
            match(input,66,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXGenericTypeAccess().getLessThanSignKeyword_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XGenericType__Group_1__0__Impl"


    // $ANTLR start "rule__XGenericType__Group_1__1"
    // InternalXcore.g:11229:1: rule__XGenericType__Group_1__1 : rule__XGenericType__Group_1__1__Impl rule__XGenericType__Group_1__2 ;
    public final void rule__XGenericType__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:11233:1: ( rule__XGenericType__Group_1__1__Impl rule__XGenericType__Group_1__2 )
            // InternalXcore.g:11234:2: rule__XGenericType__Group_1__1__Impl rule__XGenericType__Group_1__2
            {
            pushFollow(FollowSets000.FOLLOW_25);
            rule__XGenericType__Group_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XGenericType__Group_1__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XGenericType__Group_1__1"


    // $ANTLR start "rule__XGenericType__Group_1__1__Impl"
    // InternalXcore.g:11241:1: rule__XGenericType__Group_1__1__Impl : ( ( rule__XGenericType__TypeArgumentsAssignment_1_1 ) ) ;
    public final void rule__XGenericType__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:11245:1: ( ( ( rule__XGenericType__TypeArgumentsAssignment_1_1 ) ) )
            // InternalXcore.g:11246:1: ( ( rule__XGenericType__TypeArgumentsAssignment_1_1 ) )
            {
            // InternalXcore.g:11246:1: ( ( rule__XGenericType__TypeArgumentsAssignment_1_1 ) )
            // InternalXcore.g:11247:1: ( rule__XGenericType__TypeArgumentsAssignment_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXGenericTypeAccess().getTypeArgumentsAssignment_1_1()); 
            }
            // InternalXcore.g:11248:1: ( rule__XGenericType__TypeArgumentsAssignment_1_1 )
            // InternalXcore.g:11248:2: rule__XGenericType__TypeArgumentsAssignment_1_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XGenericType__TypeArgumentsAssignment_1_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXGenericTypeAccess().getTypeArgumentsAssignment_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XGenericType__Group_1__1__Impl"


    // $ANTLR start "rule__XGenericType__Group_1__2"
    // InternalXcore.g:11258:1: rule__XGenericType__Group_1__2 : rule__XGenericType__Group_1__2__Impl rule__XGenericType__Group_1__3 ;
    public final void rule__XGenericType__Group_1__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:11262:1: ( rule__XGenericType__Group_1__2__Impl rule__XGenericType__Group_1__3 )
            // InternalXcore.g:11263:2: rule__XGenericType__Group_1__2__Impl rule__XGenericType__Group_1__3
            {
            pushFollow(FollowSets000.FOLLOW_25);
            rule__XGenericType__Group_1__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XGenericType__Group_1__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XGenericType__Group_1__2"


    // $ANTLR start "rule__XGenericType__Group_1__2__Impl"
    // InternalXcore.g:11270:1: rule__XGenericType__Group_1__2__Impl : ( ( rule__XGenericType__Group_1_2__0 )* ) ;
    public final void rule__XGenericType__Group_1__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:11274:1: ( ( ( rule__XGenericType__Group_1_2__0 )* ) )
            // InternalXcore.g:11275:1: ( ( rule__XGenericType__Group_1_2__0 )* )
            {
            // InternalXcore.g:11275:1: ( ( rule__XGenericType__Group_1_2__0 )* )
            // InternalXcore.g:11276:1: ( rule__XGenericType__Group_1_2__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXGenericTypeAccess().getGroup_1_2()); 
            }
            // InternalXcore.g:11277:1: ( rule__XGenericType__Group_1_2__0 )*
            loop116:
            do {
                int alt116=2;
                int LA116_0 = input.LA(1);

                if ( (LA116_0==87) ) {
                    alt116=1;
                }


                switch (alt116) {
            	case 1 :
            	    // InternalXcore.g:11277:2: rule__XGenericType__Group_1_2__0
            	    {
            	    pushFollow(FollowSets000.FOLLOW_14);
            	    rule__XGenericType__Group_1_2__0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop116;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXGenericTypeAccess().getGroup_1_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XGenericType__Group_1__2__Impl"


    // $ANTLR start "rule__XGenericType__Group_1__3"
    // InternalXcore.g:11287:1: rule__XGenericType__Group_1__3 : rule__XGenericType__Group_1__3__Impl ;
    public final void rule__XGenericType__Group_1__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:11291:1: ( rule__XGenericType__Group_1__3__Impl )
            // InternalXcore.g:11292:2: rule__XGenericType__Group_1__3__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XGenericType__Group_1__3__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XGenericType__Group_1__3"


    // $ANTLR start "rule__XGenericType__Group_1__3__Impl"
    // InternalXcore.g:11298:1: rule__XGenericType__Group_1__3__Impl : ( '>' ) ;
    public final void rule__XGenericType__Group_1__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:11302:1: ( ( '>' ) )
            // InternalXcore.g:11303:1: ( '>' )
            {
            // InternalXcore.g:11303:1: ( '>' )
            // InternalXcore.g:11304:1: '>'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXGenericTypeAccess().getGreaterThanSignKeyword_1_3()); 
            }
            match(input,65,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXGenericTypeAccess().getGreaterThanSignKeyword_1_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XGenericType__Group_1__3__Impl"


    // $ANTLR start "rule__XGenericType__Group_1_2__0"
    // InternalXcore.g:11325:1: rule__XGenericType__Group_1_2__0 : rule__XGenericType__Group_1_2__0__Impl rule__XGenericType__Group_1_2__1 ;
    public final void rule__XGenericType__Group_1_2__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:11329:1: ( rule__XGenericType__Group_1_2__0__Impl rule__XGenericType__Group_1_2__1 )
            // InternalXcore.g:11330:2: rule__XGenericType__Group_1_2__0__Impl rule__XGenericType__Group_1_2__1
            {
            pushFollow(FollowSets000.FOLLOW_67);
            rule__XGenericType__Group_1_2__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XGenericType__Group_1_2__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XGenericType__Group_1_2__0"


    // $ANTLR start "rule__XGenericType__Group_1_2__0__Impl"
    // InternalXcore.g:11337:1: rule__XGenericType__Group_1_2__0__Impl : ( ',' ) ;
    public final void rule__XGenericType__Group_1_2__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:11341:1: ( ( ',' ) )
            // InternalXcore.g:11342:1: ( ',' )
            {
            // InternalXcore.g:11342:1: ( ',' )
            // InternalXcore.g:11343:1: ','
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXGenericTypeAccess().getCommaKeyword_1_2_0()); 
            }
            match(input,87,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXGenericTypeAccess().getCommaKeyword_1_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XGenericType__Group_1_2__0__Impl"


    // $ANTLR start "rule__XGenericType__Group_1_2__1"
    // InternalXcore.g:11356:1: rule__XGenericType__Group_1_2__1 : rule__XGenericType__Group_1_2__1__Impl ;
    public final void rule__XGenericType__Group_1_2__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:11360:1: ( rule__XGenericType__Group_1_2__1__Impl )
            // InternalXcore.g:11361:2: rule__XGenericType__Group_1_2__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XGenericType__Group_1_2__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XGenericType__Group_1_2__1"


    // $ANTLR start "rule__XGenericType__Group_1_2__1__Impl"
    // InternalXcore.g:11367:1: rule__XGenericType__Group_1_2__1__Impl : ( ( rule__XGenericType__TypeArgumentsAssignment_1_2_1 ) ) ;
    public final void rule__XGenericType__Group_1_2__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:11371:1: ( ( ( rule__XGenericType__TypeArgumentsAssignment_1_2_1 ) ) )
            // InternalXcore.g:11372:1: ( ( rule__XGenericType__TypeArgumentsAssignment_1_2_1 ) )
            {
            // InternalXcore.g:11372:1: ( ( rule__XGenericType__TypeArgumentsAssignment_1_2_1 ) )
            // InternalXcore.g:11373:1: ( rule__XGenericType__TypeArgumentsAssignment_1_2_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXGenericTypeAccess().getTypeArgumentsAssignment_1_2_1()); 
            }
            // InternalXcore.g:11374:1: ( rule__XGenericType__TypeArgumentsAssignment_1_2_1 )
            // InternalXcore.g:11374:2: rule__XGenericType__TypeArgumentsAssignment_1_2_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XGenericType__TypeArgumentsAssignment_1_2_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXGenericTypeAccess().getTypeArgumentsAssignment_1_2_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XGenericType__Group_1_2__1__Impl"


    // $ANTLR start "rule__XGenericWildcardTypeArgument__Group__0"
    // InternalXcore.g:11388:1: rule__XGenericWildcardTypeArgument__Group__0 : rule__XGenericWildcardTypeArgument__Group__0__Impl rule__XGenericWildcardTypeArgument__Group__1 ;
    public final void rule__XGenericWildcardTypeArgument__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:11392:1: ( rule__XGenericWildcardTypeArgument__Group__0__Impl rule__XGenericWildcardTypeArgument__Group__1 )
            // InternalXcore.g:11393:2: rule__XGenericWildcardTypeArgument__Group__0__Impl rule__XGenericWildcardTypeArgument__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_67);
            rule__XGenericWildcardTypeArgument__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XGenericWildcardTypeArgument__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XGenericWildcardTypeArgument__Group__0"


    // $ANTLR start "rule__XGenericWildcardTypeArgument__Group__0__Impl"
    // InternalXcore.g:11400:1: rule__XGenericWildcardTypeArgument__Group__0__Impl : ( () ) ;
    public final void rule__XGenericWildcardTypeArgument__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:11404:1: ( ( () ) )
            // InternalXcore.g:11405:1: ( () )
            {
            // InternalXcore.g:11405:1: ( () )
            // InternalXcore.g:11406:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXGenericWildcardTypeArgumentAccess().getXGenericTypeAction_0()); 
            }
            // InternalXcore.g:11407:1: ()
            // InternalXcore.g:11409:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXGenericWildcardTypeArgumentAccess().getXGenericTypeAction_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XGenericWildcardTypeArgument__Group__0__Impl"


    // $ANTLR start "rule__XGenericWildcardTypeArgument__Group__1"
    // InternalXcore.g:11419:1: rule__XGenericWildcardTypeArgument__Group__1 : rule__XGenericWildcardTypeArgument__Group__1__Impl rule__XGenericWildcardTypeArgument__Group__2 ;
    public final void rule__XGenericWildcardTypeArgument__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:11423:1: ( rule__XGenericWildcardTypeArgument__Group__1__Impl rule__XGenericWildcardTypeArgument__Group__2 )
            // InternalXcore.g:11424:2: rule__XGenericWildcardTypeArgument__Group__1__Impl rule__XGenericWildcardTypeArgument__Group__2
            {
            pushFollow(FollowSets000.FOLLOW_68);
            rule__XGenericWildcardTypeArgument__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XGenericWildcardTypeArgument__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XGenericWildcardTypeArgument__Group__1"


    // $ANTLR start "rule__XGenericWildcardTypeArgument__Group__1__Impl"
    // InternalXcore.g:11431:1: rule__XGenericWildcardTypeArgument__Group__1__Impl : ( '?' ) ;
    public final void rule__XGenericWildcardTypeArgument__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:11435:1: ( ( '?' ) )
            // InternalXcore.g:11436:1: ( '?' )
            {
            // InternalXcore.g:11436:1: ( '?' )
            // InternalXcore.g:11437:1: '?'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXGenericWildcardTypeArgumentAccess().getQuestionMarkKeyword_1()); 
            }
            match(input,17,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXGenericWildcardTypeArgumentAccess().getQuestionMarkKeyword_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XGenericWildcardTypeArgument__Group__1__Impl"


    // $ANTLR start "rule__XGenericWildcardTypeArgument__Group__2"
    // InternalXcore.g:11450:1: rule__XGenericWildcardTypeArgument__Group__2 : rule__XGenericWildcardTypeArgument__Group__2__Impl ;
    public final void rule__XGenericWildcardTypeArgument__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:11454:1: ( rule__XGenericWildcardTypeArgument__Group__2__Impl )
            // InternalXcore.g:11455:2: rule__XGenericWildcardTypeArgument__Group__2__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XGenericWildcardTypeArgument__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XGenericWildcardTypeArgument__Group__2"


    // $ANTLR start "rule__XGenericWildcardTypeArgument__Group__2__Impl"
    // InternalXcore.g:11461:1: rule__XGenericWildcardTypeArgument__Group__2__Impl : ( ( rule__XGenericWildcardTypeArgument__Alternatives_2 )? ) ;
    public final void rule__XGenericWildcardTypeArgument__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:11465:1: ( ( ( rule__XGenericWildcardTypeArgument__Alternatives_2 )? ) )
            // InternalXcore.g:11466:1: ( ( rule__XGenericWildcardTypeArgument__Alternatives_2 )? )
            {
            // InternalXcore.g:11466:1: ( ( rule__XGenericWildcardTypeArgument__Alternatives_2 )? )
            // InternalXcore.g:11467:1: ( rule__XGenericWildcardTypeArgument__Alternatives_2 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXGenericWildcardTypeArgumentAccess().getAlternatives_2()); 
            }
            // InternalXcore.g:11468:1: ( rule__XGenericWildcardTypeArgument__Alternatives_2 )?
            int alt117=2;
            int LA117_0 = input.LA(1);

            if ( (LA117_0==34||LA117_0==82) ) {
                alt117=1;
            }
            switch (alt117) {
                case 1 :
                    // InternalXcore.g:11468:2: rule__XGenericWildcardTypeArgument__Alternatives_2
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XGenericWildcardTypeArgument__Alternatives_2();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXGenericWildcardTypeArgumentAccess().getAlternatives_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XGenericWildcardTypeArgument__Group__2__Impl"


    // $ANTLR start "rule__XGenericWildcardTypeArgument__Group_2_0__0"
    // InternalXcore.g:11484:1: rule__XGenericWildcardTypeArgument__Group_2_0__0 : rule__XGenericWildcardTypeArgument__Group_2_0__0__Impl rule__XGenericWildcardTypeArgument__Group_2_0__1 ;
    public final void rule__XGenericWildcardTypeArgument__Group_2_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:11488:1: ( rule__XGenericWildcardTypeArgument__Group_2_0__0__Impl rule__XGenericWildcardTypeArgument__Group_2_0__1 )
            // InternalXcore.g:11489:2: rule__XGenericWildcardTypeArgument__Group_2_0__0__Impl rule__XGenericWildcardTypeArgument__Group_2_0__1
            {
            pushFollow(FollowSets000.FOLLOW_11);
            rule__XGenericWildcardTypeArgument__Group_2_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XGenericWildcardTypeArgument__Group_2_0__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XGenericWildcardTypeArgument__Group_2_0__0"


    // $ANTLR start "rule__XGenericWildcardTypeArgument__Group_2_0__0__Impl"
    // InternalXcore.g:11496:1: rule__XGenericWildcardTypeArgument__Group_2_0__0__Impl : ( 'extends' ) ;
    public final void rule__XGenericWildcardTypeArgument__Group_2_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:11500:1: ( ( 'extends' ) )
            // InternalXcore.g:11501:1: ( 'extends' )
            {
            // InternalXcore.g:11501:1: ( 'extends' )
            // InternalXcore.g:11502:1: 'extends'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXGenericWildcardTypeArgumentAccess().getExtendsKeyword_2_0_0()); 
            }
            match(input,34,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXGenericWildcardTypeArgumentAccess().getExtendsKeyword_2_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XGenericWildcardTypeArgument__Group_2_0__0__Impl"


    // $ANTLR start "rule__XGenericWildcardTypeArgument__Group_2_0__1"
    // InternalXcore.g:11515:1: rule__XGenericWildcardTypeArgument__Group_2_0__1 : rule__XGenericWildcardTypeArgument__Group_2_0__1__Impl ;
    public final void rule__XGenericWildcardTypeArgument__Group_2_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:11519:1: ( rule__XGenericWildcardTypeArgument__Group_2_0__1__Impl )
            // InternalXcore.g:11520:2: rule__XGenericWildcardTypeArgument__Group_2_0__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XGenericWildcardTypeArgument__Group_2_0__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XGenericWildcardTypeArgument__Group_2_0__1"


    // $ANTLR start "rule__XGenericWildcardTypeArgument__Group_2_0__1__Impl"
    // InternalXcore.g:11526:1: rule__XGenericWildcardTypeArgument__Group_2_0__1__Impl : ( ( rule__XGenericWildcardTypeArgument__UpperBoundAssignment_2_0_1 ) ) ;
    public final void rule__XGenericWildcardTypeArgument__Group_2_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:11530:1: ( ( ( rule__XGenericWildcardTypeArgument__UpperBoundAssignment_2_0_1 ) ) )
            // InternalXcore.g:11531:1: ( ( rule__XGenericWildcardTypeArgument__UpperBoundAssignment_2_0_1 ) )
            {
            // InternalXcore.g:11531:1: ( ( rule__XGenericWildcardTypeArgument__UpperBoundAssignment_2_0_1 ) )
            // InternalXcore.g:11532:1: ( rule__XGenericWildcardTypeArgument__UpperBoundAssignment_2_0_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXGenericWildcardTypeArgumentAccess().getUpperBoundAssignment_2_0_1()); 
            }
            // InternalXcore.g:11533:1: ( rule__XGenericWildcardTypeArgument__UpperBoundAssignment_2_0_1 )
            // InternalXcore.g:11533:2: rule__XGenericWildcardTypeArgument__UpperBoundAssignment_2_0_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XGenericWildcardTypeArgument__UpperBoundAssignment_2_0_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXGenericWildcardTypeArgumentAccess().getUpperBoundAssignment_2_0_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XGenericWildcardTypeArgument__Group_2_0__1__Impl"


    // $ANTLR start "rule__XGenericWildcardTypeArgument__Group_2_1__0"
    // InternalXcore.g:11547:1: rule__XGenericWildcardTypeArgument__Group_2_1__0 : rule__XGenericWildcardTypeArgument__Group_2_1__0__Impl rule__XGenericWildcardTypeArgument__Group_2_1__1 ;
    public final void rule__XGenericWildcardTypeArgument__Group_2_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:11551:1: ( rule__XGenericWildcardTypeArgument__Group_2_1__0__Impl rule__XGenericWildcardTypeArgument__Group_2_1__1 )
            // InternalXcore.g:11552:2: rule__XGenericWildcardTypeArgument__Group_2_1__0__Impl rule__XGenericWildcardTypeArgument__Group_2_1__1
            {
            pushFollow(FollowSets000.FOLLOW_11);
            rule__XGenericWildcardTypeArgument__Group_2_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XGenericWildcardTypeArgument__Group_2_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XGenericWildcardTypeArgument__Group_2_1__0"


    // $ANTLR start "rule__XGenericWildcardTypeArgument__Group_2_1__0__Impl"
    // InternalXcore.g:11559:1: rule__XGenericWildcardTypeArgument__Group_2_1__0__Impl : ( 'super' ) ;
    public final void rule__XGenericWildcardTypeArgument__Group_2_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:11563:1: ( ( 'super' ) )
            // InternalXcore.g:11564:1: ( 'super' )
            {
            // InternalXcore.g:11564:1: ( 'super' )
            // InternalXcore.g:11565:1: 'super'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXGenericWildcardTypeArgumentAccess().getSuperKeyword_2_1_0()); 
            }
            match(input,82,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXGenericWildcardTypeArgumentAccess().getSuperKeyword_2_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XGenericWildcardTypeArgument__Group_2_1__0__Impl"


    // $ANTLR start "rule__XGenericWildcardTypeArgument__Group_2_1__1"
    // InternalXcore.g:11578:1: rule__XGenericWildcardTypeArgument__Group_2_1__1 : rule__XGenericWildcardTypeArgument__Group_2_1__1__Impl ;
    public final void rule__XGenericWildcardTypeArgument__Group_2_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:11582:1: ( rule__XGenericWildcardTypeArgument__Group_2_1__1__Impl )
            // InternalXcore.g:11583:2: rule__XGenericWildcardTypeArgument__Group_2_1__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XGenericWildcardTypeArgument__Group_2_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XGenericWildcardTypeArgument__Group_2_1__1"


    // $ANTLR start "rule__XGenericWildcardTypeArgument__Group_2_1__1__Impl"
    // InternalXcore.g:11589:1: rule__XGenericWildcardTypeArgument__Group_2_1__1__Impl : ( ( rule__XGenericWildcardTypeArgument__LowerBoundAssignment_2_1_1 ) ) ;
    public final void rule__XGenericWildcardTypeArgument__Group_2_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:11593:1: ( ( ( rule__XGenericWildcardTypeArgument__LowerBoundAssignment_2_1_1 ) ) )
            // InternalXcore.g:11594:1: ( ( rule__XGenericWildcardTypeArgument__LowerBoundAssignment_2_1_1 ) )
            {
            // InternalXcore.g:11594:1: ( ( rule__XGenericWildcardTypeArgument__LowerBoundAssignment_2_1_1 ) )
            // InternalXcore.g:11595:1: ( rule__XGenericWildcardTypeArgument__LowerBoundAssignment_2_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXGenericWildcardTypeArgumentAccess().getLowerBoundAssignment_2_1_1()); 
            }
            // InternalXcore.g:11596:1: ( rule__XGenericWildcardTypeArgument__LowerBoundAssignment_2_1_1 )
            // InternalXcore.g:11596:2: rule__XGenericWildcardTypeArgument__LowerBoundAssignment_2_1_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XGenericWildcardTypeArgument__LowerBoundAssignment_2_1_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXGenericWildcardTypeArgumentAccess().getLowerBoundAssignment_2_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XGenericWildcardTypeArgument__Group_2_1__1__Impl"


    // $ANTLR start "rule__XQualifiedName__Group__0"
    // InternalXcore.g:11610:1: rule__XQualifiedName__Group__0 : rule__XQualifiedName__Group__0__Impl rule__XQualifiedName__Group__1 ;
    public final void rule__XQualifiedName__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:11614:1: ( rule__XQualifiedName__Group__0__Impl rule__XQualifiedName__Group__1 )
            // InternalXcore.g:11615:2: rule__XQualifiedName__Group__0__Impl rule__XQualifiedName__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_69);
            rule__XQualifiedName__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XQualifiedName__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XQualifiedName__Group__0"


    // $ANTLR start "rule__XQualifiedName__Group__0__Impl"
    // InternalXcore.g:11622:1: rule__XQualifiedName__Group__0__Impl : ( ruleXID ) ;
    public final void rule__XQualifiedName__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:11626:1: ( ( ruleXID ) )
            // InternalXcore.g:11627:1: ( ruleXID )
            {
            // InternalXcore.g:11627:1: ( ruleXID )
            // InternalXcore.g:11628:1: ruleXID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXQualifiedNameAccess().getXIDParserRuleCall_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXID();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXQualifiedNameAccess().getXIDParserRuleCall_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XQualifiedName__Group__0__Impl"


    // $ANTLR start "rule__XQualifiedName__Group__1"
    // InternalXcore.g:11639:1: rule__XQualifiedName__Group__1 : rule__XQualifiedName__Group__1__Impl ;
    public final void rule__XQualifiedName__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:11643:1: ( rule__XQualifiedName__Group__1__Impl )
            // InternalXcore.g:11644:2: rule__XQualifiedName__Group__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XQualifiedName__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XQualifiedName__Group__1"


    // $ANTLR start "rule__XQualifiedName__Group__1__Impl"
    // InternalXcore.g:11650:1: rule__XQualifiedName__Group__1__Impl : ( ( rule__XQualifiedName__Group_1__0 )* ) ;
    public final void rule__XQualifiedName__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:11654:1: ( ( ( rule__XQualifiedName__Group_1__0 )* ) )
            // InternalXcore.g:11655:1: ( ( rule__XQualifiedName__Group_1__0 )* )
            {
            // InternalXcore.g:11655:1: ( ( rule__XQualifiedName__Group_1__0 )* )
            // InternalXcore.g:11656:1: ( rule__XQualifiedName__Group_1__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXQualifiedNameAccess().getGroup_1()); 
            }
            // InternalXcore.g:11657:1: ( rule__XQualifiedName__Group_1__0 )*
            loop118:
            do {
                int alt118=2;
                int LA118_0 = input.LA(1);

                if ( (LA118_0==80) ) {
                    alt118=1;
                }


                switch (alt118) {
            	case 1 :
            	    // InternalXcore.g:11657:2: rule__XQualifiedName__Group_1__0
            	    {
            	    pushFollow(FollowSets000.FOLLOW_70);
            	    rule__XQualifiedName__Group_1__0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop118;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXQualifiedNameAccess().getGroup_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XQualifiedName__Group__1__Impl"


    // $ANTLR start "rule__XQualifiedName__Group_1__0"
    // InternalXcore.g:11671:1: rule__XQualifiedName__Group_1__0 : rule__XQualifiedName__Group_1__0__Impl rule__XQualifiedName__Group_1__1 ;
    public final void rule__XQualifiedName__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:11675:1: ( rule__XQualifiedName__Group_1__0__Impl rule__XQualifiedName__Group_1__1 )
            // InternalXcore.g:11676:2: rule__XQualifiedName__Group_1__0__Impl rule__XQualifiedName__Group_1__1
            {
            pushFollow(FollowSets000.FOLLOW_11);
            rule__XQualifiedName__Group_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XQualifiedName__Group_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XQualifiedName__Group_1__0"


    // $ANTLR start "rule__XQualifiedName__Group_1__0__Impl"
    // InternalXcore.g:11683:1: rule__XQualifiedName__Group_1__0__Impl : ( '.' ) ;
    public final void rule__XQualifiedName__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:11687:1: ( ( '.' ) )
            // InternalXcore.g:11688:1: ( '.' )
            {
            // InternalXcore.g:11688:1: ( '.' )
            // InternalXcore.g:11689:1: '.'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXQualifiedNameAccess().getFullStopKeyword_1_0()); 
            }
            match(input,80,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXQualifiedNameAccess().getFullStopKeyword_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XQualifiedName__Group_1__0__Impl"


    // $ANTLR start "rule__XQualifiedName__Group_1__1"
    // InternalXcore.g:11702:1: rule__XQualifiedName__Group_1__1 : rule__XQualifiedName__Group_1__1__Impl ;
    public final void rule__XQualifiedName__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:11706:1: ( rule__XQualifiedName__Group_1__1__Impl )
            // InternalXcore.g:11707:2: rule__XQualifiedName__Group_1__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XQualifiedName__Group_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XQualifiedName__Group_1__1"


    // $ANTLR start "rule__XQualifiedName__Group_1__1__Impl"
    // InternalXcore.g:11713:1: rule__XQualifiedName__Group_1__1__Impl : ( ruleXID ) ;
    public final void rule__XQualifiedName__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:11717:1: ( ( ruleXID ) )
            // InternalXcore.g:11718:1: ( ruleXID )
            {
            // InternalXcore.g:11718:1: ( ruleXID )
            // InternalXcore.g:11719:1: ruleXID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXQualifiedNameAccess().getXIDParserRuleCall_1_1()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXID();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXQualifiedNameAccess().getXIDParserRuleCall_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XQualifiedName__Group_1__1__Impl"


    // $ANTLR start "rule__XAssignment__Group_0__0"
    // InternalXcore.g:11734:1: rule__XAssignment__Group_0__0 : rule__XAssignment__Group_0__0__Impl rule__XAssignment__Group_0__1 ;
    public final void rule__XAssignment__Group_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:11738:1: ( rule__XAssignment__Group_0__0__Impl rule__XAssignment__Group_0__1 )
            // InternalXcore.g:11739:2: rule__XAssignment__Group_0__0__Impl rule__XAssignment__Group_0__1
            {
            pushFollow(FollowSets000.FOLLOW_71);
            rule__XAssignment__Group_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XAssignment__Group_0__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAssignment__Group_0__0"


    // $ANTLR start "rule__XAssignment__Group_0__0__Impl"
    // InternalXcore.g:11746:1: rule__XAssignment__Group_0__0__Impl : ( () ) ;
    public final void rule__XAssignment__Group_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:11750:1: ( ( () ) )
            // InternalXcore.g:11751:1: ( () )
            {
            // InternalXcore.g:11751:1: ( () )
            // InternalXcore.g:11752:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAssignmentAccess().getXAssignmentAction_0_0()); 
            }
            // InternalXcore.g:11753:1: ()
            // InternalXcore.g:11755:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAssignmentAccess().getXAssignmentAction_0_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAssignment__Group_0__0__Impl"


    // $ANTLR start "rule__XAssignment__Group_0__1"
    // InternalXcore.g:11765:1: rule__XAssignment__Group_0__1 : rule__XAssignment__Group_0__1__Impl rule__XAssignment__Group_0__2 ;
    public final void rule__XAssignment__Group_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:11769:1: ( rule__XAssignment__Group_0__1__Impl rule__XAssignment__Group_0__2 )
            // InternalXcore.g:11770:2: rule__XAssignment__Group_0__1__Impl rule__XAssignment__Group_0__2
            {
            pushFollow(FollowSets000.FOLLOW_15);
            rule__XAssignment__Group_0__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XAssignment__Group_0__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAssignment__Group_0__1"


    // $ANTLR start "rule__XAssignment__Group_0__1__Impl"
    // InternalXcore.g:11777:1: rule__XAssignment__Group_0__1__Impl : ( ( rule__XAssignment__FeatureAssignment_0_1 ) ) ;
    public final void rule__XAssignment__Group_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:11781:1: ( ( ( rule__XAssignment__FeatureAssignment_0_1 ) ) )
            // InternalXcore.g:11782:1: ( ( rule__XAssignment__FeatureAssignment_0_1 ) )
            {
            // InternalXcore.g:11782:1: ( ( rule__XAssignment__FeatureAssignment_0_1 ) )
            // InternalXcore.g:11783:1: ( rule__XAssignment__FeatureAssignment_0_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAssignmentAccess().getFeatureAssignment_0_1()); 
            }
            // InternalXcore.g:11784:1: ( rule__XAssignment__FeatureAssignment_0_1 )
            // InternalXcore.g:11784:2: rule__XAssignment__FeatureAssignment_0_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XAssignment__FeatureAssignment_0_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAssignmentAccess().getFeatureAssignment_0_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAssignment__Group_0__1__Impl"


    // $ANTLR start "rule__XAssignment__Group_0__2"
    // InternalXcore.g:11794:1: rule__XAssignment__Group_0__2 : rule__XAssignment__Group_0__2__Impl rule__XAssignment__Group_0__3 ;
    public final void rule__XAssignment__Group_0__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:11798:1: ( rule__XAssignment__Group_0__2__Impl rule__XAssignment__Group_0__3 )
            // InternalXcore.g:11799:2: rule__XAssignment__Group_0__2__Impl rule__XAssignment__Group_0__3
            {
            pushFollow(FollowSets000.FOLLOW_72);
            rule__XAssignment__Group_0__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XAssignment__Group_0__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAssignment__Group_0__2"


    // $ANTLR start "rule__XAssignment__Group_0__2__Impl"
    // InternalXcore.g:11806:1: rule__XAssignment__Group_0__2__Impl : ( ruleOpSingleAssign ) ;
    public final void rule__XAssignment__Group_0__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:11810:1: ( ( ruleOpSingleAssign ) )
            // InternalXcore.g:11811:1: ( ruleOpSingleAssign )
            {
            // InternalXcore.g:11811:1: ( ruleOpSingleAssign )
            // InternalXcore.g:11812:1: ruleOpSingleAssign
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAssignmentAccess().getOpSingleAssignParserRuleCall_0_2()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleOpSingleAssign();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAssignmentAccess().getOpSingleAssignParserRuleCall_0_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAssignment__Group_0__2__Impl"


    // $ANTLR start "rule__XAssignment__Group_0__3"
    // InternalXcore.g:11823:1: rule__XAssignment__Group_0__3 : rule__XAssignment__Group_0__3__Impl ;
    public final void rule__XAssignment__Group_0__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:11827:1: ( rule__XAssignment__Group_0__3__Impl )
            // InternalXcore.g:11828:2: rule__XAssignment__Group_0__3__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XAssignment__Group_0__3__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAssignment__Group_0__3"


    // $ANTLR start "rule__XAssignment__Group_0__3__Impl"
    // InternalXcore.g:11834:1: rule__XAssignment__Group_0__3__Impl : ( ( rule__XAssignment__ValueAssignment_0_3 ) ) ;
    public final void rule__XAssignment__Group_0__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:11838:1: ( ( ( rule__XAssignment__ValueAssignment_0_3 ) ) )
            // InternalXcore.g:11839:1: ( ( rule__XAssignment__ValueAssignment_0_3 ) )
            {
            // InternalXcore.g:11839:1: ( ( rule__XAssignment__ValueAssignment_0_3 ) )
            // InternalXcore.g:11840:1: ( rule__XAssignment__ValueAssignment_0_3 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAssignmentAccess().getValueAssignment_0_3()); 
            }
            // InternalXcore.g:11841:1: ( rule__XAssignment__ValueAssignment_0_3 )
            // InternalXcore.g:11841:2: rule__XAssignment__ValueAssignment_0_3
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XAssignment__ValueAssignment_0_3();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAssignmentAccess().getValueAssignment_0_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAssignment__Group_0__3__Impl"


    // $ANTLR start "rule__XAssignment__Group_1__0"
    // InternalXcore.g:11859:1: rule__XAssignment__Group_1__0 : rule__XAssignment__Group_1__0__Impl rule__XAssignment__Group_1__1 ;
    public final void rule__XAssignment__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:11863:1: ( rule__XAssignment__Group_1__0__Impl rule__XAssignment__Group_1__1 )
            // InternalXcore.g:11864:2: rule__XAssignment__Group_1__0__Impl rule__XAssignment__Group_1__1
            {
            pushFollow(FollowSets000.FOLLOW_73);
            rule__XAssignment__Group_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XAssignment__Group_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAssignment__Group_1__0"


    // $ANTLR start "rule__XAssignment__Group_1__0__Impl"
    // InternalXcore.g:11871:1: rule__XAssignment__Group_1__0__Impl : ( ruleXOrExpression ) ;
    public final void rule__XAssignment__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:11875:1: ( ( ruleXOrExpression ) )
            // InternalXcore.g:11876:1: ( ruleXOrExpression )
            {
            // InternalXcore.g:11876:1: ( ruleXOrExpression )
            // InternalXcore.g:11877:1: ruleXOrExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAssignmentAccess().getXOrExpressionParserRuleCall_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXOrExpression();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAssignmentAccess().getXOrExpressionParserRuleCall_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAssignment__Group_1__0__Impl"


    // $ANTLR start "rule__XAssignment__Group_1__1"
    // InternalXcore.g:11888:1: rule__XAssignment__Group_1__1 : rule__XAssignment__Group_1__1__Impl ;
    public final void rule__XAssignment__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:11892:1: ( rule__XAssignment__Group_1__1__Impl )
            // InternalXcore.g:11893:2: rule__XAssignment__Group_1__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XAssignment__Group_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAssignment__Group_1__1"


    // $ANTLR start "rule__XAssignment__Group_1__1__Impl"
    // InternalXcore.g:11899:1: rule__XAssignment__Group_1__1__Impl : ( ( rule__XAssignment__Group_1_1__0 )? ) ;
    public final void rule__XAssignment__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:11903:1: ( ( ( rule__XAssignment__Group_1_1__0 )? ) )
            // InternalXcore.g:11904:1: ( ( rule__XAssignment__Group_1_1__0 )? )
            {
            // InternalXcore.g:11904:1: ( ( rule__XAssignment__Group_1_1__0 )? )
            // InternalXcore.g:11905:1: ( rule__XAssignment__Group_1_1__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAssignmentAccess().getGroup_1_1()); 
            }
            // InternalXcore.g:11906:1: ( rule__XAssignment__Group_1_1__0 )?
            int alt119=2;
            alt119 = dfa119.predict(input);
            switch (alt119) {
                case 1 :
                    // InternalXcore.g:11906:2: rule__XAssignment__Group_1_1__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XAssignment__Group_1_1__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAssignmentAccess().getGroup_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAssignment__Group_1__1__Impl"


    // $ANTLR start "rule__XAssignment__Group_1_1__0"
    // InternalXcore.g:11920:1: rule__XAssignment__Group_1_1__0 : rule__XAssignment__Group_1_1__0__Impl rule__XAssignment__Group_1_1__1 ;
    public final void rule__XAssignment__Group_1_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:11924:1: ( rule__XAssignment__Group_1_1__0__Impl rule__XAssignment__Group_1_1__1 )
            // InternalXcore.g:11925:2: rule__XAssignment__Group_1_1__0__Impl rule__XAssignment__Group_1_1__1
            {
            pushFollow(FollowSets000.FOLLOW_72);
            rule__XAssignment__Group_1_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XAssignment__Group_1_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAssignment__Group_1_1__0"


    // $ANTLR start "rule__XAssignment__Group_1_1__0__Impl"
    // InternalXcore.g:11932:1: rule__XAssignment__Group_1_1__0__Impl : ( ( rule__XAssignment__Group_1_1_0__0 ) ) ;
    public final void rule__XAssignment__Group_1_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:11936:1: ( ( ( rule__XAssignment__Group_1_1_0__0 ) ) )
            // InternalXcore.g:11937:1: ( ( rule__XAssignment__Group_1_1_0__0 ) )
            {
            // InternalXcore.g:11937:1: ( ( rule__XAssignment__Group_1_1_0__0 ) )
            // InternalXcore.g:11938:1: ( rule__XAssignment__Group_1_1_0__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAssignmentAccess().getGroup_1_1_0()); 
            }
            // InternalXcore.g:11939:1: ( rule__XAssignment__Group_1_1_0__0 )
            // InternalXcore.g:11939:2: rule__XAssignment__Group_1_1_0__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XAssignment__Group_1_1_0__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAssignmentAccess().getGroup_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAssignment__Group_1_1__0__Impl"


    // $ANTLR start "rule__XAssignment__Group_1_1__1"
    // InternalXcore.g:11949:1: rule__XAssignment__Group_1_1__1 : rule__XAssignment__Group_1_1__1__Impl ;
    public final void rule__XAssignment__Group_1_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:11953:1: ( rule__XAssignment__Group_1_1__1__Impl )
            // InternalXcore.g:11954:2: rule__XAssignment__Group_1_1__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XAssignment__Group_1_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAssignment__Group_1_1__1"


    // $ANTLR start "rule__XAssignment__Group_1_1__1__Impl"
    // InternalXcore.g:11960:1: rule__XAssignment__Group_1_1__1__Impl : ( ( rule__XAssignment__RightOperandAssignment_1_1_1 ) ) ;
    public final void rule__XAssignment__Group_1_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:11964:1: ( ( ( rule__XAssignment__RightOperandAssignment_1_1_1 ) ) )
            // InternalXcore.g:11965:1: ( ( rule__XAssignment__RightOperandAssignment_1_1_1 ) )
            {
            // InternalXcore.g:11965:1: ( ( rule__XAssignment__RightOperandAssignment_1_1_1 ) )
            // InternalXcore.g:11966:1: ( rule__XAssignment__RightOperandAssignment_1_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAssignmentAccess().getRightOperandAssignment_1_1_1()); 
            }
            // InternalXcore.g:11967:1: ( rule__XAssignment__RightOperandAssignment_1_1_1 )
            // InternalXcore.g:11967:2: rule__XAssignment__RightOperandAssignment_1_1_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XAssignment__RightOperandAssignment_1_1_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAssignmentAccess().getRightOperandAssignment_1_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAssignment__Group_1_1__1__Impl"


    // $ANTLR start "rule__XAssignment__Group_1_1_0__0"
    // InternalXcore.g:11981:1: rule__XAssignment__Group_1_1_0__0 : rule__XAssignment__Group_1_1_0__0__Impl ;
    public final void rule__XAssignment__Group_1_1_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:11985:1: ( rule__XAssignment__Group_1_1_0__0__Impl )
            // InternalXcore.g:11986:2: rule__XAssignment__Group_1_1_0__0__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XAssignment__Group_1_1_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAssignment__Group_1_1_0__0"


    // $ANTLR start "rule__XAssignment__Group_1_1_0__0__Impl"
    // InternalXcore.g:11992:1: rule__XAssignment__Group_1_1_0__0__Impl : ( ( rule__XAssignment__Group_1_1_0_0__0 ) ) ;
    public final void rule__XAssignment__Group_1_1_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:11996:1: ( ( ( rule__XAssignment__Group_1_1_0_0__0 ) ) )
            // InternalXcore.g:11997:1: ( ( rule__XAssignment__Group_1_1_0_0__0 ) )
            {
            // InternalXcore.g:11997:1: ( ( rule__XAssignment__Group_1_1_0_0__0 ) )
            // InternalXcore.g:11998:1: ( rule__XAssignment__Group_1_1_0_0__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAssignmentAccess().getGroup_1_1_0_0()); 
            }
            // InternalXcore.g:11999:1: ( rule__XAssignment__Group_1_1_0_0__0 )
            // InternalXcore.g:11999:2: rule__XAssignment__Group_1_1_0_0__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XAssignment__Group_1_1_0_0__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAssignmentAccess().getGroup_1_1_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAssignment__Group_1_1_0__0__Impl"


    // $ANTLR start "rule__XAssignment__Group_1_1_0_0__0"
    // InternalXcore.g:12011:1: rule__XAssignment__Group_1_1_0_0__0 : rule__XAssignment__Group_1_1_0_0__0__Impl rule__XAssignment__Group_1_1_0_0__1 ;
    public final void rule__XAssignment__Group_1_1_0_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:12015:1: ( rule__XAssignment__Group_1_1_0_0__0__Impl rule__XAssignment__Group_1_1_0_0__1 )
            // InternalXcore.g:12016:2: rule__XAssignment__Group_1_1_0_0__0__Impl rule__XAssignment__Group_1_1_0_0__1
            {
            pushFollow(FollowSets000.FOLLOW_73);
            rule__XAssignment__Group_1_1_0_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XAssignment__Group_1_1_0_0__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAssignment__Group_1_1_0_0__0"


    // $ANTLR start "rule__XAssignment__Group_1_1_0_0__0__Impl"
    // InternalXcore.g:12023:1: rule__XAssignment__Group_1_1_0_0__0__Impl : ( () ) ;
    public final void rule__XAssignment__Group_1_1_0_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:12027:1: ( ( () ) )
            // InternalXcore.g:12028:1: ( () )
            {
            // InternalXcore.g:12028:1: ( () )
            // InternalXcore.g:12029:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0()); 
            }
            // InternalXcore.g:12030:1: ()
            // InternalXcore.g:12032:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAssignment__Group_1_1_0_0__0__Impl"


    // $ANTLR start "rule__XAssignment__Group_1_1_0_0__1"
    // InternalXcore.g:12042:1: rule__XAssignment__Group_1_1_0_0__1 : rule__XAssignment__Group_1_1_0_0__1__Impl ;
    public final void rule__XAssignment__Group_1_1_0_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:12046:1: ( rule__XAssignment__Group_1_1_0_0__1__Impl )
            // InternalXcore.g:12047:2: rule__XAssignment__Group_1_1_0_0__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XAssignment__Group_1_1_0_0__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAssignment__Group_1_1_0_0__1"


    // $ANTLR start "rule__XAssignment__Group_1_1_0_0__1__Impl"
    // InternalXcore.g:12053:1: rule__XAssignment__Group_1_1_0_0__1__Impl : ( ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 ) ) ;
    public final void rule__XAssignment__Group_1_1_0_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:12057:1: ( ( ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 ) ) )
            // InternalXcore.g:12058:1: ( ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 ) )
            {
            // InternalXcore.g:12058:1: ( ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 ) )
            // InternalXcore.g:12059:1: ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAssignmentAccess().getFeatureAssignment_1_1_0_0_1()); 
            }
            // InternalXcore.g:12060:1: ( rule__XAssignment__FeatureAssignment_1_1_0_0_1 )
            // InternalXcore.g:12060:2: rule__XAssignment__FeatureAssignment_1_1_0_0_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XAssignment__FeatureAssignment_1_1_0_0_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAssignmentAccess().getFeatureAssignment_1_1_0_0_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAssignment__Group_1_1_0_0__1__Impl"


    // $ANTLR start "rule__OpMultiAssign__Group_5__0"
    // InternalXcore.g:12074:1: rule__OpMultiAssign__Group_5__0 : rule__OpMultiAssign__Group_5__0__Impl rule__OpMultiAssign__Group_5__1 ;
    public final void rule__OpMultiAssign__Group_5__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:12078:1: ( rule__OpMultiAssign__Group_5__0__Impl rule__OpMultiAssign__Group_5__1 )
            // InternalXcore.g:12079:2: rule__OpMultiAssign__Group_5__0__Impl rule__OpMultiAssign__Group_5__1
            {
            pushFollow(FollowSets000.FOLLOW_66);
            rule__OpMultiAssign__Group_5__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__OpMultiAssign__Group_5__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__OpMultiAssign__Group_5__0"


    // $ANTLR start "rule__OpMultiAssign__Group_5__0__Impl"
    // InternalXcore.g:12086:1: rule__OpMultiAssign__Group_5__0__Impl : ( '<' ) ;
    public final void rule__OpMultiAssign__Group_5__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:12090:1: ( ( '<' ) )
            // InternalXcore.g:12091:1: ( '<' )
            {
            // InternalXcore.g:12091:1: ( '<' )
            // InternalXcore.g:12092:1: '<'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOpMultiAssignAccess().getLessThanSignKeyword_5_0()); 
            }
            match(input,66,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getOpMultiAssignAccess().getLessThanSignKeyword_5_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__OpMultiAssign__Group_5__0__Impl"


    // $ANTLR start "rule__OpMultiAssign__Group_5__1"
    // InternalXcore.g:12105:1: rule__OpMultiAssign__Group_5__1 : rule__OpMultiAssign__Group_5__1__Impl rule__OpMultiAssign__Group_5__2 ;
    public final void rule__OpMultiAssign__Group_5__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:12109:1: ( rule__OpMultiAssign__Group_5__1__Impl rule__OpMultiAssign__Group_5__2 )
            // InternalXcore.g:12110:2: rule__OpMultiAssign__Group_5__1__Impl rule__OpMultiAssign__Group_5__2
            {
            pushFollow(FollowSets000.FOLLOW_15);
            rule__OpMultiAssign__Group_5__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__OpMultiAssign__Group_5__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__OpMultiAssign__Group_5__1"


    // $ANTLR start "rule__OpMultiAssign__Group_5__1__Impl"
    // InternalXcore.g:12117:1: rule__OpMultiAssign__Group_5__1__Impl : ( '<' ) ;
    public final void rule__OpMultiAssign__Group_5__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:12121:1: ( ( '<' ) )
            // InternalXcore.g:12122:1: ( '<' )
            {
            // InternalXcore.g:12122:1: ( '<' )
            // InternalXcore.g:12123:1: '<'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOpMultiAssignAccess().getLessThanSignKeyword_5_1()); 
            }
            match(input,66,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getOpMultiAssignAccess().getLessThanSignKeyword_5_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__OpMultiAssign__Group_5__1__Impl"


    // $ANTLR start "rule__OpMultiAssign__Group_5__2"
    // InternalXcore.g:12136:1: rule__OpMultiAssign__Group_5__2 : rule__OpMultiAssign__Group_5__2__Impl ;
    public final void rule__OpMultiAssign__Group_5__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:12140:1: ( rule__OpMultiAssign__Group_5__2__Impl )
            // InternalXcore.g:12141:2: rule__OpMultiAssign__Group_5__2__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__OpMultiAssign__Group_5__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__OpMultiAssign__Group_5__2"


    // $ANTLR start "rule__OpMultiAssign__Group_5__2__Impl"
    // InternalXcore.g:12147:1: rule__OpMultiAssign__Group_5__2__Impl : ( '=' ) ;
    public final void rule__OpMultiAssign__Group_5__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:12151:1: ( ( '=' ) )
            // InternalXcore.g:12152:1: ( '=' )
            {
            // InternalXcore.g:12152:1: ( '=' )
            // InternalXcore.g:12153:1: '='
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOpMultiAssignAccess().getEqualsSignKeyword_5_2()); 
            }
            match(input,13,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getOpMultiAssignAccess().getEqualsSignKeyword_5_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__OpMultiAssign__Group_5__2__Impl"


    // $ANTLR start "rule__OpMultiAssign__Group_6__0"
    // InternalXcore.g:12172:1: rule__OpMultiAssign__Group_6__0 : rule__OpMultiAssign__Group_6__0__Impl rule__OpMultiAssign__Group_6__1 ;
    public final void rule__OpMultiAssign__Group_6__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:12176:1: ( rule__OpMultiAssign__Group_6__0__Impl rule__OpMultiAssign__Group_6__1 )
            // InternalXcore.g:12177:2: rule__OpMultiAssign__Group_6__0__Impl rule__OpMultiAssign__Group_6__1
            {
            pushFollow(FollowSets000.FOLLOW_74);
            rule__OpMultiAssign__Group_6__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__OpMultiAssign__Group_6__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__OpMultiAssign__Group_6__0"


    // $ANTLR start "rule__OpMultiAssign__Group_6__0__Impl"
    // InternalXcore.g:12184:1: rule__OpMultiAssign__Group_6__0__Impl : ( '>' ) ;
    public final void rule__OpMultiAssign__Group_6__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:12188:1: ( ( '>' ) )
            // InternalXcore.g:12189:1: ( '>' )
            {
            // InternalXcore.g:12189:1: ( '>' )
            // InternalXcore.g:12190:1: '>'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOpMultiAssignAccess().getGreaterThanSignKeyword_6_0()); 
            }
            match(input,65,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getOpMultiAssignAccess().getGreaterThanSignKeyword_6_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__OpMultiAssign__Group_6__0__Impl"


    // $ANTLR start "rule__OpMultiAssign__Group_6__1"
    // InternalXcore.g:12203:1: rule__OpMultiAssign__Group_6__1 : rule__OpMultiAssign__Group_6__1__Impl rule__OpMultiAssign__Group_6__2 ;
    public final void rule__OpMultiAssign__Group_6__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:12207:1: ( rule__OpMultiAssign__Group_6__1__Impl rule__OpMultiAssign__Group_6__2 )
            // InternalXcore.g:12208:2: rule__OpMultiAssign__Group_6__1__Impl rule__OpMultiAssign__Group_6__2
            {
            pushFollow(FollowSets000.FOLLOW_74);
            rule__OpMultiAssign__Group_6__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__OpMultiAssign__Group_6__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__OpMultiAssign__Group_6__1"


    // $ANTLR start "rule__OpMultiAssign__Group_6__1__Impl"
    // InternalXcore.g:12215:1: rule__OpMultiAssign__Group_6__1__Impl : ( ( '>' )? ) ;
    public final void rule__OpMultiAssign__Group_6__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:12219:1: ( ( ( '>' )? ) )
            // InternalXcore.g:12220:1: ( ( '>' )? )
            {
            // InternalXcore.g:12220:1: ( ( '>' )? )
            // InternalXcore.g:12221:1: ( '>' )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOpMultiAssignAccess().getGreaterThanSignKeyword_6_1()); 
            }
            // InternalXcore.g:12222:1: ( '>' )?
            int alt120=2;
            int LA120_0 = input.LA(1);

            if ( (LA120_0==65) ) {
                alt120=1;
            }
            switch (alt120) {
                case 1 :
                    // InternalXcore.g:12223:2: '>'
                    {
                    match(input,65,FollowSets000.FOLLOW_2); if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getOpMultiAssignAccess().getGreaterThanSignKeyword_6_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__OpMultiAssign__Group_6__1__Impl"


    // $ANTLR start "rule__OpMultiAssign__Group_6__2"
    // InternalXcore.g:12234:1: rule__OpMultiAssign__Group_6__2 : rule__OpMultiAssign__Group_6__2__Impl ;
    public final void rule__OpMultiAssign__Group_6__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:12238:1: ( rule__OpMultiAssign__Group_6__2__Impl )
            // InternalXcore.g:12239:2: rule__OpMultiAssign__Group_6__2__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__OpMultiAssign__Group_6__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__OpMultiAssign__Group_6__2"


    // $ANTLR start "rule__OpMultiAssign__Group_6__2__Impl"
    // InternalXcore.g:12245:1: rule__OpMultiAssign__Group_6__2__Impl : ( '>=' ) ;
    public final void rule__OpMultiAssign__Group_6__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:12249:1: ( ( '>=' ) )
            // InternalXcore.g:12250:1: ( '>=' )
            {
            // InternalXcore.g:12250:1: ( '>=' )
            // InternalXcore.g:12251:1: '>='
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOpMultiAssignAccess().getGreaterThanSignEqualsSignKeyword_6_2()); 
            }
            match(input,64,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getOpMultiAssignAccess().getGreaterThanSignEqualsSignKeyword_6_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__OpMultiAssign__Group_6__2__Impl"


    // $ANTLR start "rule__XOrExpression__Group__0"
    // InternalXcore.g:12270:1: rule__XOrExpression__Group__0 : rule__XOrExpression__Group__0__Impl rule__XOrExpression__Group__1 ;
    public final void rule__XOrExpression__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:12274:1: ( rule__XOrExpression__Group__0__Impl rule__XOrExpression__Group__1 )
            // InternalXcore.g:12275:2: rule__XOrExpression__Group__0__Impl rule__XOrExpression__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_75);
            rule__XOrExpression__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XOrExpression__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOrExpression__Group__0"


    // $ANTLR start "rule__XOrExpression__Group__0__Impl"
    // InternalXcore.g:12282:1: rule__XOrExpression__Group__0__Impl : ( ruleXAndExpression ) ;
    public final void rule__XOrExpression__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:12286:1: ( ( ruleXAndExpression ) )
            // InternalXcore.g:12287:1: ( ruleXAndExpression )
            {
            // InternalXcore.g:12287:1: ( ruleXAndExpression )
            // InternalXcore.g:12288:1: ruleXAndExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOrExpressionAccess().getXAndExpressionParserRuleCall_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXAndExpression();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXOrExpressionAccess().getXAndExpressionParserRuleCall_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOrExpression__Group__0__Impl"


    // $ANTLR start "rule__XOrExpression__Group__1"
    // InternalXcore.g:12299:1: rule__XOrExpression__Group__1 : rule__XOrExpression__Group__1__Impl ;
    public final void rule__XOrExpression__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:12303:1: ( rule__XOrExpression__Group__1__Impl )
            // InternalXcore.g:12304:2: rule__XOrExpression__Group__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XOrExpression__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOrExpression__Group__1"


    // $ANTLR start "rule__XOrExpression__Group__1__Impl"
    // InternalXcore.g:12310:1: rule__XOrExpression__Group__1__Impl : ( ( rule__XOrExpression__Group_1__0 )* ) ;
    public final void rule__XOrExpression__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:12314:1: ( ( ( rule__XOrExpression__Group_1__0 )* ) )
            // InternalXcore.g:12315:1: ( ( rule__XOrExpression__Group_1__0 )* )
            {
            // InternalXcore.g:12315:1: ( ( rule__XOrExpression__Group_1__0 )* )
            // InternalXcore.g:12316:1: ( rule__XOrExpression__Group_1__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOrExpressionAccess().getGroup_1()); 
            }
            // InternalXcore.g:12317:1: ( rule__XOrExpression__Group_1__0 )*
            loop121:
            do {
                int alt121=2;
                int LA121_0 = input.LA(1);

                if ( (LA121_0==14) ) {
                    int LA121_2 = input.LA(2);

                    if ( (synpred203_InternalXcore()) ) {
                        alt121=1;
                    }


                }


                switch (alt121) {
            	case 1 :
            	    // InternalXcore.g:12317:2: rule__XOrExpression__Group_1__0
            	    {
            	    pushFollow(FollowSets000.FOLLOW_76);
            	    rule__XOrExpression__Group_1__0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop121;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXOrExpressionAccess().getGroup_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOrExpression__Group__1__Impl"


    // $ANTLR start "rule__XOrExpression__Group_1__0"
    // InternalXcore.g:12331:1: rule__XOrExpression__Group_1__0 : rule__XOrExpression__Group_1__0__Impl rule__XOrExpression__Group_1__1 ;
    public final void rule__XOrExpression__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:12335:1: ( rule__XOrExpression__Group_1__0__Impl rule__XOrExpression__Group_1__1 )
            // InternalXcore.g:12336:2: rule__XOrExpression__Group_1__0__Impl rule__XOrExpression__Group_1__1
            {
            pushFollow(FollowSets000.FOLLOW_72);
            rule__XOrExpression__Group_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XOrExpression__Group_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOrExpression__Group_1__0"


    // $ANTLR start "rule__XOrExpression__Group_1__0__Impl"
    // InternalXcore.g:12343:1: rule__XOrExpression__Group_1__0__Impl : ( ( rule__XOrExpression__Group_1_0__0 ) ) ;
    public final void rule__XOrExpression__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:12347:1: ( ( ( rule__XOrExpression__Group_1_0__0 ) ) )
            // InternalXcore.g:12348:1: ( ( rule__XOrExpression__Group_1_0__0 ) )
            {
            // InternalXcore.g:12348:1: ( ( rule__XOrExpression__Group_1_0__0 ) )
            // InternalXcore.g:12349:1: ( rule__XOrExpression__Group_1_0__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOrExpressionAccess().getGroup_1_0()); 
            }
            // InternalXcore.g:12350:1: ( rule__XOrExpression__Group_1_0__0 )
            // InternalXcore.g:12350:2: rule__XOrExpression__Group_1_0__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XOrExpression__Group_1_0__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXOrExpressionAccess().getGroup_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOrExpression__Group_1__0__Impl"


    // $ANTLR start "rule__XOrExpression__Group_1__1"
    // InternalXcore.g:12360:1: rule__XOrExpression__Group_1__1 : rule__XOrExpression__Group_1__1__Impl ;
    public final void rule__XOrExpression__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:12364:1: ( rule__XOrExpression__Group_1__1__Impl )
            // InternalXcore.g:12365:2: rule__XOrExpression__Group_1__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XOrExpression__Group_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOrExpression__Group_1__1"


    // $ANTLR start "rule__XOrExpression__Group_1__1__Impl"
    // InternalXcore.g:12371:1: rule__XOrExpression__Group_1__1__Impl : ( ( rule__XOrExpression__RightOperandAssignment_1_1 ) ) ;
    public final void rule__XOrExpression__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:12375:1: ( ( ( rule__XOrExpression__RightOperandAssignment_1_1 ) ) )
            // InternalXcore.g:12376:1: ( ( rule__XOrExpression__RightOperandAssignment_1_1 ) )
            {
            // InternalXcore.g:12376:1: ( ( rule__XOrExpression__RightOperandAssignment_1_1 ) )
            // InternalXcore.g:12377:1: ( rule__XOrExpression__RightOperandAssignment_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOrExpressionAccess().getRightOperandAssignment_1_1()); 
            }
            // InternalXcore.g:12378:1: ( rule__XOrExpression__RightOperandAssignment_1_1 )
            // InternalXcore.g:12378:2: rule__XOrExpression__RightOperandAssignment_1_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XOrExpression__RightOperandAssignment_1_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXOrExpressionAccess().getRightOperandAssignment_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOrExpression__Group_1__1__Impl"


    // $ANTLR start "rule__XOrExpression__Group_1_0__0"
    // InternalXcore.g:12392:1: rule__XOrExpression__Group_1_0__0 : rule__XOrExpression__Group_1_0__0__Impl ;
    public final void rule__XOrExpression__Group_1_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:12396:1: ( rule__XOrExpression__Group_1_0__0__Impl )
            // InternalXcore.g:12397:2: rule__XOrExpression__Group_1_0__0__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XOrExpression__Group_1_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOrExpression__Group_1_0__0"


    // $ANTLR start "rule__XOrExpression__Group_1_0__0__Impl"
    // InternalXcore.g:12403:1: rule__XOrExpression__Group_1_0__0__Impl : ( ( rule__XOrExpression__Group_1_0_0__0 ) ) ;
    public final void rule__XOrExpression__Group_1_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:12407:1: ( ( ( rule__XOrExpression__Group_1_0_0__0 ) ) )
            // InternalXcore.g:12408:1: ( ( rule__XOrExpression__Group_1_0_0__0 ) )
            {
            // InternalXcore.g:12408:1: ( ( rule__XOrExpression__Group_1_0_0__0 ) )
            // InternalXcore.g:12409:1: ( rule__XOrExpression__Group_1_0_0__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOrExpressionAccess().getGroup_1_0_0()); 
            }
            // InternalXcore.g:12410:1: ( rule__XOrExpression__Group_1_0_0__0 )
            // InternalXcore.g:12410:2: rule__XOrExpression__Group_1_0_0__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XOrExpression__Group_1_0_0__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXOrExpressionAccess().getGroup_1_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOrExpression__Group_1_0__0__Impl"


    // $ANTLR start "rule__XOrExpression__Group_1_0_0__0"
    // InternalXcore.g:12422:1: rule__XOrExpression__Group_1_0_0__0 : rule__XOrExpression__Group_1_0_0__0__Impl rule__XOrExpression__Group_1_0_0__1 ;
    public final void rule__XOrExpression__Group_1_0_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:12426:1: ( rule__XOrExpression__Group_1_0_0__0__Impl rule__XOrExpression__Group_1_0_0__1 )
            // InternalXcore.g:12427:2: rule__XOrExpression__Group_1_0_0__0__Impl rule__XOrExpression__Group_1_0_0__1
            {
            pushFollow(FollowSets000.FOLLOW_75);
            rule__XOrExpression__Group_1_0_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XOrExpression__Group_1_0_0__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOrExpression__Group_1_0_0__0"


    // $ANTLR start "rule__XOrExpression__Group_1_0_0__0__Impl"
    // InternalXcore.g:12434:1: rule__XOrExpression__Group_1_0_0__0__Impl : ( () ) ;
    public final void rule__XOrExpression__Group_1_0_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:12438:1: ( ( () ) )
            // InternalXcore.g:12439:1: ( () )
            {
            // InternalXcore.g:12439:1: ( () )
            // InternalXcore.g:12440:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); 
            }
            // InternalXcore.g:12441:1: ()
            // InternalXcore.g:12443:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOrExpression__Group_1_0_0__0__Impl"


    // $ANTLR start "rule__XOrExpression__Group_1_0_0__1"
    // InternalXcore.g:12453:1: rule__XOrExpression__Group_1_0_0__1 : rule__XOrExpression__Group_1_0_0__1__Impl ;
    public final void rule__XOrExpression__Group_1_0_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:12457:1: ( rule__XOrExpression__Group_1_0_0__1__Impl )
            // InternalXcore.g:12458:2: rule__XOrExpression__Group_1_0_0__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XOrExpression__Group_1_0_0__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOrExpression__Group_1_0_0__1"


    // $ANTLR start "rule__XOrExpression__Group_1_0_0__1__Impl"
    // InternalXcore.g:12464:1: rule__XOrExpression__Group_1_0_0__1__Impl : ( ( rule__XOrExpression__FeatureAssignment_1_0_0_1 ) ) ;
    public final void rule__XOrExpression__Group_1_0_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:12468:1: ( ( ( rule__XOrExpression__FeatureAssignment_1_0_0_1 ) ) )
            // InternalXcore.g:12469:1: ( ( rule__XOrExpression__FeatureAssignment_1_0_0_1 ) )
            {
            // InternalXcore.g:12469:1: ( ( rule__XOrExpression__FeatureAssignment_1_0_0_1 ) )
            // InternalXcore.g:12470:1: ( rule__XOrExpression__FeatureAssignment_1_0_0_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOrExpressionAccess().getFeatureAssignment_1_0_0_1()); 
            }
            // InternalXcore.g:12471:1: ( rule__XOrExpression__FeatureAssignment_1_0_0_1 )
            // InternalXcore.g:12471:2: rule__XOrExpression__FeatureAssignment_1_0_0_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XOrExpression__FeatureAssignment_1_0_0_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXOrExpressionAccess().getFeatureAssignment_1_0_0_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOrExpression__Group_1_0_0__1__Impl"


    // $ANTLR start "rule__XAndExpression__Group__0"
    // InternalXcore.g:12485:1: rule__XAndExpression__Group__0 : rule__XAndExpression__Group__0__Impl rule__XAndExpression__Group__1 ;
    public final void rule__XAndExpression__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:12489:1: ( rule__XAndExpression__Group__0__Impl rule__XAndExpression__Group__1 )
            // InternalXcore.g:12490:2: rule__XAndExpression__Group__0__Impl rule__XAndExpression__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_77);
            rule__XAndExpression__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XAndExpression__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAndExpression__Group__0"


    // $ANTLR start "rule__XAndExpression__Group__0__Impl"
    // InternalXcore.g:12497:1: rule__XAndExpression__Group__0__Impl : ( ruleXEqualityExpression ) ;
    public final void rule__XAndExpression__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:12501:1: ( ( ruleXEqualityExpression ) )
            // InternalXcore.g:12502:1: ( ruleXEqualityExpression )
            {
            // InternalXcore.g:12502:1: ( ruleXEqualityExpression )
            // InternalXcore.g:12503:1: ruleXEqualityExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAndExpressionAccess().getXEqualityExpressionParserRuleCall_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXEqualityExpression();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAndExpressionAccess().getXEqualityExpressionParserRuleCall_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAndExpression__Group__0__Impl"


    // $ANTLR start "rule__XAndExpression__Group__1"
    // InternalXcore.g:12514:1: rule__XAndExpression__Group__1 : rule__XAndExpression__Group__1__Impl ;
    public final void rule__XAndExpression__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:12518:1: ( rule__XAndExpression__Group__1__Impl )
            // InternalXcore.g:12519:2: rule__XAndExpression__Group__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XAndExpression__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAndExpression__Group__1"


    // $ANTLR start "rule__XAndExpression__Group__1__Impl"
    // InternalXcore.g:12525:1: rule__XAndExpression__Group__1__Impl : ( ( rule__XAndExpression__Group_1__0 )* ) ;
    public final void rule__XAndExpression__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:12529:1: ( ( ( rule__XAndExpression__Group_1__0 )* ) )
            // InternalXcore.g:12530:1: ( ( rule__XAndExpression__Group_1__0 )* )
            {
            // InternalXcore.g:12530:1: ( ( rule__XAndExpression__Group_1__0 )* )
            // InternalXcore.g:12531:1: ( rule__XAndExpression__Group_1__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAndExpressionAccess().getGroup_1()); 
            }
            // InternalXcore.g:12532:1: ( rule__XAndExpression__Group_1__0 )*
            loop122:
            do {
                int alt122=2;
                int LA122_0 = input.LA(1);

                if ( (LA122_0==15) ) {
                    int LA122_2 = input.LA(2);

                    if ( (synpred204_InternalXcore()) ) {
                        alt122=1;
                    }


                }


                switch (alt122) {
            	case 1 :
            	    // InternalXcore.g:12532:2: rule__XAndExpression__Group_1__0
            	    {
            	    pushFollow(FollowSets000.FOLLOW_78);
            	    rule__XAndExpression__Group_1__0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop122;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAndExpressionAccess().getGroup_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAndExpression__Group__1__Impl"


    // $ANTLR start "rule__XAndExpression__Group_1__0"
    // InternalXcore.g:12546:1: rule__XAndExpression__Group_1__0 : rule__XAndExpression__Group_1__0__Impl rule__XAndExpression__Group_1__1 ;
    public final void rule__XAndExpression__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:12550:1: ( rule__XAndExpression__Group_1__0__Impl rule__XAndExpression__Group_1__1 )
            // InternalXcore.g:12551:2: rule__XAndExpression__Group_1__0__Impl rule__XAndExpression__Group_1__1
            {
            pushFollow(FollowSets000.FOLLOW_72);
            rule__XAndExpression__Group_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XAndExpression__Group_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAndExpression__Group_1__0"


    // $ANTLR start "rule__XAndExpression__Group_1__0__Impl"
    // InternalXcore.g:12558:1: rule__XAndExpression__Group_1__0__Impl : ( ( rule__XAndExpression__Group_1_0__0 ) ) ;
    public final void rule__XAndExpression__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:12562:1: ( ( ( rule__XAndExpression__Group_1_0__0 ) ) )
            // InternalXcore.g:12563:1: ( ( rule__XAndExpression__Group_1_0__0 ) )
            {
            // InternalXcore.g:12563:1: ( ( rule__XAndExpression__Group_1_0__0 ) )
            // InternalXcore.g:12564:1: ( rule__XAndExpression__Group_1_0__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAndExpressionAccess().getGroup_1_0()); 
            }
            // InternalXcore.g:12565:1: ( rule__XAndExpression__Group_1_0__0 )
            // InternalXcore.g:12565:2: rule__XAndExpression__Group_1_0__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XAndExpression__Group_1_0__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAndExpressionAccess().getGroup_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAndExpression__Group_1__0__Impl"


    // $ANTLR start "rule__XAndExpression__Group_1__1"
    // InternalXcore.g:12575:1: rule__XAndExpression__Group_1__1 : rule__XAndExpression__Group_1__1__Impl ;
    public final void rule__XAndExpression__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:12579:1: ( rule__XAndExpression__Group_1__1__Impl )
            // InternalXcore.g:12580:2: rule__XAndExpression__Group_1__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XAndExpression__Group_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAndExpression__Group_1__1"


    // $ANTLR start "rule__XAndExpression__Group_1__1__Impl"
    // InternalXcore.g:12586:1: rule__XAndExpression__Group_1__1__Impl : ( ( rule__XAndExpression__RightOperandAssignment_1_1 ) ) ;
    public final void rule__XAndExpression__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:12590:1: ( ( ( rule__XAndExpression__RightOperandAssignment_1_1 ) ) )
            // InternalXcore.g:12591:1: ( ( rule__XAndExpression__RightOperandAssignment_1_1 ) )
            {
            // InternalXcore.g:12591:1: ( ( rule__XAndExpression__RightOperandAssignment_1_1 ) )
            // InternalXcore.g:12592:1: ( rule__XAndExpression__RightOperandAssignment_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAndExpressionAccess().getRightOperandAssignment_1_1()); 
            }
            // InternalXcore.g:12593:1: ( rule__XAndExpression__RightOperandAssignment_1_1 )
            // InternalXcore.g:12593:2: rule__XAndExpression__RightOperandAssignment_1_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XAndExpression__RightOperandAssignment_1_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAndExpressionAccess().getRightOperandAssignment_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAndExpression__Group_1__1__Impl"


    // $ANTLR start "rule__XAndExpression__Group_1_0__0"
    // InternalXcore.g:12607:1: rule__XAndExpression__Group_1_0__0 : rule__XAndExpression__Group_1_0__0__Impl ;
    public final void rule__XAndExpression__Group_1_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:12611:1: ( rule__XAndExpression__Group_1_0__0__Impl )
            // InternalXcore.g:12612:2: rule__XAndExpression__Group_1_0__0__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XAndExpression__Group_1_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAndExpression__Group_1_0__0"


    // $ANTLR start "rule__XAndExpression__Group_1_0__0__Impl"
    // InternalXcore.g:12618:1: rule__XAndExpression__Group_1_0__0__Impl : ( ( rule__XAndExpression__Group_1_0_0__0 ) ) ;
    public final void rule__XAndExpression__Group_1_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:12622:1: ( ( ( rule__XAndExpression__Group_1_0_0__0 ) ) )
            // InternalXcore.g:12623:1: ( ( rule__XAndExpression__Group_1_0_0__0 ) )
            {
            // InternalXcore.g:12623:1: ( ( rule__XAndExpression__Group_1_0_0__0 ) )
            // InternalXcore.g:12624:1: ( rule__XAndExpression__Group_1_0_0__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAndExpressionAccess().getGroup_1_0_0()); 
            }
            // InternalXcore.g:12625:1: ( rule__XAndExpression__Group_1_0_0__0 )
            // InternalXcore.g:12625:2: rule__XAndExpression__Group_1_0_0__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XAndExpression__Group_1_0_0__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAndExpressionAccess().getGroup_1_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAndExpression__Group_1_0__0__Impl"


    // $ANTLR start "rule__XAndExpression__Group_1_0_0__0"
    // InternalXcore.g:12637:1: rule__XAndExpression__Group_1_0_0__0 : rule__XAndExpression__Group_1_0_0__0__Impl rule__XAndExpression__Group_1_0_0__1 ;
    public final void rule__XAndExpression__Group_1_0_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:12641:1: ( rule__XAndExpression__Group_1_0_0__0__Impl rule__XAndExpression__Group_1_0_0__1 )
            // InternalXcore.g:12642:2: rule__XAndExpression__Group_1_0_0__0__Impl rule__XAndExpression__Group_1_0_0__1
            {
            pushFollow(FollowSets000.FOLLOW_77);
            rule__XAndExpression__Group_1_0_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XAndExpression__Group_1_0_0__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAndExpression__Group_1_0_0__0"


    // $ANTLR start "rule__XAndExpression__Group_1_0_0__0__Impl"
    // InternalXcore.g:12649:1: rule__XAndExpression__Group_1_0_0__0__Impl : ( () ) ;
    public final void rule__XAndExpression__Group_1_0_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:12653:1: ( ( () ) )
            // InternalXcore.g:12654:1: ( () )
            {
            // InternalXcore.g:12654:1: ( () )
            // InternalXcore.g:12655:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); 
            }
            // InternalXcore.g:12656:1: ()
            // InternalXcore.g:12658:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAndExpression__Group_1_0_0__0__Impl"


    // $ANTLR start "rule__XAndExpression__Group_1_0_0__1"
    // InternalXcore.g:12668:1: rule__XAndExpression__Group_1_0_0__1 : rule__XAndExpression__Group_1_0_0__1__Impl ;
    public final void rule__XAndExpression__Group_1_0_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:12672:1: ( rule__XAndExpression__Group_1_0_0__1__Impl )
            // InternalXcore.g:12673:2: rule__XAndExpression__Group_1_0_0__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XAndExpression__Group_1_0_0__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAndExpression__Group_1_0_0__1"


    // $ANTLR start "rule__XAndExpression__Group_1_0_0__1__Impl"
    // InternalXcore.g:12679:1: rule__XAndExpression__Group_1_0_0__1__Impl : ( ( rule__XAndExpression__FeatureAssignment_1_0_0_1 ) ) ;
    public final void rule__XAndExpression__Group_1_0_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:12683:1: ( ( ( rule__XAndExpression__FeatureAssignment_1_0_0_1 ) ) )
            // InternalXcore.g:12684:1: ( ( rule__XAndExpression__FeatureAssignment_1_0_0_1 ) )
            {
            // InternalXcore.g:12684:1: ( ( rule__XAndExpression__FeatureAssignment_1_0_0_1 ) )
            // InternalXcore.g:12685:1: ( rule__XAndExpression__FeatureAssignment_1_0_0_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAndExpressionAccess().getFeatureAssignment_1_0_0_1()); 
            }
            // InternalXcore.g:12686:1: ( rule__XAndExpression__FeatureAssignment_1_0_0_1 )
            // InternalXcore.g:12686:2: rule__XAndExpression__FeatureAssignment_1_0_0_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XAndExpression__FeatureAssignment_1_0_0_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAndExpressionAccess().getFeatureAssignment_1_0_0_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAndExpression__Group_1_0_0__1__Impl"


    // $ANTLR start "rule__XEqualityExpression__Group__0"
    // InternalXcore.g:12700:1: rule__XEqualityExpression__Group__0 : rule__XEqualityExpression__Group__0__Impl rule__XEqualityExpression__Group__1 ;
    public final void rule__XEqualityExpression__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:12704:1: ( rule__XEqualityExpression__Group__0__Impl rule__XEqualityExpression__Group__1 )
            // InternalXcore.g:12705:2: rule__XEqualityExpression__Group__0__Impl rule__XEqualityExpression__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_79);
            rule__XEqualityExpression__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XEqualityExpression__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XEqualityExpression__Group__0"


    // $ANTLR start "rule__XEqualityExpression__Group__0__Impl"
    // InternalXcore.g:12712:1: rule__XEqualityExpression__Group__0__Impl : ( ruleXRelationalExpression ) ;
    public final void rule__XEqualityExpression__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:12716:1: ( ( ruleXRelationalExpression ) )
            // InternalXcore.g:12717:1: ( ruleXRelationalExpression )
            {
            // InternalXcore.g:12717:1: ( ruleXRelationalExpression )
            // InternalXcore.g:12718:1: ruleXRelationalExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXEqualityExpressionAccess().getXRelationalExpressionParserRuleCall_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXRelationalExpression();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXEqualityExpressionAccess().getXRelationalExpressionParserRuleCall_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XEqualityExpression__Group__0__Impl"


    // $ANTLR start "rule__XEqualityExpression__Group__1"
    // InternalXcore.g:12729:1: rule__XEqualityExpression__Group__1 : rule__XEqualityExpression__Group__1__Impl ;
    public final void rule__XEqualityExpression__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:12733:1: ( rule__XEqualityExpression__Group__1__Impl )
            // InternalXcore.g:12734:2: rule__XEqualityExpression__Group__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XEqualityExpression__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XEqualityExpression__Group__1"


    // $ANTLR start "rule__XEqualityExpression__Group__1__Impl"
    // InternalXcore.g:12740:1: rule__XEqualityExpression__Group__1__Impl : ( ( rule__XEqualityExpression__Group_1__0 )* ) ;
    public final void rule__XEqualityExpression__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:12744:1: ( ( ( rule__XEqualityExpression__Group_1__0 )* ) )
            // InternalXcore.g:12745:1: ( ( rule__XEqualityExpression__Group_1__0 )* )
            {
            // InternalXcore.g:12745:1: ( ( rule__XEqualityExpression__Group_1__0 )* )
            // InternalXcore.g:12746:1: ( rule__XEqualityExpression__Group_1__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXEqualityExpressionAccess().getGroup_1()); 
            }
            // InternalXcore.g:12747:1: ( rule__XEqualityExpression__Group_1__0 )*
            loop123:
            do {
                int alt123=2;
                switch ( input.LA(1) ) {
                case 60:
                    {
                    int LA123_2 = input.LA(2);

                    if ( (synpred205_InternalXcore()) ) {
                        alt123=1;
                    }


                    }
                    break;
                case 61:
                    {
                    int LA123_3 = input.LA(2);

                    if ( (synpred205_InternalXcore()) ) {
                        alt123=1;
                    }


                    }
                    break;
                case 62:
                    {
                    int LA123_4 = input.LA(2);

                    if ( (synpred205_InternalXcore()) ) {
                        alt123=1;
                    }


                    }
                    break;
                case 63:
                    {
                    int LA123_5 = input.LA(2);

                    if ( (synpred205_InternalXcore()) ) {
                        alt123=1;
                    }


                    }
                    break;

                }

                switch (alt123) {
            	case 1 :
            	    // InternalXcore.g:12747:2: rule__XEqualityExpression__Group_1__0
            	    {
            	    pushFollow(FollowSets000.FOLLOW_80);
            	    rule__XEqualityExpression__Group_1__0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop123;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXEqualityExpressionAccess().getGroup_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XEqualityExpression__Group__1__Impl"


    // $ANTLR start "rule__XEqualityExpression__Group_1__0"
    // InternalXcore.g:12761:1: rule__XEqualityExpression__Group_1__0 : rule__XEqualityExpression__Group_1__0__Impl rule__XEqualityExpression__Group_1__1 ;
    public final void rule__XEqualityExpression__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:12765:1: ( rule__XEqualityExpression__Group_1__0__Impl rule__XEqualityExpression__Group_1__1 )
            // InternalXcore.g:12766:2: rule__XEqualityExpression__Group_1__0__Impl rule__XEqualityExpression__Group_1__1
            {
            pushFollow(FollowSets000.FOLLOW_72);
            rule__XEqualityExpression__Group_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XEqualityExpression__Group_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XEqualityExpression__Group_1__0"


    // $ANTLR start "rule__XEqualityExpression__Group_1__0__Impl"
    // InternalXcore.g:12773:1: rule__XEqualityExpression__Group_1__0__Impl : ( ( rule__XEqualityExpression__Group_1_0__0 ) ) ;
    public final void rule__XEqualityExpression__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:12777:1: ( ( ( rule__XEqualityExpression__Group_1_0__0 ) ) )
            // InternalXcore.g:12778:1: ( ( rule__XEqualityExpression__Group_1_0__0 ) )
            {
            // InternalXcore.g:12778:1: ( ( rule__XEqualityExpression__Group_1_0__0 ) )
            // InternalXcore.g:12779:1: ( rule__XEqualityExpression__Group_1_0__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXEqualityExpressionAccess().getGroup_1_0()); 
            }
            // InternalXcore.g:12780:1: ( rule__XEqualityExpression__Group_1_0__0 )
            // InternalXcore.g:12780:2: rule__XEqualityExpression__Group_1_0__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XEqualityExpression__Group_1_0__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXEqualityExpressionAccess().getGroup_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XEqualityExpression__Group_1__0__Impl"


    // $ANTLR start "rule__XEqualityExpression__Group_1__1"
    // InternalXcore.g:12790:1: rule__XEqualityExpression__Group_1__1 : rule__XEqualityExpression__Group_1__1__Impl ;
    public final void rule__XEqualityExpression__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:12794:1: ( rule__XEqualityExpression__Group_1__1__Impl )
            // InternalXcore.g:12795:2: rule__XEqualityExpression__Group_1__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XEqualityExpression__Group_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XEqualityExpression__Group_1__1"


    // $ANTLR start "rule__XEqualityExpression__Group_1__1__Impl"
    // InternalXcore.g:12801:1: rule__XEqualityExpression__Group_1__1__Impl : ( ( rule__XEqualityExpression__RightOperandAssignment_1_1 ) ) ;
    public final void rule__XEqualityExpression__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:12805:1: ( ( ( rule__XEqualityExpression__RightOperandAssignment_1_1 ) ) )
            // InternalXcore.g:12806:1: ( ( rule__XEqualityExpression__RightOperandAssignment_1_1 ) )
            {
            // InternalXcore.g:12806:1: ( ( rule__XEqualityExpression__RightOperandAssignment_1_1 ) )
            // InternalXcore.g:12807:1: ( rule__XEqualityExpression__RightOperandAssignment_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXEqualityExpressionAccess().getRightOperandAssignment_1_1()); 
            }
            // InternalXcore.g:12808:1: ( rule__XEqualityExpression__RightOperandAssignment_1_1 )
            // InternalXcore.g:12808:2: rule__XEqualityExpression__RightOperandAssignment_1_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XEqualityExpression__RightOperandAssignment_1_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXEqualityExpressionAccess().getRightOperandAssignment_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XEqualityExpression__Group_1__1__Impl"


    // $ANTLR start "rule__XEqualityExpression__Group_1_0__0"
    // InternalXcore.g:12822:1: rule__XEqualityExpression__Group_1_0__0 : rule__XEqualityExpression__Group_1_0__0__Impl ;
    public final void rule__XEqualityExpression__Group_1_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:12826:1: ( rule__XEqualityExpression__Group_1_0__0__Impl )
            // InternalXcore.g:12827:2: rule__XEqualityExpression__Group_1_0__0__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XEqualityExpression__Group_1_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XEqualityExpression__Group_1_0__0"


    // $ANTLR start "rule__XEqualityExpression__Group_1_0__0__Impl"
    // InternalXcore.g:12833:1: rule__XEqualityExpression__Group_1_0__0__Impl : ( ( rule__XEqualityExpression__Group_1_0_0__0 ) ) ;
    public final void rule__XEqualityExpression__Group_1_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:12837:1: ( ( ( rule__XEqualityExpression__Group_1_0_0__0 ) ) )
            // InternalXcore.g:12838:1: ( ( rule__XEqualityExpression__Group_1_0_0__0 ) )
            {
            // InternalXcore.g:12838:1: ( ( rule__XEqualityExpression__Group_1_0_0__0 ) )
            // InternalXcore.g:12839:1: ( rule__XEqualityExpression__Group_1_0_0__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXEqualityExpressionAccess().getGroup_1_0_0()); 
            }
            // InternalXcore.g:12840:1: ( rule__XEqualityExpression__Group_1_0_0__0 )
            // InternalXcore.g:12840:2: rule__XEqualityExpression__Group_1_0_0__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XEqualityExpression__Group_1_0_0__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXEqualityExpressionAccess().getGroup_1_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XEqualityExpression__Group_1_0__0__Impl"


    // $ANTLR start "rule__XEqualityExpression__Group_1_0_0__0"
    // InternalXcore.g:12852:1: rule__XEqualityExpression__Group_1_0_0__0 : rule__XEqualityExpression__Group_1_0_0__0__Impl rule__XEqualityExpression__Group_1_0_0__1 ;
    public final void rule__XEqualityExpression__Group_1_0_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:12856:1: ( rule__XEqualityExpression__Group_1_0_0__0__Impl rule__XEqualityExpression__Group_1_0_0__1 )
            // InternalXcore.g:12857:2: rule__XEqualityExpression__Group_1_0_0__0__Impl rule__XEqualityExpression__Group_1_0_0__1
            {
            pushFollow(FollowSets000.FOLLOW_79);
            rule__XEqualityExpression__Group_1_0_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XEqualityExpression__Group_1_0_0__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XEqualityExpression__Group_1_0_0__0"


    // $ANTLR start "rule__XEqualityExpression__Group_1_0_0__0__Impl"
    // InternalXcore.g:12864:1: rule__XEqualityExpression__Group_1_0_0__0__Impl : ( () ) ;
    public final void rule__XEqualityExpression__Group_1_0_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:12868:1: ( ( () ) )
            // InternalXcore.g:12869:1: ( () )
            {
            // InternalXcore.g:12869:1: ( () )
            // InternalXcore.g:12870:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); 
            }
            // InternalXcore.g:12871:1: ()
            // InternalXcore.g:12873:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XEqualityExpression__Group_1_0_0__0__Impl"


    // $ANTLR start "rule__XEqualityExpression__Group_1_0_0__1"
    // InternalXcore.g:12883:1: rule__XEqualityExpression__Group_1_0_0__1 : rule__XEqualityExpression__Group_1_0_0__1__Impl ;
    public final void rule__XEqualityExpression__Group_1_0_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:12887:1: ( rule__XEqualityExpression__Group_1_0_0__1__Impl )
            // InternalXcore.g:12888:2: rule__XEqualityExpression__Group_1_0_0__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XEqualityExpression__Group_1_0_0__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XEqualityExpression__Group_1_0_0__1"


    // $ANTLR start "rule__XEqualityExpression__Group_1_0_0__1__Impl"
    // InternalXcore.g:12894:1: rule__XEqualityExpression__Group_1_0_0__1__Impl : ( ( rule__XEqualityExpression__FeatureAssignment_1_0_0_1 ) ) ;
    public final void rule__XEqualityExpression__Group_1_0_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:12898:1: ( ( ( rule__XEqualityExpression__FeatureAssignment_1_0_0_1 ) ) )
            // InternalXcore.g:12899:1: ( ( rule__XEqualityExpression__FeatureAssignment_1_0_0_1 ) )
            {
            // InternalXcore.g:12899:1: ( ( rule__XEqualityExpression__FeatureAssignment_1_0_0_1 ) )
            // InternalXcore.g:12900:1: ( rule__XEqualityExpression__FeatureAssignment_1_0_0_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXEqualityExpressionAccess().getFeatureAssignment_1_0_0_1()); 
            }
            // InternalXcore.g:12901:1: ( rule__XEqualityExpression__FeatureAssignment_1_0_0_1 )
            // InternalXcore.g:12901:2: rule__XEqualityExpression__FeatureAssignment_1_0_0_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XEqualityExpression__FeatureAssignment_1_0_0_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXEqualityExpressionAccess().getFeatureAssignment_1_0_0_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XEqualityExpression__Group_1_0_0__1__Impl"


    // $ANTLR start "rule__XRelationalExpression__Group__0"
    // InternalXcore.g:12915:1: rule__XRelationalExpression__Group__0 : rule__XRelationalExpression__Group__0__Impl rule__XRelationalExpression__Group__1 ;
    public final void rule__XRelationalExpression__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:12919:1: ( rule__XRelationalExpression__Group__0__Impl rule__XRelationalExpression__Group__1 )
            // InternalXcore.g:12920:2: rule__XRelationalExpression__Group__0__Impl rule__XRelationalExpression__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_81);
            rule__XRelationalExpression__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XRelationalExpression__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XRelationalExpression__Group__0"


    // $ANTLR start "rule__XRelationalExpression__Group__0__Impl"
    // InternalXcore.g:12927:1: rule__XRelationalExpression__Group__0__Impl : ( ruleXOtherOperatorExpression ) ;
    public final void rule__XRelationalExpression__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:12931:1: ( ( ruleXOtherOperatorExpression ) )
            // InternalXcore.g:12932:1: ( ruleXOtherOperatorExpression )
            {
            // InternalXcore.g:12932:1: ( ruleXOtherOperatorExpression )
            // InternalXcore.g:12933:1: ruleXOtherOperatorExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXRelationalExpressionAccess().getXOtherOperatorExpressionParserRuleCall_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXOtherOperatorExpression();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXRelationalExpressionAccess().getXOtherOperatorExpressionParserRuleCall_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XRelationalExpression__Group__0__Impl"


    // $ANTLR start "rule__XRelationalExpression__Group__1"
    // InternalXcore.g:12944:1: rule__XRelationalExpression__Group__1 : rule__XRelationalExpression__Group__1__Impl ;
    public final void rule__XRelationalExpression__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:12948:1: ( rule__XRelationalExpression__Group__1__Impl )
            // InternalXcore.g:12949:2: rule__XRelationalExpression__Group__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XRelationalExpression__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XRelationalExpression__Group__1"


    // $ANTLR start "rule__XRelationalExpression__Group__1__Impl"
    // InternalXcore.g:12955:1: rule__XRelationalExpression__Group__1__Impl : ( ( rule__XRelationalExpression__Alternatives_1 )* ) ;
    public final void rule__XRelationalExpression__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:12959:1: ( ( ( rule__XRelationalExpression__Alternatives_1 )* ) )
            // InternalXcore.g:12960:1: ( ( rule__XRelationalExpression__Alternatives_1 )* )
            {
            // InternalXcore.g:12960:1: ( ( rule__XRelationalExpression__Alternatives_1 )* )
            // InternalXcore.g:12961:1: ( rule__XRelationalExpression__Alternatives_1 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXRelationalExpressionAccess().getAlternatives_1()); 
            }
            // InternalXcore.g:12962:1: ( rule__XRelationalExpression__Alternatives_1 )*
            loop124:
            do {
                int alt124=2;
                switch ( input.LA(1) ) {
                case 66:
                    {
                    int LA124_2 = input.LA(2);

                    if ( (synpred206_InternalXcore()) ) {
                        alt124=1;
                    }


                    }
                    break;
                case 65:
                    {
                    int LA124_3 = input.LA(2);

                    if ( (synpred206_InternalXcore()) ) {
                        alt124=1;
                    }


                    }
                    break;
                case 95:
                    {
                    int LA124_4 = input.LA(2);

                    if ( (synpred206_InternalXcore()) ) {
                        alt124=1;
                    }


                    }
                    break;
                case 64:
                    {
                    int LA124_5 = input.LA(2);

                    if ( (synpred206_InternalXcore()) ) {
                        alt124=1;
                    }


                    }
                    break;

                }

                switch (alt124) {
            	case 1 :
            	    // InternalXcore.g:12962:2: rule__XRelationalExpression__Alternatives_1
            	    {
            	    pushFollow(FollowSets000.FOLLOW_82);
            	    rule__XRelationalExpression__Alternatives_1();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop124;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXRelationalExpressionAccess().getAlternatives_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XRelationalExpression__Group__1__Impl"


    // $ANTLR start "rule__XRelationalExpression__Group_1_0__0"
    // InternalXcore.g:12976:1: rule__XRelationalExpression__Group_1_0__0 : rule__XRelationalExpression__Group_1_0__0__Impl rule__XRelationalExpression__Group_1_0__1 ;
    public final void rule__XRelationalExpression__Group_1_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:12980:1: ( rule__XRelationalExpression__Group_1_0__0__Impl rule__XRelationalExpression__Group_1_0__1 )
            // InternalXcore.g:12981:2: rule__XRelationalExpression__Group_1_0__0__Impl rule__XRelationalExpression__Group_1_0__1
            {
            pushFollow(FollowSets000.FOLLOW_22);
            rule__XRelationalExpression__Group_1_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XRelationalExpression__Group_1_0__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XRelationalExpression__Group_1_0__0"


    // $ANTLR start "rule__XRelationalExpression__Group_1_0__0__Impl"
    // InternalXcore.g:12988:1: rule__XRelationalExpression__Group_1_0__0__Impl : ( ( rule__XRelationalExpression__Group_1_0_0__0 ) ) ;
    public final void rule__XRelationalExpression__Group_1_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:12992:1: ( ( ( rule__XRelationalExpression__Group_1_0_0__0 ) ) )
            // InternalXcore.g:12993:1: ( ( rule__XRelationalExpression__Group_1_0_0__0 ) )
            {
            // InternalXcore.g:12993:1: ( ( rule__XRelationalExpression__Group_1_0_0__0 ) )
            // InternalXcore.g:12994:1: ( rule__XRelationalExpression__Group_1_0_0__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXRelationalExpressionAccess().getGroup_1_0_0()); 
            }
            // InternalXcore.g:12995:1: ( rule__XRelationalExpression__Group_1_0_0__0 )
            // InternalXcore.g:12995:2: rule__XRelationalExpression__Group_1_0_0__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XRelationalExpression__Group_1_0_0__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXRelationalExpressionAccess().getGroup_1_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XRelationalExpression__Group_1_0__0__Impl"


    // $ANTLR start "rule__XRelationalExpression__Group_1_0__1"
    // InternalXcore.g:13005:1: rule__XRelationalExpression__Group_1_0__1 : rule__XRelationalExpression__Group_1_0__1__Impl ;
    public final void rule__XRelationalExpression__Group_1_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:13009:1: ( rule__XRelationalExpression__Group_1_0__1__Impl )
            // InternalXcore.g:13010:2: rule__XRelationalExpression__Group_1_0__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XRelationalExpression__Group_1_0__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XRelationalExpression__Group_1_0__1"


    // $ANTLR start "rule__XRelationalExpression__Group_1_0__1__Impl"
    // InternalXcore.g:13016:1: rule__XRelationalExpression__Group_1_0__1__Impl : ( ( rule__XRelationalExpression__TypeAssignment_1_0_1 ) ) ;
    public final void rule__XRelationalExpression__Group_1_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:13020:1: ( ( ( rule__XRelationalExpression__TypeAssignment_1_0_1 ) ) )
            // InternalXcore.g:13021:1: ( ( rule__XRelationalExpression__TypeAssignment_1_0_1 ) )
            {
            // InternalXcore.g:13021:1: ( ( rule__XRelationalExpression__TypeAssignment_1_0_1 ) )
            // InternalXcore.g:13022:1: ( rule__XRelationalExpression__TypeAssignment_1_0_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXRelationalExpressionAccess().getTypeAssignment_1_0_1()); 
            }
            // InternalXcore.g:13023:1: ( rule__XRelationalExpression__TypeAssignment_1_0_1 )
            // InternalXcore.g:13023:2: rule__XRelationalExpression__TypeAssignment_1_0_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XRelationalExpression__TypeAssignment_1_0_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXRelationalExpressionAccess().getTypeAssignment_1_0_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XRelationalExpression__Group_1_0__1__Impl"


    // $ANTLR start "rule__XRelationalExpression__Group_1_0_0__0"
    // InternalXcore.g:13037:1: rule__XRelationalExpression__Group_1_0_0__0 : rule__XRelationalExpression__Group_1_0_0__0__Impl ;
    public final void rule__XRelationalExpression__Group_1_0_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:13041:1: ( rule__XRelationalExpression__Group_1_0_0__0__Impl )
            // InternalXcore.g:13042:2: rule__XRelationalExpression__Group_1_0_0__0__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XRelationalExpression__Group_1_0_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XRelationalExpression__Group_1_0_0__0"


    // $ANTLR start "rule__XRelationalExpression__Group_1_0_0__0__Impl"
    // InternalXcore.g:13048:1: rule__XRelationalExpression__Group_1_0_0__0__Impl : ( ( rule__XRelationalExpression__Group_1_0_0_0__0 ) ) ;
    public final void rule__XRelationalExpression__Group_1_0_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:13052:1: ( ( ( rule__XRelationalExpression__Group_1_0_0_0__0 ) ) )
            // InternalXcore.g:13053:1: ( ( rule__XRelationalExpression__Group_1_0_0_0__0 ) )
            {
            // InternalXcore.g:13053:1: ( ( rule__XRelationalExpression__Group_1_0_0_0__0 ) )
            // InternalXcore.g:13054:1: ( rule__XRelationalExpression__Group_1_0_0_0__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXRelationalExpressionAccess().getGroup_1_0_0_0()); 
            }
            // InternalXcore.g:13055:1: ( rule__XRelationalExpression__Group_1_0_0_0__0 )
            // InternalXcore.g:13055:2: rule__XRelationalExpression__Group_1_0_0_0__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XRelationalExpression__Group_1_0_0_0__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXRelationalExpressionAccess().getGroup_1_0_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XRelationalExpression__Group_1_0_0__0__Impl"


    // $ANTLR start "rule__XRelationalExpression__Group_1_0_0_0__0"
    // InternalXcore.g:13067:1: rule__XRelationalExpression__Group_1_0_0_0__0 : rule__XRelationalExpression__Group_1_0_0_0__0__Impl rule__XRelationalExpression__Group_1_0_0_0__1 ;
    public final void rule__XRelationalExpression__Group_1_0_0_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:13071:1: ( rule__XRelationalExpression__Group_1_0_0_0__0__Impl rule__XRelationalExpression__Group_1_0_0_0__1 )
            // InternalXcore.g:13072:2: rule__XRelationalExpression__Group_1_0_0_0__0__Impl rule__XRelationalExpression__Group_1_0_0_0__1
            {
            pushFollow(FollowSets000.FOLLOW_83);
            rule__XRelationalExpression__Group_1_0_0_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XRelationalExpression__Group_1_0_0_0__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XRelationalExpression__Group_1_0_0_0__0"


    // $ANTLR start "rule__XRelationalExpression__Group_1_0_0_0__0__Impl"
    // InternalXcore.g:13079:1: rule__XRelationalExpression__Group_1_0_0_0__0__Impl : ( () ) ;
    public final void rule__XRelationalExpression__Group_1_0_0_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:13083:1: ( ( () ) )
            // InternalXcore.g:13084:1: ( () )
            {
            // InternalXcore.g:13084:1: ( () )
            // InternalXcore.g:13085:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0()); 
            }
            // InternalXcore.g:13086:1: ()
            // InternalXcore.g:13088:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XRelationalExpression__Group_1_0_0_0__0__Impl"


    // $ANTLR start "rule__XRelationalExpression__Group_1_0_0_0__1"
    // InternalXcore.g:13098:1: rule__XRelationalExpression__Group_1_0_0_0__1 : rule__XRelationalExpression__Group_1_0_0_0__1__Impl ;
    public final void rule__XRelationalExpression__Group_1_0_0_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:13102:1: ( rule__XRelationalExpression__Group_1_0_0_0__1__Impl )
            // InternalXcore.g:13103:2: rule__XRelationalExpression__Group_1_0_0_0__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XRelationalExpression__Group_1_0_0_0__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XRelationalExpression__Group_1_0_0_0__1"


    // $ANTLR start "rule__XRelationalExpression__Group_1_0_0_0__1__Impl"
    // InternalXcore.g:13109:1: rule__XRelationalExpression__Group_1_0_0_0__1__Impl : ( 'instanceof' ) ;
    public final void rule__XRelationalExpression__Group_1_0_0_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:13113:1: ( ( 'instanceof' ) )
            // InternalXcore.g:13114:1: ( 'instanceof' )
            {
            // InternalXcore.g:13114:1: ( 'instanceof' )
            // InternalXcore.g:13115:1: 'instanceof'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXRelationalExpressionAccess().getInstanceofKeyword_1_0_0_0_1()); 
            }
            match(input,95,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXRelationalExpressionAccess().getInstanceofKeyword_1_0_0_0_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XRelationalExpression__Group_1_0_0_0__1__Impl"


    // $ANTLR start "rule__XRelationalExpression__Group_1_1__0"
    // InternalXcore.g:13132:1: rule__XRelationalExpression__Group_1_1__0 : rule__XRelationalExpression__Group_1_1__0__Impl rule__XRelationalExpression__Group_1_1__1 ;
    public final void rule__XRelationalExpression__Group_1_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:13136:1: ( rule__XRelationalExpression__Group_1_1__0__Impl rule__XRelationalExpression__Group_1_1__1 )
            // InternalXcore.g:13137:2: rule__XRelationalExpression__Group_1_1__0__Impl rule__XRelationalExpression__Group_1_1__1
            {
            pushFollow(FollowSets000.FOLLOW_72);
            rule__XRelationalExpression__Group_1_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XRelationalExpression__Group_1_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XRelationalExpression__Group_1_1__0"


    // $ANTLR start "rule__XRelationalExpression__Group_1_1__0__Impl"
    // InternalXcore.g:13144:1: rule__XRelationalExpression__Group_1_1__0__Impl : ( ( rule__XRelationalExpression__Group_1_1_0__0 ) ) ;
    public final void rule__XRelationalExpression__Group_1_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:13148:1: ( ( ( rule__XRelationalExpression__Group_1_1_0__0 ) ) )
            // InternalXcore.g:13149:1: ( ( rule__XRelationalExpression__Group_1_1_0__0 ) )
            {
            // InternalXcore.g:13149:1: ( ( rule__XRelationalExpression__Group_1_1_0__0 ) )
            // InternalXcore.g:13150:1: ( rule__XRelationalExpression__Group_1_1_0__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXRelationalExpressionAccess().getGroup_1_1_0()); 
            }
            // InternalXcore.g:13151:1: ( rule__XRelationalExpression__Group_1_1_0__0 )
            // InternalXcore.g:13151:2: rule__XRelationalExpression__Group_1_1_0__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XRelationalExpression__Group_1_1_0__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXRelationalExpressionAccess().getGroup_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XRelationalExpression__Group_1_1__0__Impl"


    // $ANTLR start "rule__XRelationalExpression__Group_1_1__1"
    // InternalXcore.g:13161:1: rule__XRelationalExpression__Group_1_1__1 : rule__XRelationalExpression__Group_1_1__1__Impl ;
    public final void rule__XRelationalExpression__Group_1_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:13165:1: ( rule__XRelationalExpression__Group_1_1__1__Impl )
            // InternalXcore.g:13166:2: rule__XRelationalExpression__Group_1_1__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XRelationalExpression__Group_1_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XRelationalExpression__Group_1_1__1"


    // $ANTLR start "rule__XRelationalExpression__Group_1_1__1__Impl"
    // InternalXcore.g:13172:1: rule__XRelationalExpression__Group_1_1__1__Impl : ( ( rule__XRelationalExpression__RightOperandAssignment_1_1_1 ) ) ;
    public final void rule__XRelationalExpression__Group_1_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:13176:1: ( ( ( rule__XRelationalExpression__RightOperandAssignment_1_1_1 ) ) )
            // InternalXcore.g:13177:1: ( ( rule__XRelationalExpression__RightOperandAssignment_1_1_1 ) )
            {
            // InternalXcore.g:13177:1: ( ( rule__XRelationalExpression__RightOperandAssignment_1_1_1 ) )
            // InternalXcore.g:13178:1: ( rule__XRelationalExpression__RightOperandAssignment_1_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXRelationalExpressionAccess().getRightOperandAssignment_1_1_1()); 
            }
            // InternalXcore.g:13179:1: ( rule__XRelationalExpression__RightOperandAssignment_1_1_1 )
            // InternalXcore.g:13179:2: rule__XRelationalExpression__RightOperandAssignment_1_1_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XRelationalExpression__RightOperandAssignment_1_1_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXRelationalExpressionAccess().getRightOperandAssignment_1_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XRelationalExpression__Group_1_1__1__Impl"


    // $ANTLR start "rule__XRelationalExpression__Group_1_1_0__0"
    // InternalXcore.g:13193:1: rule__XRelationalExpression__Group_1_1_0__0 : rule__XRelationalExpression__Group_1_1_0__0__Impl ;
    public final void rule__XRelationalExpression__Group_1_1_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:13197:1: ( rule__XRelationalExpression__Group_1_1_0__0__Impl )
            // InternalXcore.g:13198:2: rule__XRelationalExpression__Group_1_1_0__0__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XRelationalExpression__Group_1_1_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XRelationalExpression__Group_1_1_0__0"


    // $ANTLR start "rule__XRelationalExpression__Group_1_1_0__0__Impl"
    // InternalXcore.g:13204:1: rule__XRelationalExpression__Group_1_1_0__0__Impl : ( ( rule__XRelationalExpression__Group_1_1_0_0__0 ) ) ;
    public final void rule__XRelationalExpression__Group_1_1_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:13208:1: ( ( ( rule__XRelationalExpression__Group_1_1_0_0__0 ) ) )
            // InternalXcore.g:13209:1: ( ( rule__XRelationalExpression__Group_1_1_0_0__0 ) )
            {
            // InternalXcore.g:13209:1: ( ( rule__XRelationalExpression__Group_1_1_0_0__0 ) )
            // InternalXcore.g:13210:1: ( rule__XRelationalExpression__Group_1_1_0_0__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXRelationalExpressionAccess().getGroup_1_1_0_0()); 
            }
            // InternalXcore.g:13211:1: ( rule__XRelationalExpression__Group_1_1_0_0__0 )
            // InternalXcore.g:13211:2: rule__XRelationalExpression__Group_1_1_0_0__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XRelationalExpression__Group_1_1_0_0__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXRelationalExpressionAccess().getGroup_1_1_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XRelationalExpression__Group_1_1_0__0__Impl"


    // $ANTLR start "rule__XRelationalExpression__Group_1_1_0_0__0"
    // InternalXcore.g:13223:1: rule__XRelationalExpression__Group_1_1_0_0__0 : rule__XRelationalExpression__Group_1_1_0_0__0__Impl rule__XRelationalExpression__Group_1_1_0_0__1 ;
    public final void rule__XRelationalExpression__Group_1_1_0_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:13227:1: ( rule__XRelationalExpression__Group_1_1_0_0__0__Impl rule__XRelationalExpression__Group_1_1_0_0__1 )
            // InternalXcore.g:13228:2: rule__XRelationalExpression__Group_1_1_0_0__0__Impl rule__XRelationalExpression__Group_1_1_0_0__1
            {
            pushFollow(FollowSets000.FOLLOW_81);
            rule__XRelationalExpression__Group_1_1_0_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XRelationalExpression__Group_1_1_0_0__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XRelationalExpression__Group_1_1_0_0__0"


    // $ANTLR start "rule__XRelationalExpression__Group_1_1_0_0__0__Impl"
    // InternalXcore.g:13235:1: rule__XRelationalExpression__Group_1_1_0_0__0__Impl : ( () ) ;
    public final void rule__XRelationalExpression__Group_1_1_0_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:13239:1: ( ( () ) )
            // InternalXcore.g:13240:1: ( () )
            {
            // InternalXcore.g:13240:1: ( () )
            // InternalXcore.g:13241:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0()); 
            }
            // InternalXcore.g:13242:1: ()
            // InternalXcore.g:13244:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XRelationalExpression__Group_1_1_0_0__0__Impl"


    // $ANTLR start "rule__XRelationalExpression__Group_1_1_0_0__1"
    // InternalXcore.g:13254:1: rule__XRelationalExpression__Group_1_1_0_0__1 : rule__XRelationalExpression__Group_1_1_0_0__1__Impl ;
    public final void rule__XRelationalExpression__Group_1_1_0_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:13258:1: ( rule__XRelationalExpression__Group_1_1_0_0__1__Impl )
            // InternalXcore.g:13259:2: rule__XRelationalExpression__Group_1_1_0_0__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XRelationalExpression__Group_1_1_0_0__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XRelationalExpression__Group_1_1_0_0__1"


    // $ANTLR start "rule__XRelationalExpression__Group_1_1_0_0__1__Impl"
    // InternalXcore.g:13265:1: rule__XRelationalExpression__Group_1_1_0_0__1__Impl : ( ( rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 ) ) ;
    public final void rule__XRelationalExpression__Group_1_1_0_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:13269:1: ( ( ( rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 ) ) )
            // InternalXcore.g:13270:1: ( ( rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 ) )
            {
            // InternalXcore.g:13270:1: ( ( rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 ) )
            // InternalXcore.g:13271:1: ( rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXRelationalExpressionAccess().getFeatureAssignment_1_1_0_0_1()); 
            }
            // InternalXcore.g:13272:1: ( rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 )
            // InternalXcore.g:13272:2: rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXRelationalExpressionAccess().getFeatureAssignment_1_1_0_0_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XRelationalExpression__Group_1_1_0_0__1__Impl"


    // $ANTLR start "rule__OpCompare__Group_1__0"
    // InternalXcore.g:13286:1: rule__OpCompare__Group_1__0 : rule__OpCompare__Group_1__0__Impl rule__OpCompare__Group_1__1 ;
    public final void rule__OpCompare__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:13290:1: ( rule__OpCompare__Group_1__0__Impl rule__OpCompare__Group_1__1 )
            // InternalXcore.g:13291:2: rule__OpCompare__Group_1__0__Impl rule__OpCompare__Group_1__1
            {
            pushFollow(FollowSets000.FOLLOW_15);
            rule__OpCompare__Group_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__OpCompare__Group_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__OpCompare__Group_1__0"


    // $ANTLR start "rule__OpCompare__Group_1__0__Impl"
    // InternalXcore.g:13298:1: rule__OpCompare__Group_1__0__Impl : ( '<' ) ;
    public final void rule__OpCompare__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:13302:1: ( ( '<' ) )
            // InternalXcore.g:13303:1: ( '<' )
            {
            // InternalXcore.g:13303:1: ( '<' )
            // InternalXcore.g:13304:1: '<'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOpCompareAccess().getLessThanSignKeyword_1_0()); 
            }
            match(input,66,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getOpCompareAccess().getLessThanSignKeyword_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__OpCompare__Group_1__0__Impl"


    // $ANTLR start "rule__OpCompare__Group_1__1"
    // InternalXcore.g:13317:1: rule__OpCompare__Group_1__1 : rule__OpCompare__Group_1__1__Impl ;
    public final void rule__OpCompare__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:13321:1: ( rule__OpCompare__Group_1__1__Impl )
            // InternalXcore.g:13322:2: rule__OpCompare__Group_1__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__OpCompare__Group_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__OpCompare__Group_1__1"


    // $ANTLR start "rule__OpCompare__Group_1__1__Impl"
    // InternalXcore.g:13328:1: rule__OpCompare__Group_1__1__Impl : ( '=' ) ;
    public final void rule__OpCompare__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:13332:1: ( ( '=' ) )
            // InternalXcore.g:13333:1: ( '=' )
            {
            // InternalXcore.g:13333:1: ( '=' )
            // InternalXcore.g:13334:1: '='
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOpCompareAccess().getEqualsSignKeyword_1_1()); 
            }
            match(input,13,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getOpCompareAccess().getEqualsSignKeyword_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__OpCompare__Group_1__1__Impl"


    // $ANTLR start "rule__XOtherOperatorExpression__Group__0"
    // InternalXcore.g:13351:1: rule__XOtherOperatorExpression__Group__0 : rule__XOtherOperatorExpression__Group__0__Impl rule__XOtherOperatorExpression__Group__1 ;
    public final void rule__XOtherOperatorExpression__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:13355:1: ( rule__XOtherOperatorExpression__Group__0__Impl rule__XOtherOperatorExpression__Group__1 )
            // InternalXcore.g:13356:2: rule__XOtherOperatorExpression__Group__0__Impl rule__XOtherOperatorExpression__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_84);
            rule__XOtherOperatorExpression__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XOtherOperatorExpression__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOtherOperatorExpression__Group__0"


    // $ANTLR start "rule__XOtherOperatorExpression__Group__0__Impl"
    // InternalXcore.g:13363:1: rule__XOtherOperatorExpression__Group__0__Impl : ( ruleXAdditiveExpression ) ;
    public final void rule__XOtherOperatorExpression__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:13367:1: ( ( ruleXAdditiveExpression ) )
            // InternalXcore.g:13368:1: ( ruleXAdditiveExpression )
            {
            // InternalXcore.g:13368:1: ( ruleXAdditiveExpression )
            // InternalXcore.g:13369:1: ruleXAdditiveExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOtherOperatorExpressionAccess().getXAdditiveExpressionParserRuleCall_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXAdditiveExpression();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXOtherOperatorExpressionAccess().getXAdditiveExpressionParserRuleCall_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOtherOperatorExpression__Group__0__Impl"


    // $ANTLR start "rule__XOtherOperatorExpression__Group__1"
    // InternalXcore.g:13380:1: rule__XOtherOperatorExpression__Group__1 : rule__XOtherOperatorExpression__Group__1__Impl ;
    public final void rule__XOtherOperatorExpression__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:13384:1: ( rule__XOtherOperatorExpression__Group__1__Impl )
            // InternalXcore.g:13385:2: rule__XOtherOperatorExpression__Group__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XOtherOperatorExpression__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOtherOperatorExpression__Group__1"


    // $ANTLR start "rule__XOtherOperatorExpression__Group__1__Impl"
    // InternalXcore.g:13391:1: rule__XOtherOperatorExpression__Group__1__Impl : ( ( rule__XOtherOperatorExpression__Group_1__0 )* ) ;
    public final void rule__XOtherOperatorExpression__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:13395:1: ( ( ( rule__XOtherOperatorExpression__Group_1__0 )* ) )
            // InternalXcore.g:13396:1: ( ( rule__XOtherOperatorExpression__Group_1__0 )* )
            {
            // InternalXcore.g:13396:1: ( ( rule__XOtherOperatorExpression__Group_1__0 )* )
            // InternalXcore.g:13397:1: ( rule__XOtherOperatorExpression__Group_1__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOtherOperatorExpressionAccess().getGroup_1()); 
            }
            // InternalXcore.g:13398:1: ( rule__XOtherOperatorExpression__Group_1__0 )*
            loop125:
            do {
                int alt125=2;
                alt125 = dfa125.predict(input);
                switch (alt125) {
            	case 1 :
            	    // InternalXcore.g:13398:2: rule__XOtherOperatorExpression__Group_1__0
            	    {
            	    pushFollow(FollowSets000.FOLLOW_85);
            	    rule__XOtherOperatorExpression__Group_1__0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop125;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXOtherOperatorExpressionAccess().getGroup_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOtherOperatorExpression__Group__1__Impl"


    // $ANTLR start "rule__XOtherOperatorExpression__Group_1__0"
    // InternalXcore.g:13412:1: rule__XOtherOperatorExpression__Group_1__0 : rule__XOtherOperatorExpression__Group_1__0__Impl rule__XOtherOperatorExpression__Group_1__1 ;
    public final void rule__XOtherOperatorExpression__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:13416:1: ( rule__XOtherOperatorExpression__Group_1__0__Impl rule__XOtherOperatorExpression__Group_1__1 )
            // InternalXcore.g:13417:2: rule__XOtherOperatorExpression__Group_1__0__Impl rule__XOtherOperatorExpression__Group_1__1
            {
            pushFollow(FollowSets000.FOLLOW_72);
            rule__XOtherOperatorExpression__Group_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XOtherOperatorExpression__Group_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOtherOperatorExpression__Group_1__0"


    // $ANTLR start "rule__XOtherOperatorExpression__Group_1__0__Impl"
    // InternalXcore.g:13424:1: rule__XOtherOperatorExpression__Group_1__0__Impl : ( ( rule__XOtherOperatorExpression__Group_1_0__0 ) ) ;
    public final void rule__XOtherOperatorExpression__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:13428:1: ( ( ( rule__XOtherOperatorExpression__Group_1_0__0 ) ) )
            // InternalXcore.g:13429:1: ( ( rule__XOtherOperatorExpression__Group_1_0__0 ) )
            {
            // InternalXcore.g:13429:1: ( ( rule__XOtherOperatorExpression__Group_1_0__0 ) )
            // InternalXcore.g:13430:1: ( rule__XOtherOperatorExpression__Group_1_0__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOtherOperatorExpressionAccess().getGroup_1_0()); 
            }
            // InternalXcore.g:13431:1: ( rule__XOtherOperatorExpression__Group_1_0__0 )
            // InternalXcore.g:13431:2: rule__XOtherOperatorExpression__Group_1_0__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XOtherOperatorExpression__Group_1_0__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXOtherOperatorExpressionAccess().getGroup_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOtherOperatorExpression__Group_1__0__Impl"


    // $ANTLR start "rule__XOtherOperatorExpression__Group_1__1"
    // InternalXcore.g:13441:1: rule__XOtherOperatorExpression__Group_1__1 : rule__XOtherOperatorExpression__Group_1__1__Impl ;
    public final void rule__XOtherOperatorExpression__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:13445:1: ( rule__XOtherOperatorExpression__Group_1__1__Impl )
            // InternalXcore.g:13446:2: rule__XOtherOperatorExpression__Group_1__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XOtherOperatorExpression__Group_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOtherOperatorExpression__Group_1__1"


    // $ANTLR start "rule__XOtherOperatorExpression__Group_1__1__Impl"
    // InternalXcore.g:13452:1: rule__XOtherOperatorExpression__Group_1__1__Impl : ( ( rule__XOtherOperatorExpression__RightOperandAssignment_1_1 ) ) ;
    public final void rule__XOtherOperatorExpression__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:13456:1: ( ( ( rule__XOtherOperatorExpression__RightOperandAssignment_1_1 ) ) )
            // InternalXcore.g:13457:1: ( ( rule__XOtherOperatorExpression__RightOperandAssignment_1_1 ) )
            {
            // InternalXcore.g:13457:1: ( ( rule__XOtherOperatorExpression__RightOperandAssignment_1_1 ) )
            // InternalXcore.g:13458:1: ( rule__XOtherOperatorExpression__RightOperandAssignment_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOtherOperatorExpressionAccess().getRightOperandAssignment_1_1()); 
            }
            // InternalXcore.g:13459:1: ( rule__XOtherOperatorExpression__RightOperandAssignment_1_1 )
            // InternalXcore.g:13459:2: rule__XOtherOperatorExpression__RightOperandAssignment_1_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XOtherOperatorExpression__RightOperandAssignment_1_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXOtherOperatorExpressionAccess().getRightOperandAssignment_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOtherOperatorExpression__Group_1__1__Impl"


    // $ANTLR start "rule__XOtherOperatorExpression__Group_1_0__0"
    // InternalXcore.g:13473:1: rule__XOtherOperatorExpression__Group_1_0__0 : rule__XOtherOperatorExpression__Group_1_0__0__Impl ;
    public final void rule__XOtherOperatorExpression__Group_1_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:13477:1: ( rule__XOtherOperatorExpression__Group_1_0__0__Impl )
            // InternalXcore.g:13478:2: rule__XOtherOperatorExpression__Group_1_0__0__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XOtherOperatorExpression__Group_1_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOtherOperatorExpression__Group_1_0__0"


    // $ANTLR start "rule__XOtherOperatorExpression__Group_1_0__0__Impl"
    // InternalXcore.g:13484:1: rule__XOtherOperatorExpression__Group_1_0__0__Impl : ( ( rule__XOtherOperatorExpression__Group_1_0_0__0 ) ) ;
    public final void rule__XOtherOperatorExpression__Group_1_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:13488:1: ( ( ( rule__XOtherOperatorExpression__Group_1_0_0__0 ) ) )
            // InternalXcore.g:13489:1: ( ( rule__XOtherOperatorExpression__Group_1_0_0__0 ) )
            {
            // InternalXcore.g:13489:1: ( ( rule__XOtherOperatorExpression__Group_1_0_0__0 ) )
            // InternalXcore.g:13490:1: ( rule__XOtherOperatorExpression__Group_1_0_0__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOtherOperatorExpressionAccess().getGroup_1_0_0()); 
            }
            // InternalXcore.g:13491:1: ( rule__XOtherOperatorExpression__Group_1_0_0__0 )
            // InternalXcore.g:13491:2: rule__XOtherOperatorExpression__Group_1_0_0__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XOtherOperatorExpression__Group_1_0_0__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXOtherOperatorExpressionAccess().getGroup_1_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOtherOperatorExpression__Group_1_0__0__Impl"


    // $ANTLR start "rule__XOtherOperatorExpression__Group_1_0_0__0"
    // InternalXcore.g:13503:1: rule__XOtherOperatorExpression__Group_1_0_0__0 : rule__XOtherOperatorExpression__Group_1_0_0__0__Impl rule__XOtherOperatorExpression__Group_1_0_0__1 ;
    public final void rule__XOtherOperatorExpression__Group_1_0_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:13507:1: ( rule__XOtherOperatorExpression__Group_1_0_0__0__Impl rule__XOtherOperatorExpression__Group_1_0_0__1 )
            // InternalXcore.g:13508:2: rule__XOtherOperatorExpression__Group_1_0_0__0__Impl rule__XOtherOperatorExpression__Group_1_0_0__1
            {
            pushFollow(FollowSets000.FOLLOW_84);
            rule__XOtherOperatorExpression__Group_1_0_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XOtherOperatorExpression__Group_1_0_0__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOtherOperatorExpression__Group_1_0_0__0"


    // $ANTLR start "rule__XOtherOperatorExpression__Group_1_0_0__0__Impl"
    // InternalXcore.g:13515:1: rule__XOtherOperatorExpression__Group_1_0_0__0__Impl : ( () ) ;
    public final void rule__XOtherOperatorExpression__Group_1_0_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:13519:1: ( ( () ) )
            // InternalXcore.g:13520:1: ( () )
            {
            // InternalXcore.g:13520:1: ( () )
            // InternalXcore.g:13521:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); 
            }
            // InternalXcore.g:13522:1: ()
            // InternalXcore.g:13524:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOtherOperatorExpression__Group_1_0_0__0__Impl"


    // $ANTLR start "rule__XOtherOperatorExpression__Group_1_0_0__1"
    // InternalXcore.g:13534:1: rule__XOtherOperatorExpression__Group_1_0_0__1 : rule__XOtherOperatorExpression__Group_1_0_0__1__Impl ;
    public final void rule__XOtherOperatorExpression__Group_1_0_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:13538:1: ( rule__XOtherOperatorExpression__Group_1_0_0__1__Impl )
            // InternalXcore.g:13539:2: rule__XOtherOperatorExpression__Group_1_0_0__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XOtherOperatorExpression__Group_1_0_0__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOtherOperatorExpression__Group_1_0_0__1"


    // $ANTLR start "rule__XOtherOperatorExpression__Group_1_0_0__1__Impl"
    // InternalXcore.g:13545:1: rule__XOtherOperatorExpression__Group_1_0_0__1__Impl : ( ( rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 ) ) ;
    public final void rule__XOtherOperatorExpression__Group_1_0_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:13549:1: ( ( ( rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 ) ) )
            // InternalXcore.g:13550:1: ( ( rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 ) )
            {
            // InternalXcore.g:13550:1: ( ( rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 ) )
            // InternalXcore.g:13551:1: ( rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOtherOperatorExpressionAccess().getFeatureAssignment_1_0_0_1()); 
            }
            // InternalXcore.g:13552:1: ( rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 )
            // InternalXcore.g:13552:2: rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXOtherOperatorExpressionAccess().getFeatureAssignment_1_0_0_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOtherOperatorExpression__Group_1_0_0__1__Impl"


    // $ANTLR start "rule__OpOther__Group_2__0"
    // InternalXcore.g:13566:1: rule__OpOther__Group_2__0 : rule__OpOther__Group_2__0__Impl rule__OpOther__Group_2__1 ;
    public final void rule__OpOther__Group_2__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:13570:1: ( rule__OpOther__Group_2__0__Impl rule__OpOther__Group_2__1 )
            // InternalXcore.g:13571:2: rule__OpOther__Group_2__0__Impl rule__OpOther__Group_2__1
            {
            pushFollow(FollowSets000.FOLLOW_61);
            rule__OpOther__Group_2__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__OpOther__Group_2__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__OpOther__Group_2__0"


    // $ANTLR start "rule__OpOther__Group_2__0__Impl"
    // InternalXcore.g:13578:1: rule__OpOther__Group_2__0__Impl : ( '>' ) ;
    public final void rule__OpOther__Group_2__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:13582:1: ( ( '>' ) )
            // InternalXcore.g:13583:1: ( '>' )
            {
            // InternalXcore.g:13583:1: ( '>' )
            // InternalXcore.g:13584:1: '>'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_2_0()); 
            }
            match(input,65,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__OpOther__Group_2__0__Impl"


    // $ANTLR start "rule__OpOther__Group_2__1"
    // InternalXcore.g:13597:1: rule__OpOther__Group_2__1 : rule__OpOther__Group_2__1__Impl ;
    public final void rule__OpOther__Group_2__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:13601:1: ( rule__OpOther__Group_2__1__Impl )
            // InternalXcore.g:13602:2: rule__OpOther__Group_2__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__OpOther__Group_2__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__OpOther__Group_2__1"


    // $ANTLR start "rule__OpOther__Group_2__1__Impl"
    // InternalXcore.g:13608:1: rule__OpOther__Group_2__1__Impl : ( '..' ) ;
    public final void rule__OpOther__Group_2__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:13612:1: ( ( '..' ) )
            // InternalXcore.g:13613:1: ( '..' )
            {
            // InternalXcore.g:13613:1: ( '..' )
            // InternalXcore.g:13614:1: '..'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOpOtherAccess().getFullStopFullStopKeyword_2_1()); 
            }
            match(input,69,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getOpOtherAccess().getFullStopFullStopKeyword_2_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__OpOther__Group_2__1__Impl"


    // $ANTLR start "rule__OpOther__Group_5__0"
    // InternalXcore.g:13631:1: rule__OpOther__Group_5__0 : rule__OpOther__Group_5__0__Impl rule__OpOther__Group_5__1 ;
    public final void rule__OpOther__Group_5__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:13635:1: ( rule__OpOther__Group_5__0__Impl rule__OpOther__Group_5__1 )
            // InternalXcore.g:13636:2: rule__OpOther__Group_5__0__Impl rule__OpOther__Group_5__1
            {
            pushFollow(FollowSets000.FOLLOW_86);
            rule__OpOther__Group_5__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__OpOther__Group_5__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__OpOther__Group_5__0"


    // $ANTLR start "rule__OpOther__Group_5__0__Impl"
    // InternalXcore.g:13643:1: rule__OpOther__Group_5__0__Impl : ( '>' ) ;
    public final void rule__OpOther__Group_5__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:13647:1: ( ( '>' ) )
            // InternalXcore.g:13648:1: ( '>' )
            {
            // InternalXcore.g:13648:1: ( '>' )
            // InternalXcore.g:13649:1: '>'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_0()); 
            }
            match(input,65,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__OpOther__Group_5__0__Impl"


    // $ANTLR start "rule__OpOther__Group_5__1"
    // InternalXcore.g:13662:1: rule__OpOther__Group_5__1 : rule__OpOther__Group_5__1__Impl ;
    public final void rule__OpOther__Group_5__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:13666:1: ( rule__OpOther__Group_5__1__Impl )
            // InternalXcore.g:13667:2: rule__OpOther__Group_5__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__OpOther__Group_5__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__OpOther__Group_5__1"


    // $ANTLR start "rule__OpOther__Group_5__1__Impl"
    // InternalXcore.g:13673:1: rule__OpOther__Group_5__1__Impl : ( ( rule__OpOther__Alternatives_5_1 ) ) ;
    public final void rule__OpOther__Group_5__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:13677:1: ( ( ( rule__OpOther__Alternatives_5_1 ) ) )
            // InternalXcore.g:13678:1: ( ( rule__OpOther__Alternatives_5_1 ) )
            {
            // InternalXcore.g:13678:1: ( ( rule__OpOther__Alternatives_5_1 ) )
            // InternalXcore.g:13679:1: ( rule__OpOther__Alternatives_5_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOpOtherAccess().getAlternatives_5_1()); 
            }
            // InternalXcore.g:13680:1: ( rule__OpOther__Alternatives_5_1 )
            // InternalXcore.g:13680:2: rule__OpOther__Alternatives_5_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__OpOther__Alternatives_5_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getOpOtherAccess().getAlternatives_5_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__OpOther__Group_5__1__Impl"


    // $ANTLR start "rule__OpOther__Group_5_1_0__0"
    // InternalXcore.g:13694:1: rule__OpOther__Group_5_1_0__0 : rule__OpOther__Group_5_1_0__0__Impl ;
    public final void rule__OpOther__Group_5_1_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:13698:1: ( rule__OpOther__Group_5_1_0__0__Impl )
            // InternalXcore.g:13699:2: rule__OpOther__Group_5_1_0__0__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__OpOther__Group_5_1_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__OpOther__Group_5_1_0__0"


    // $ANTLR start "rule__OpOther__Group_5_1_0__0__Impl"
    // InternalXcore.g:13705:1: rule__OpOther__Group_5_1_0__0__Impl : ( ( rule__OpOther__Group_5_1_0_0__0 ) ) ;
    public final void rule__OpOther__Group_5_1_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:13709:1: ( ( ( rule__OpOther__Group_5_1_0_0__0 ) ) )
            // InternalXcore.g:13710:1: ( ( rule__OpOther__Group_5_1_0_0__0 ) )
            {
            // InternalXcore.g:13710:1: ( ( rule__OpOther__Group_5_1_0_0__0 ) )
            // InternalXcore.g:13711:1: ( rule__OpOther__Group_5_1_0_0__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOpOtherAccess().getGroup_5_1_0_0()); 
            }
            // InternalXcore.g:13712:1: ( rule__OpOther__Group_5_1_0_0__0 )
            // InternalXcore.g:13712:2: rule__OpOther__Group_5_1_0_0__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__OpOther__Group_5_1_0_0__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getOpOtherAccess().getGroup_5_1_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__OpOther__Group_5_1_0__0__Impl"


    // $ANTLR start "rule__OpOther__Group_5_1_0_0__0"
    // InternalXcore.g:13724:1: rule__OpOther__Group_5_1_0_0__0 : rule__OpOther__Group_5_1_0_0__0__Impl rule__OpOther__Group_5_1_0_0__1 ;
    public final void rule__OpOther__Group_5_1_0_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:13728:1: ( rule__OpOther__Group_5_1_0_0__0__Impl rule__OpOther__Group_5_1_0_0__1 )
            // InternalXcore.g:13729:2: rule__OpOther__Group_5_1_0_0__0__Impl rule__OpOther__Group_5_1_0_0__1
            {
            pushFollow(FollowSets000.FOLLOW_86);
            rule__OpOther__Group_5_1_0_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__OpOther__Group_5_1_0_0__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__OpOther__Group_5_1_0_0__0"


    // $ANTLR start "rule__OpOther__Group_5_1_0_0__0__Impl"
    // InternalXcore.g:13736:1: rule__OpOther__Group_5_1_0_0__0__Impl : ( '>' ) ;
    public final void rule__OpOther__Group_5_1_0_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:13740:1: ( ( '>' ) )
            // InternalXcore.g:13741:1: ( '>' )
            {
            // InternalXcore.g:13741:1: ( '>' )
            // InternalXcore.g:13742:1: '>'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_1_0_0_0()); 
            }
            match(input,65,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_1_0_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__OpOther__Group_5_1_0_0__0__Impl"


    // $ANTLR start "rule__OpOther__Group_5_1_0_0__1"
    // InternalXcore.g:13755:1: rule__OpOther__Group_5_1_0_0__1 : rule__OpOther__Group_5_1_0_0__1__Impl ;
    public final void rule__OpOther__Group_5_1_0_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:13759:1: ( rule__OpOther__Group_5_1_0_0__1__Impl )
            // InternalXcore.g:13760:2: rule__OpOther__Group_5_1_0_0__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__OpOther__Group_5_1_0_0__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__OpOther__Group_5_1_0_0__1"


    // $ANTLR start "rule__OpOther__Group_5_1_0_0__1__Impl"
    // InternalXcore.g:13766:1: rule__OpOther__Group_5_1_0_0__1__Impl : ( '>' ) ;
    public final void rule__OpOther__Group_5_1_0_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:13770:1: ( ( '>' ) )
            // InternalXcore.g:13771:1: ( '>' )
            {
            // InternalXcore.g:13771:1: ( '>' )
            // InternalXcore.g:13772:1: '>'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_1_0_0_1()); 
            }
            match(input,65,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_1_0_0_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__OpOther__Group_5_1_0_0__1__Impl"


    // $ANTLR start "rule__OpOther__Group_6__0"
    // InternalXcore.g:13789:1: rule__OpOther__Group_6__0 : rule__OpOther__Group_6__0__Impl rule__OpOther__Group_6__1 ;
    public final void rule__OpOther__Group_6__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:13793:1: ( rule__OpOther__Group_6__0__Impl rule__OpOther__Group_6__1 )
            // InternalXcore.g:13794:2: rule__OpOther__Group_6__0__Impl rule__OpOther__Group_6__1
            {
            pushFollow(FollowSets000.FOLLOW_87);
            rule__OpOther__Group_6__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__OpOther__Group_6__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__OpOther__Group_6__0"


    // $ANTLR start "rule__OpOther__Group_6__0__Impl"
    // InternalXcore.g:13801:1: rule__OpOther__Group_6__0__Impl : ( '<' ) ;
    public final void rule__OpOther__Group_6__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:13805:1: ( ( '<' ) )
            // InternalXcore.g:13806:1: ( '<' )
            {
            // InternalXcore.g:13806:1: ( '<' )
            // InternalXcore.g:13807:1: '<'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_0()); 
            }
            match(input,66,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__OpOther__Group_6__0__Impl"


    // $ANTLR start "rule__OpOther__Group_6__1"
    // InternalXcore.g:13820:1: rule__OpOther__Group_6__1 : rule__OpOther__Group_6__1__Impl ;
    public final void rule__OpOther__Group_6__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:13824:1: ( rule__OpOther__Group_6__1__Impl )
            // InternalXcore.g:13825:2: rule__OpOther__Group_6__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__OpOther__Group_6__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__OpOther__Group_6__1"


    // $ANTLR start "rule__OpOther__Group_6__1__Impl"
    // InternalXcore.g:13831:1: rule__OpOther__Group_6__1__Impl : ( ( rule__OpOther__Alternatives_6_1 ) ) ;
    public final void rule__OpOther__Group_6__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:13835:1: ( ( ( rule__OpOther__Alternatives_6_1 ) ) )
            // InternalXcore.g:13836:1: ( ( rule__OpOther__Alternatives_6_1 ) )
            {
            // InternalXcore.g:13836:1: ( ( rule__OpOther__Alternatives_6_1 ) )
            // InternalXcore.g:13837:1: ( rule__OpOther__Alternatives_6_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOpOtherAccess().getAlternatives_6_1()); 
            }
            // InternalXcore.g:13838:1: ( rule__OpOther__Alternatives_6_1 )
            // InternalXcore.g:13838:2: rule__OpOther__Alternatives_6_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__OpOther__Alternatives_6_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getOpOtherAccess().getAlternatives_6_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__OpOther__Group_6__1__Impl"


    // $ANTLR start "rule__OpOther__Group_6_1_0__0"
    // InternalXcore.g:13852:1: rule__OpOther__Group_6_1_0__0 : rule__OpOther__Group_6_1_0__0__Impl ;
    public final void rule__OpOther__Group_6_1_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:13856:1: ( rule__OpOther__Group_6_1_0__0__Impl )
            // InternalXcore.g:13857:2: rule__OpOther__Group_6_1_0__0__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__OpOther__Group_6_1_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__OpOther__Group_6_1_0__0"


    // $ANTLR start "rule__OpOther__Group_6_1_0__0__Impl"
    // InternalXcore.g:13863:1: rule__OpOther__Group_6_1_0__0__Impl : ( ( rule__OpOther__Group_6_1_0_0__0 ) ) ;
    public final void rule__OpOther__Group_6_1_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:13867:1: ( ( ( rule__OpOther__Group_6_1_0_0__0 ) ) )
            // InternalXcore.g:13868:1: ( ( rule__OpOther__Group_6_1_0_0__0 ) )
            {
            // InternalXcore.g:13868:1: ( ( rule__OpOther__Group_6_1_0_0__0 ) )
            // InternalXcore.g:13869:1: ( rule__OpOther__Group_6_1_0_0__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOpOtherAccess().getGroup_6_1_0_0()); 
            }
            // InternalXcore.g:13870:1: ( rule__OpOther__Group_6_1_0_0__0 )
            // InternalXcore.g:13870:2: rule__OpOther__Group_6_1_0_0__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__OpOther__Group_6_1_0_0__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getOpOtherAccess().getGroup_6_1_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__OpOther__Group_6_1_0__0__Impl"


    // $ANTLR start "rule__OpOther__Group_6_1_0_0__0"
    // InternalXcore.g:13882:1: rule__OpOther__Group_6_1_0_0__0 : rule__OpOther__Group_6_1_0_0__0__Impl rule__OpOther__Group_6_1_0_0__1 ;
    public final void rule__OpOther__Group_6_1_0_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:13886:1: ( rule__OpOther__Group_6_1_0_0__0__Impl rule__OpOther__Group_6_1_0_0__1 )
            // InternalXcore.g:13887:2: rule__OpOther__Group_6_1_0_0__0__Impl rule__OpOther__Group_6_1_0_0__1
            {
            pushFollow(FollowSets000.FOLLOW_66);
            rule__OpOther__Group_6_1_0_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__OpOther__Group_6_1_0_0__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__OpOther__Group_6_1_0_0__0"


    // $ANTLR start "rule__OpOther__Group_6_1_0_0__0__Impl"
    // InternalXcore.g:13894:1: rule__OpOther__Group_6_1_0_0__0__Impl : ( '<' ) ;
    public final void rule__OpOther__Group_6_1_0_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:13898:1: ( ( '<' ) )
            // InternalXcore.g:13899:1: ( '<' )
            {
            // InternalXcore.g:13899:1: ( '<' )
            // InternalXcore.g:13900:1: '<'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_0_0_0()); 
            }
            match(input,66,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_0_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__OpOther__Group_6_1_0_0__0__Impl"


    // $ANTLR start "rule__OpOther__Group_6_1_0_0__1"
    // InternalXcore.g:13913:1: rule__OpOther__Group_6_1_0_0__1 : rule__OpOther__Group_6_1_0_0__1__Impl ;
    public final void rule__OpOther__Group_6_1_0_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:13917:1: ( rule__OpOther__Group_6_1_0_0__1__Impl )
            // InternalXcore.g:13918:2: rule__OpOther__Group_6_1_0_0__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__OpOther__Group_6_1_0_0__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__OpOther__Group_6_1_0_0__1"


    // $ANTLR start "rule__OpOther__Group_6_1_0_0__1__Impl"
    // InternalXcore.g:13924:1: rule__OpOther__Group_6_1_0_0__1__Impl : ( '<' ) ;
    public final void rule__OpOther__Group_6_1_0_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:13928:1: ( ( '<' ) )
            // InternalXcore.g:13929:1: ( '<' )
            {
            // InternalXcore.g:13929:1: ( '<' )
            // InternalXcore.g:13930:1: '<'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_0_0_1()); 
            }
            match(input,66,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_0_0_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__OpOther__Group_6_1_0_0__1__Impl"


    // $ANTLR start "rule__XAdditiveExpression__Group__0"
    // InternalXcore.g:13947:1: rule__XAdditiveExpression__Group__0 : rule__XAdditiveExpression__Group__0__Impl rule__XAdditiveExpression__Group__1 ;
    public final void rule__XAdditiveExpression__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:13951:1: ( rule__XAdditiveExpression__Group__0__Impl rule__XAdditiveExpression__Group__1 )
            // InternalXcore.g:13952:2: rule__XAdditiveExpression__Group__0__Impl rule__XAdditiveExpression__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_88);
            rule__XAdditiveExpression__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XAdditiveExpression__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAdditiveExpression__Group__0"


    // $ANTLR start "rule__XAdditiveExpression__Group__0__Impl"
    // InternalXcore.g:13959:1: rule__XAdditiveExpression__Group__0__Impl : ( ruleXMultiplicativeExpression ) ;
    public final void rule__XAdditiveExpression__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:13963:1: ( ( ruleXMultiplicativeExpression ) )
            // InternalXcore.g:13964:1: ( ruleXMultiplicativeExpression )
            {
            // InternalXcore.g:13964:1: ( ruleXMultiplicativeExpression )
            // InternalXcore.g:13965:1: ruleXMultiplicativeExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAdditiveExpressionAccess().getXMultiplicativeExpressionParserRuleCall_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXMultiplicativeExpression();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAdditiveExpressionAccess().getXMultiplicativeExpressionParserRuleCall_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAdditiveExpression__Group__0__Impl"


    // $ANTLR start "rule__XAdditiveExpression__Group__1"
    // InternalXcore.g:13976:1: rule__XAdditiveExpression__Group__1 : rule__XAdditiveExpression__Group__1__Impl ;
    public final void rule__XAdditiveExpression__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:13980:1: ( rule__XAdditiveExpression__Group__1__Impl )
            // InternalXcore.g:13981:2: rule__XAdditiveExpression__Group__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XAdditiveExpression__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAdditiveExpression__Group__1"


    // $ANTLR start "rule__XAdditiveExpression__Group__1__Impl"
    // InternalXcore.g:13987:1: rule__XAdditiveExpression__Group__1__Impl : ( ( rule__XAdditiveExpression__Group_1__0 )* ) ;
    public final void rule__XAdditiveExpression__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:13991:1: ( ( ( rule__XAdditiveExpression__Group_1__0 )* ) )
            // InternalXcore.g:13992:1: ( ( rule__XAdditiveExpression__Group_1__0 )* )
            {
            // InternalXcore.g:13992:1: ( ( rule__XAdditiveExpression__Group_1__0 )* )
            // InternalXcore.g:13993:1: ( rule__XAdditiveExpression__Group_1__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAdditiveExpressionAccess().getGroup_1()); 
            }
            // InternalXcore.g:13994:1: ( rule__XAdditiveExpression__Group_1__0 )*
            loop126:
            do {
                int alt126=2;
                int LA126_0 = input.LA(1);

                if ( (LA126_0==73) ) {
                    int LA126_2 = input.LA(2);

                    if ( (synpred208_InternalXcore()) ) {
                        alt126=1;
                    }


                }
                else if ( (LA126_0==19) ) {
                    int LA126_3 = input.LA(2);

                    if ( (synpred208_InternalXcore()) ) {
                        alt126=1;
                    }


                }


                switch (alt126) {
            	case 1 :
            	    // InternalXcore.g:13994:2: rule__XAdditiveExpression__Group_1__0
            	    {
            	    pushFollow(FollowSets000.FOLLOW_89);
            	    rule__XAdditiveExpression__Group_1__0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop126;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAdditiveExpressionAccess().getGroup_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAdditiveExpression__Group__1__Impl"


    // $ANTLR start "rule__XAdditiveExpression__Group_1__0"
    // InternalXcore.g:14008:1: rule__XAdditiveExpression__Group_1__0 : rule__XAdditiveExpression__Group_1__0__Impl rule__XAdditiveExpression__Group_1__1 ;
    public final void rule__XAdditiveExpression__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:14012:1: ( rule__XAdditiveExpression__Group_1__0__Impl rule__XAdditiveExpression__Group_1__1 )
            // InternalXcore.g:14013:2: rule__XAdditiveExpression__Group_1__0__Impl rule__XAdditiveExpression__Group_1__1
            {
            pushFollow(FollowSets000.FOLLOW_72);
            rule__XAdditiveExpression__Group_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XAdditiveExpression__Group_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAdditiveExpression__Group_1__0"


    // $ANTLR start "rule__XAdditiveExpression__Group_1__0__Impl"
    // InternalXcore.g:14020:1: rule__XAdditiveExpression__Group_1__0__Impl : ( ( rule__XAdditiveExpression__Group_1_0__0 ) ) ;
    public final void rule__XAdditiveExpression__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:14024:1: ( ( ( rule__XAdditiveExpression__Group_1_0__0 ) ) )
            // InternalXcore.g:14025:1: ( ( rule__XAdditiveExpression__Group_1_0__0 ) )
            {
            // InternalXcore.g:14025:1: ( ( rule__XAdditiveExpression__Group_1_0__0 ) )
            // InternalXcore.g:14026:1: ( rule__XAdditiveExpression__Group_1_0__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAdditiveExpressionAccess().getGroup_1_0()); 
            }
            // InternalXcore.g:14027:1: ( rule__XAdditiveExpression__Group_1_0__0 )
            // InternalXcore.g:14027:2: rule__XAdditiveExpression__Group_1_0__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XAdditiveExpression__Group_1_0__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAdditiveExpressionAccess().getGroup_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAdditiveExpression__Group_1__0__Impl"


    // $ANTLR start "rule__XAdditiveExpression__Group_1__1"
    // InternalXcore.g:14037:1: rule__XAdditiveExpression__Group_1__1 : rule__XAdditiveExpression__Group_1__1__Impl ;
    public final void rule__XAdditiveExpression__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:14041:1: ( rule__XAdditiveExpression__Group_1__1__Impl )
            // InternalXcore.g:14042:2: rule__XAdditiveExpression__Group_1__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XAdditiveExpression__Group_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAdditiveExpression__Group_1__1"


    // $ANTLR start "rule__XAdditiveExpression__Group_1__1__Impl"
    // InternalXcore.g:14048:1: rule__XAdditiveExpression__Group_1__1__Impl : ( ( rule__XAdditiveExpression__RightOperandAssignment_1_1 ) ) ;
    public final void rule__XAdditiveExpression__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:14052:1: ( ( ( rule__XAdditiveExpression__RightOperandAssignment_1_1 ) ) )
            // InternalXcore.g:14053:1: ( ( rule__XAdditiveExpression__RightOperandAssignment_1_1 ) )
            {
            // InternalXcore.g:14053:1: ( ( rule__XAdditiveExpression__RightOperandAssignment_1_1 ) )
            // InternalXcore.g:14054:1: ( rule__XAdditiveExpression__RightOperandAssignment_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAdditiveExpressionAccess().getRightOperandAssignment_1_1()); 
            }
            // InternalXcore.g:14055:1: ( rule__XAdditiveExpression__RightOperandAssignment_1_1 )
            // InternalXcore.g:14055:2: rule__XAdditiveExpression__RightOperandAssignment_1_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XAdditiveExpression__RightOperandAssignment_1_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAdditiveExpressionAccess().getRightOperandAssignment_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAdditiveExpression__Group_1__1__Impl"


    // $ANTLR start "rule__XAdditiveExpression__Group_1_0__0"
    // InternalXcore.g:14069:1: rule__XAdditiveExpression__Group_1_0__0 : rule__XAdditiveExpression__Group_1_0__0__Impl ;
    public final void rule__XAdditiveExpression__Group_1_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:14073:1: ( rule__XAdditiveExpression__Group_1_0__0__Impl )
            // InternalXcore.g:14074:2: rule__XAdditiveExpression__Group_1_0__0__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XAdditiveExpression__Group_1_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAdditiveExpression__Group_1_0__0"


    // $ANTLR start "rule__XAdditiveExpression__Group_1_0__0__Impl"
    // InternalXcore.g:14080:1: rule__XAdditiveExpression__Group_1_0__0__Impl : ( ( rule__XAdditiveExpression__Group_1_0_0__0 ) ) ;
    public final void rule__XAdditiveExpression__Group_1_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:14084:1: ( ( ( rule__XAdditiveExpression__Group_1_0_0__0 ) ) )
            // InternalXcore.g:14085:1: ( ( rule__XAdditiveExpression__Group_1_0_0__0 ) )
            {
            // InternalXcore.g:14085:1: ( ( rule__XAdditiveExpression__Group_1_0_0__0 ) )
            // InternalXcore.g:14086:1: ( rule__XAdditiveExpression__Group_1_0_0__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAdditiveExpressionAccess().getGroup_1_0_0()); 
            }
            // InternalXcore.g:14087:1: ( rule__XAdditiveExpression__Group_1_0_0__0 )
            // InternalXcore.g:14087:2: rule__XAdditiveExpression__Group_1_0_0__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XAdditiveExpression__Group_1_0_0__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAdditiveExpressionAccess().getGroup_1_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAdditiveExpression__Group_1_0__0__Impl"


    // $ANTLR start "rule__XAdditiveExpression__Group_1_0_0__0"
    // InternalXcore.g:14099:1: rule__XAdditiveExpression__Group_1_0_0__0 : rule__XAdditiveExpression__Group_1_0_0__0__Impl rule__XAdditiveExpression__Group_1_0_0__1 ;
    public final void rule__XAdditiveExpression__Group_1_0_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:14103:1: ( rule__XAdditiveExpression__Group_1_0_0__0__Impl rule__XAdditiveExpression__Group_1_0_0__1 )
            // InternalXcore.g:14104:2: rule__XAdditiveExpression__Group_1_0_0__0__Impl rule__XAdditiveExpression__Group_1_0_0__1
            {
            pushFollow(FollowSets000.FOLLOW_88);
            rule__XAdditiveExpression__Group_1_0_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XAdditiveExpression__Group_1_0_0__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAdditiveExpression__Group_1_0_0__0"


    // $ANTLR start "rule__XAdditiveExpression__Group_1_0_0__0__Impl"
    // InternalXcore.g:14111:1: rule__XAdditiveExpression__Group_1_0_0__0__Impl : ( () ) ;
    public final void rule__XAdditiveExpression__Group_1_0_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:14115:1: ( ( () ) )
            // InternalXcore.g:14116:1: ( () )
            {
            // InternalXcore.g:14116:1: ( () )
            // InternalXcore.g:14117:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); 
            }
            // InternalXcore.g:14118:1: ()
            // InternalXcore.g:14120:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAdditiveExpression__Group_1_0_0__0__Impl"


    // $ANTLR start "rule__XAdditiveExpression__Group_1_0_0__1"
    // InternalXcore.g:14130:1: rule__XAdditiveExpression__Group_1_0_0__1 : rule__XAdditiveExpression__Group_1_0_0__1__Impl ;
    public final void rule__XAdditiveExpression__Group_1_0_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:14134:1: ( rule__XAdditiveExpression__Group_1_0_0__1__Impl )
            // InternalXcore.g:14135:2: rule__XAdditiveExpression__Group_1_0_0__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XAdditiveExpression__Group_1_0_0__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAdditiveExpression__Group_1_0_0__1"


    // $ANTLR start "rule__XAdditiveExpression__Group_1_0_0__1__Impl"
    // InternalXcore.g:14141:1: rule__XAdditiveExpression__Group_1_0_0__1__Impl : ( ( rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 ) ) ;
    public final void rule__XAdditiveExpression__Group_1_0_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:14145:1: ( ( ( rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 ) ) )
            // InternalXcore.g:14146:1: ( ( rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 ) )
            {
            // InternalXcore.g:14146:1: ( ( rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 ) )
            // InternalXcore.g:14147:1: ( rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAdditiveExpressionAccess().getFeatureAssignment_1_0_0_1()); 
            }
            // InternalXcore.g:14148:1: ( rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 )
            // InternalXcore.g:14148:2: rule__XAdditiveExpression__FeatureAssignment_1_0_0_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XAdditiveExpression__FeatureAssignment_1_0_0_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAdditiveExpressionAccess().getFeatureAssignment_1_0_0_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAdditiveExpression__Group_1_0_0__1__Impl"


    // $ANTLR start "rule__XMultiplicativeExpression__Group__0"
    // InternalXcore.g:14162:1: rule__XMultiplicativeExpression__Group__0 : rule__XMultiplicativeExpression__Group__0__Impl rule__XMultiplicativeExpression__Group__1 ;
    public final void rule__XMultiplicativeExpression__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:14166:1: ( rule__XMultiplicativeExpression__Group__0__Impl rule__XMultiplicativeExpression__Group__1 )
            // InternalXcore.g:14167:2: rule__XMultiplicativeExpression__Group__0__Impl rule__XMultiplicativeExpression__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_90);
            rule__XMultiplicativeExpression__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XMultiplicativeExpression__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMultiplicativeExpression__Group__0"


    // $ANTLR start "rule__XMultiplicativeExpression__Group__0__Impl"
    // InternalXcore.g:14174:1: rule__XMultiplicativeExpression__Group__0__Impl : ( ruleXUnaryOperation ) ;
    public final void rule__XMultiplicativeExpression__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:14178:1: ( ( ruleXUnaryOperation ) )
            // InternalXcore.g:14179:1: ( ruleXUnaryOperation )
            {
            // InternalXcore.g:14179:1: ( ruleXUnaryOperation )
            // InternalXcore.g:14180:1: ruleXUnaryOperation
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMultiplicativeExpressionAccess().getXUnaryOperationParserRuleCall_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXUnaryOperation();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXMultiplicativeExpressionAccess().getXUnaryOperationParserRuleCall_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMultiplicativeExpression__Group__0__Impl"


    // $ANTLR start "rule__XMultiplicativeExpression__Group__1"
    // InternalXcore.g:14191:1: rule__XMultiplicativeExpression__Group__1 : rule__XMultiplicativeExpression__Group__1__Impl ;
    public final void rule__XMultiplicativeExpression__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:14195:1: ( rule__XMultiplicativeExpression__Group__1__Impl )
            // InternalXcore.g:14196:2: rule__XMultiplicativeExpression__Group__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XMultiplicativeExpression__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMultiplicativeExpression__Group__1"


    // $ANTLR start "rule__XMultiplicativeExpression__Group__1__Impl"
    // InternalXcore.g:14202:1: rule__XMultiplicativeExpression__Group__1__Impl : ( ( rule__XMultiplicativeExpression__Group_1__0 )* ) ;
    public final void rule__XMultiplicativeExpression__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:14206:1: ( ( ( rule__XMultiplicativeExpression__Group_1__0 )* ) )
            // InternalXcore.g:14207:1: ( ( rule__XMultiplicativeExpression__Group_1__0 )* )
            {
            // InternalXcore.g:14207:1: ( ( rule__XMultiplicativeExpression__Group_1__0 )* )
            // InternalXcore.g:14208:1: ( rule__XMultiplicativeExpression__Group_1__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMultiplicativeExpressionAccess().getGroup_1()); 
            }
            // InternalXcore.g:14209:1: ( rule__XMultiplicativeExpression__Group_1__0 )*
            loop127:
            do {
                int alt127=2;
                switch ( input.LA(1) ) {
                case 18:
                    {
                    int LA127_2 = input.LA(2);

                    if ( (synpred209_InternalXcore()) ) {
                        alt127=1;
                    }


                    }
                    break;
                case 74:
                    {
                    int LA127_3 = input.LA(2);

                    if ( (synpred209_InternalXcore()) ) {
                        alt127=1;
                    }


                    }
                    break;
                case 75:
                    {
                    int LA127_4 = input.LA(2);

                    if ( (synpred209_InternalXcore()) ) {
                        alt127=1;
                    }


                    }
                    break;
                case 76:
                    {
                    int LA127_5 = input.LA(2);

                    if ( (synpred209_InternalXcore()) ) {
                        alt127=1;
                    }


                    }
                    break;

                }

                switch (alt127) {
            	case 1 :
            	    // InternalXcore.g:14209:2: rule__XMultiplicativeExpression__Group_1__0
            	    {
            	    pushFollow(FollowSets000.FOLLOW_91);
            	    rule__XMultiplicativeExpression__Group_1__0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop127;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXMultiplicativeExpressionAccess().getGroup_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMultiplicativeExpression__Group__1__Impl"


    // $ANTLR start "rule__XMultiplicativeExpression__Group_1__0"
    // InternalXcore.g:14223:1: rule__XMultiplicativeExpression__Group_1__0 : rule__XMultiplicativeExpression__Group_1__0__Impl rule__XMultiplicativeExpression__Group_1__1 ;
    public final void rule__XMultiplicativeExpression__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:14227:1: ( rule__XMultiplicativeExpression__Group_1__0__Impl rule__XMultiplicativeExpression__Group_1__1 )
            // InternalXcore.g:14228:2: rule__XMultiplicativeExpression__Group_1__0__Impl rule__XMultiplicativeExpression__Group_1__1
            {
            pushFollow(FollowSets000.FOLLOW_72);
            rule__XMultiplicativeExpression__Group_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XMultiplicativeExpression__Group_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMultiplicativeExpression__Group_1__0"


    // $ANTLR start "rule__XMultiplicativeExpression__Group_1__0__Impl"
    // InternalXcore.g:14235:1: rule__XMultiplicativeExpression__Group_1__0__Impl : ( ( rule__XMultiplicativeExpression__Group_1_0__0 ) ) ;
    public final void rule__XMultiplicativeExpression__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:14239:1: ( ( ( rule__XMultiplicativeExpression__Group_1_0__0 ) ) )
            // InternalXcore.g:14240:1: ( ( rule__XMultiplicativeExpression__Group_1_0__0 ) )
            {
            // InternalXcore.g:14240:1: ( ( rule__XMultiplicativeExpression__Group_1_0__0 ) )
            // InternalXcore.g:14241:1: ( rule__XMultiplicativeExpression__Group_1_0__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMultiplicativeExpressionAccess().getGroup_1_0()); 
            }
            // InternalXcore.g:14242:1: ( rule__XMultiplicativeExpression__Group_1_0__0 )
            // InternalXcore.g:14242:2: rule__XMultiplicativeExpression__Group_1_0__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XMultiplicativeExpression__Group_1_0__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXMultiplicativeExpressionAccess().getGroup_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMultiplicativeExpression__Group_1__0__Impl"


    // $ANTLR start "rule__XMultiplicativeExpression__Group_1__1"
    // InternalXcore.g:14252:1: rule__XMultiplicativeExpression__Group_1__1 : rule__XMultiplicativeExpression__Group_1__1__Impl ;
    public final void rule__XMultiplicativeExpression__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:14256:1: ( rule__XMultiplicativeExpression__Group_1__1__Impl )
            // InternalXcore.g:14257:2: rule__XMultiplicativeExpression__Group_1__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XMultiplicativeExpression__Group_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMultiplicativeExpression__Group_1__1"


    // $ANTLR start "rule__XMultiplicativeExpression__Group_1__1__Impl"
    // InternalXcore.g:14263:1: rule__XMultiplicativeExpression__Group_1__1__Impl : ( ( rule__XMultiplicativeExpression__RightOperandAssignment_1_1 ) ) ;
    public final void rule__XMultiplicativeExpression__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:14267:1: ( ( ( rule__XMultiplicativeExpression__RightOperandAssignment_1_1 ) ) )
            // InternalXcore.g:14268:1: ( ( rule__XMultiplicativeExpression__RightOperandAssignment_1_1 ) )
            {
            // InternalXcore.g:14268:1: ( ( rule__XMultiplicativeExpression__RightOperandAssignment_1_1 ) )
            // InternalXcore.g:14269:1: ( rule__XMultiplicativeExpression__RightOperandAssignment_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMultiplicativeExpressionAccess().getRightOperandAssignment_1_1()); 
            }
            // InternalXcore.g:14270:1: ( rule__XMultiplicativeExpression__RightOperandAssignment_1_1 )
            // InternalXcore.g:14270:2: rule__XMultiplicativeExpression__RightOperandAssignment_1_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XMultiplicativeExpression__RightOperandAssignment_1_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXMultiplicativeExpressionAccess().getRightOperandAssignment_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMultiplicativeExpression__Group_1__1__Impl"


    // $ANTLR start "rule__XMultiplicativeExpression__Group_1_0__0"
    // InternalXcore.g:14284:1: rule__XMultiplicativeExpression__Group_1_0__0 : rule__XMultiplicativeExpression__Group_1_0__0__Impl ;
    public final void rule__XMultiplicativeExpression__Group_1_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:14288:1: ( rule__XMultiplicativeExpression__Group_1_0__0__Impl )
            // InternalXcore.g:14289:2: rule__XMultiplicativeExpression__Group_1_0__0__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XMultiplicativeExpression__Group_1_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMultiplicativeExpression__Group_1_0__0"


    // $ANTLR start "rule__XMultiplicativeExpression__Group_1_0__0__Impl"
    // InternalXcore.g:14295:1: rule__XMultiplicativeExpression__Group_1_0__0__Impl : ( ( rule__XMultiplicativeExpression__Group_1_0_0__0 ) ) ;
    public final void rule__XMultiplicativeExpression__Group_1_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:14299:1: ( ( ( rule__XMultiplicativeExpression__Group_1_0_0__0 ) ) )
            // InternalXcore.g:14300:1: ( ( rule__XMultiplicativeExpression__Group_1_0_0__0 ) )
            {
            // InternalXcore.g:14300:1: ( ( rule__XMultiplicativeExpression__Group_1_0_0__0 ) )
            // InternalXcore.g:14301:1: ( rule__XMultiplicativeExpression__Group_1_0_0__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMultiplicativeExpressionAccess().getGroup_1_0_0()); 
            }
            // InternalXcore.g:14302:1: ( rule__XMultiplicativeExpression__Group_1_0_0__0 )
            // InternalXcore.g:14302:2: rule__XMultiplicativeExpression__Group_1_0_0__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XMultiplicativeExpression__Group_1_0_0__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXMultiplicativeExpressionAccess().getGroup_1_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMultiplicativeExpression__Group_1_0__0__Impl"


    // $ANTLR start "rule__XMultiplicativeExpression__Group_1_0_0__0"
    // InternalXcore.g:14314:1: rule__XMultiplicativeExpression__Group_1_0_0__0 : rule__XMultiplicativeExpression__Group_1_0_0__0__Impl rule__XMultiplicativeExpression__Group_1_0_0__1 ;
    public final void rule__XMultiplicativeExpression__Group_1_0_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:14318:1: ( rule__XMultiplicativeExpression__Group_1_0_0__0__Impl rule__XMultiplicativeExpression__Group_1_0_0__1 )
            // InternalXcore.g:14319:2: rule__XMultiplicativeExpression__Group_1_0_0__0__Impl rule__XMultiplicativeExpression__Group_1_0_0__1
            {
            pushFollow(FollowSets000.FOLLOW_90);
            rule__XMultiplicativeExpression__Group_1_0_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XMultiplicativeExpression__Group_1_0_0__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMultiplicativeExpression__Group_1_0_0__0"


    // $ANTLR start "rule__XMultiplicativeExpression__Group_1_0_0__0__Impl"
    // InternalXcore.g:14326:1: rule__XMultiplicativeExpression__Group_1_0_0__0__Impl : ( () ) ;
    public final void rule__XMultiplicativeExpression__Group_1_0_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:14330:1: ( ( () ) )
            // InternalXcore.g:14331:1: ( () )
            {
            // InternalXcore.g:14331:1: ( () )
            // InternalXcore.g:14332:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); 
            }
            // InternalXcore.g:14333:1: ()
            // InternalXcore.g:14335:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMultiplicativeExpression__Group_1_0_0__0__Impl"


    // $ANTLR start "rule__XMultiplicativeExpression__Group_1_0_0__1"
    // InternalXcore.g:14345:1: rule__XMultiplicativeExpression__Group_1_0_0__1 : rule__XMultiplicativeExpression__Group_1_0_0__1__Impl ;
    public final void rule__XMultiplicativeExpression__Group_1_0_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:14349:1: ( rule__XMultiplicativeExpression__Group_1_0_0__1__Impl )
            // InternalXcore.g:14350:2: rule__XMultiplicativeExpression__Group_1_0_0__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XMultiplicativeExpression__Group_1_0_0__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMultiplicativeExpression__Group_1_0_0__1"


    // $ANTLR start "rule__XMultiplicativeExpression__Group_1_0_0__1__Impl"
    // InternalXcore.g:14356:1: rule__XMultiplicativeExpression__Group_1_0_0__1__Impl : ( ( rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 ) ) ;
    public final void rule__XMultiplicativeExpression__Group_1_0_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:14360:1: ( ( ( rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 ) ) )
            // InternalXcore.g:14361:1: ( ( rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 ) )
            {
            // InternalXcore.g:14361:1: ( ( rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 ) )
            // InternalXcore.g:14362:1: ( rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMultiplicativeExpressionAccess().getFeatureAssignment_1_0_0_1()); 
            }
            // InternalXcore.g:14363:1: ( rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 )
            // InternalXcore.g:14363:2: rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXMultiplicativeExpressionAccess().getFeatureAssignment_1_0_0_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMultiplicativeExpression__Group_1_0_0__1__Impl"


    // $ANTLR start "rule__XUnaryOperation__Group_0__0"
    // InternalXcore.g:14377:1: rule__XUnaryOperation__Group_0__0 : rule__XUnaryOperation__Group_0__0__Impl rule__XUnaryOperation__Group_0__1 ;
    public final void rule__XUnaryOperation__Group_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:14381:1: ( rule__XUnaryOperation__Group_0__0__Impl rule__XUnaryOperation__Group_0__1 )
            // InternalXcore.g:14382:2: rule__XUnaryOperation__Group_0__0__Impl rule__XUnaryOperation__Group_0__1
            {
            pushFollow(FollowSets000.FOLLOW_92);
            rule__XUnaryOperation__Group_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XUnaryOperation__Group_0__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XUnaryOperation__Group_0__0"


    // $ANTLR start "rule__XUnaryOperation__Group_0__0__Impl"
    // InternalXcore.g:14389:1: rule__XUnaryOperation__Group_0__0__Impl : ( () ) ;
    public final void rule__XUnaryOperation__Group_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:14393:1: ( ( () ) )
            // InternalXcore.g:14394:1: ( () )
            {
            // InternalXcore.g:14394:1: ( () )
            // InternalXcore.g:14395:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXUnaryOperationAccess().getXUnaryOperationAction_0_0()); 
            }
            // InternalXcore.g:14396:1: ()
            // InternalXcore.g:14398:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXUnaryOperationAccess().getXUnaryOperationAction_0_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XUnaryOperation__Group_0__0__Impl"


    // $ANTLR start "rule__XUnaryOperation__Group_0__1"
    // InternalXcore.g:14408:1: rule__XUnaryOperation__Group_0__1 : rule__XUnaryOperation__Group_0__1__Impl rule__XUnaryOperation__Group_0__2 ;
    public final void rule__XUnaryOperation__Group_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:14412:1: ( rule__XUnaryOperation__Group_0__1__Impl rule__XUnaryOperation__Group_0__2 )
            // InternalXcore.g:14413:2: rule__XUnaryOperation__Group_0__1__Impl rule__XUnaryOperation__Group_0__2
            {
            pushFollow(FollowSets000.FOLLOW_72);
            rule__XUnaryOperation__Group_0__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XUnaryOperation__Group_0__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XUnaryOperation__Group_0__1"


    // $ANTLR start "rule__XUnaryOperation__Group_0__1__Impl"
    // InternalXcore.g:14420:1: rule__XUnaryOperation__Group_0__1__Impl : ( ( rule__XUnaryOperation__FeatureAssignment_0_1 ) ) ;
    public final void rule__XUnaryOperation__Group_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:14424:1: ( ( ( rule__XUnaryOperation__FeatureAssignment_0_1 ) ) )
            // InternalXcore.g:14425:1: ( ( rule__XUnaryOperation__FeatureAssignment_0_1 ) )
            {
            // InternalXcore.g:14425:1: ( ( rule__XUnaryOperation__FeatureAssignment_0_1 ) )
            // InternalXcore.g:14426:1: ( rule__XUnaryOperation__FeatureAssignment_0_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXUnaryOperationAccess().getFeatureAssignment_0_1()); 
            }
            // InternalXcore.g:14427:1: ( rule__XUnaryOperation__FeatureAssignment_0_1 )
            // InternalXcore.g:14427:2: rule__XUnaryOperation__FeatureAssignment_0_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XUnaryOperation__FeatureAssignment_0_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXUnaryOperationAccess().getFeatureAssignment_0_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XUnaryOperation__Group_0__1__Impl"


    // $ANTLR start "rule__XUnaryOperation__Group_0__2"
    // InternalXcore.g:14437:1: rule__XUnaryOperation__Group_0__2 : rule__XUnaryOperation__Group_0__2__Impl ;
    public final void rule__XUnaryOperation__Group_0__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:14441:1: ( rule__XUnaryOperation__Group_0__2__Impl )
            // InternalXcore.g:14442:2: rule__XUnaryOperation__Group_0__2__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XUnaryOperation__Group_0__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XUnaryOperation__Group_0__2"


    // $ANTLR start "rule__XUnaryOperation__Group_0__2__Impl"
    // InternalXcore.g:14448:1: rule__XUnaryOperation__Group_0__2__Impl : ( ( rule__XUnaryOperation__OperandAssignment_0_2 ) ) ;
    public final void rule__XUnaryOperation__Group_0__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:14452:1: ( ( ( rule__XUnaryOperation__OperandAssignment_0_2 ) ) )
            // InternalXcore.g:14453:1: ( ( rule__XUnaryOperation__OperandAssignment_0_2 ) )
            {
            // InternalXcore.g:14453:1: ( ( rule__XUnaryOperation__OperandAssignment_0_2 ) )
            // InternalXcore.g:14454:1: ( rule__XUnaryOperation__OperandAssignment_0_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXUnaryOperationAccess().getOperandAssignment_0_2()); 
            }
            // InternalXcore.g:14455:1: ( rule__XUnaryOperation__OperandAssignment_0_2 )
            // InternalXcore.g:14455:2: rule__XUnaryOperation__OperandAssignment_0_2
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XUnaryOperation__OperandAssignment_0_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXUnaryOperationAccess().getOperandAssignment_0_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XUnaryOperation__Group_0__2__Impl"


    // $ANTLR start "rule__XCastedExpression__Group__0"
    // InternalXcore.g:14471:1: rule__XCastedExpression__Group__0 : rule__XCastedExpression__Group__0__Impl rule__XCastedExpression__Group__1 ;
    public final void rule__XCastedExpression__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:14475:1: ( rule__XCastedExpression__Group__0__Impl rule__XCastedExpression__Group__1 )
            // InternalXcore.g:14476:2: rule__XCastedExpression__Group__0__Impl rule__XCastedExpression__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_18);
            rule__XCastedExpression__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XCastedExpression__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XCastedExpression__Group__0"


    // $ANTLR start "rule__XCastedExpression__Group__0__Impl"
    // InternalXcore.g:14483:1: rule__XCastedExpression__Group__0__Impl : ( ruleXPostfixOperation ) ;
    public final void rule__XCastedExpression__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:14487:1: ( ( ruleXPostfixOperation ) )
            // InternalXcore.g:14488:1: ( ruleXPostfixOperation )
            {
            // InternalXcore.g:14488:1: ( ruleXPostfixOperation )
            // InternalXcore.g:14489:1: ruleXPostfixOperation
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXCastedExpressionAccess().getXPostfixOperationParserRuleCall_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXPostfixOperation();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXCastedExpressionAccess().getXPostfixOperationParserRuleCall_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XCastedExpression__Group__0__Impl"


    // $ANTLR start "rule__XCastedExpression__Group__1"
    // InternalXcore.g:14500:1: rule__XCastedExpression__Group__1 : rule__XCastedExpression__Group__1__Impl ;
    public final void rule__XCastedExpression__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:14504:1: ( rule__XCastedExpression__Group__1__Impl )
            // InternalXcore.g:14505:2: rule__XCastedExpression__Group__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XCastedExpression__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XCastedExpression__Group__1"


    // $ANTLR start "rule__XCastedExpression__Group__1__Impl"
    // InternalXcore.g:14511:1: rule__XCastedExpression__Group__1__Impl : ( ( rule__XCastedExpression__Group_1__0 )* ) ;
    public final void rule__XCastedExpression__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:14515:1: ( ( ( rule__XCastedExpression__Group_1__0 )* ) )
            // InternalXcore.g:14516:1: ( ( rule__XCastedExpression__Group_1__0 )* )
            {
            // InternalXcore.g:14516:1: ( ( rule__XCastedExpression__Group_1__0 )* )
            // InternalXcore.g:14517:1: ( rule__XCastedExpression__Group_1__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXCastedExpressionAccess().getGroup_1()); 
            }
            // InternalXcore.g:14518:1: ( rule__XCastedExpression__Group_1__0 )*
            loop128:
            do {
                int alt128=2;
                int LA128_0 = input.LA(1);

                if ( (LA128_0==26) ) {
                    int LA128_2 = input.LA(2);

                    if ( (synpred210_InternalXcore()) ) {
                        alt128=1;
                    }


                }


                switch (alt128) {
            	case 1 :
            	    // InternalXcore.g:14518:2: rule__XCastedExpression__Group_1__0
            	    {
            	    pushFollow(FollowSets000.FOLLOW_93);
            	    rule__XCastedExpression__Group_1__0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop128;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXCastedExpressionAccess().getGroup_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XCastedExpression__Group__1__Impl"


    // $ANTLR start "rule__XCastedExpression__Group_1__0"
    // InternalXcore.g:14532:1: rule__XCastedExpression__Group_1__0 : rule__XCastedExpression__Group_1__0__Impl rule__XCastedExpression__Group_1__1 ;
    public final void rule__XCastedExpression__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:14536:1: ( rule__XCastedExpression__Group_1__0__Impl rule__XCastedExpression__Group_1__1 )
            // InternalXcore.g:14537:2: rule__XCastedExpression__Group_1__0__Impl rule__XCastedExpression__Group_1__1
            {
            pushFollow(FollowSets000.FOLLOW_22);
            rule__XCastedExpression__Group_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XCastedExpression__Group_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XCastedExpression__Group_1__0"


    // $ANTLR start "rule__XCastedExpression__Group_1__0__Impl"
    // InternalXcore.g:14544:1: rule__XCastedExpression__Group_1__0__Impl : ( ( rule__XCastedExpression__Group_1_0__0 ) ) ;
    public final void rule__XCastedExpression__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:14548:1: ( ( ( rule__XCastedExpression__Group_1_0__0 ) ) )
            // InternalXcore.g:14549:1: ( ( rule__XCastedExpression__Group_1_0__0 ) )
            {
            // InternalXcore.g:14549:1: ( ( rule__XCastedExpression__Group_1_0__0 ) )
            // InternalXcore.g:14550:1: ( rule__XCastedExpression__Group_1_0__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXCastedExpressionAccess().getGroup_1_0()); 
            }
            // InternalXcore.g:14551:1: ( rule__XCastedExpression__Group_1_0__0 )
            // InternalXcore.g:14551:2: rule__XCastedExpression__Group_1_0__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XCastedExpression__Group_1_0__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXCastedExpressionAccess().getGroup_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XCastedExpression__Group_1__0__Impl"


    // $ANTLR start "rule__XCastedExpression__Group_1__1"
    // InternalXcore.g:14561:1: rule__XCastedExpression__Group_1__1 : rule__XCastedExpression__Group_1__1__Impl ;
    public final void rule__XCastedExpression__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:14565:1: ( rule__XCastedExpression__Group_1__1__Impl )
            // InternalXcore.g:14566:2: rule__XCastedExpression__Group_1__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XCastedExpression__Group_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XCastedExpression__Group_1__1"


    // $ANTLR start "rule__XCastedExpression__Group_1__1__Impl"
    // InternalXcore.g:14572:1: rule__XCastedExpression__Group_1__1__Impl : ( ( rule__XCastedExpression__TypeAssignment_1_1 ) ) ;
    public final void rule__XCastedExpression__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:14576:1: ( ( ( rule__XCastedExpression__TypeAssignment_1_1 ) ) )
            // InternalXcore.g:14577:1: ( ( rule__XCastedExpression__TypeAssignment_1_1 ) )
            {
            // InternalXcore.g:14577:1: ( ( rule__XCastedExpression__TypeAssignment_1_1 ) )
            // InternalXcore.g:14578:1: ( rule__XCastedExpression__TypeAssignment_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXCastedExpressionAccess().getTypeAssignment_1_1()); 
            }
            // InternalXcore.g:14579:1: ( rule__XCastedExpression__TypeAssignment_1_1 )
            // InternalXcore.g:14579:2: rule__XCastedExpression__TypeAssignment_1_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XCastedExpression__TypeAssignment_1_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXCastedExpressionAccess().getTypeAssignment_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XCastedExpression__Group_1__1__Impl"


    // $ANTLR start "rule__XCastedExpression__Group_1_0__0"
    // InternalXcore.g:14593:1: rule__XCastedExpression__Group_1_0__0 : rule__XCastedExpression__Group_1_0__0__Impl ;
    public final void rule__XCastedExpression__Group_1_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:14597:1: ( rule__XCastedExpression__Group_1_0__0__Impl )
            // InternalXcore.g:14598:2: rule__XCastedExpression__Group_1_0__0__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XCastedExpression__Group_1_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XCastedExpression__Group_1_0__0"


    // $ANTLR start "rule__XCastedExpression__Group_1_0__0__Impl"
    // InternalXcore.g:14604:1: rule__XCastedExpression__Group_1_0__0__Impl : ( ( rule__XCastedExpression__Group_1_0_0__0 ) ) ;
    public final void rule__XCastedExpression__Group_1_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:14608:1: ( ( ( rule__XCastedExpression__Group_1_0_0__0 ) ) )
            // InternalXcore.g:14609:1: ( ( rule__XCastedExpression__Group_1_0_0__0 ) )
            {
            // InternalXcore.g:14609:1: ( ( rule__XCastedExpression__Group_1_0_0__0 ) )
            // InternalXcore.g:14610:1: ( rule__XCastedExpression__Group_1_0_0__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXCastedExpressionAccess().getGroup_1_0_0()); 
            }
            // InternalXcore.g:14611:1: ( rule__XCastedExpression__Group_1_0_0__0 )
            // InternalXcore.g:14611:2: rule__XCastedExpression__Group_1_0_0__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XCastedExpression__Group_1_0_0__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXCastedExpressionAccess().getGroup_1_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XCastedExpression__Group_1_0__0__Impl"


    // $ANTLR start "rule__XCastedExpression__Group_1_0_0__0"
    // InternalXcore.g:14623:1: rule__XCastedExpression__Group_1_0_0__0 : rule__XCastedExpression__Group_1_0_0__0__Impl rule__XCastedExpression__Group_1_0_0__1 ;
    public final void rule__XCastedExpression__Group_1_0_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:14627:1: ( rule__XCastedExpression__Group_1_0_0__0__Impl rule__XCastedExpression__Group_1_0_0__1 )
            // InternalXcore.g:14628:2: rule__XCastedExpression__Group_1_0_0__0__Impl rule__XCastedExpression__Group_1_0_0__1
            {
            pushFollow(FollowSets000.FOLLOW_18);
            rule__XCastedExpression__Group_1_0_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XCastedExpression__Group_1_0_0__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XCastedExpression__Group_1_0_0__0"


    // $ANTLR start "rule__XCastedExpression__Group_1_0_0__0__Impl"
    // InternalXcore.g:14635:1: rule__XCastedExpression__Group_1_0_0__0__Impl : ( () ) ;
    public final void rule__XCastedExpression__Group_1_0_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:14639:1: ( ( () ) )
            // InternalXcore.g:14640:1: ( () )
            {
            // InternalXcore.g:14640:1: ( () )
            // InternalXcore.g:14641:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0()); 
            }
            // InternalXcore.g:14642:1: ()
            // InternalXcore.g:14644:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XCastedExpression__Group_1_0_0__0__Impl"


    // $ANTLR start "rule__XCastedExpression__Group_1_0_0__1"
    // InternalXcore.g:14654:1: rule__XCastedExpression__Group_1_0_0__1 : rule__XCastedExpression__Group_1_0_0__1__Impl ;
    public final void rule__XCastedExpression__Group_1_0_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:14658:1: ( rule__XCastedExpression__Group_1_0_0__1__Impl )
            // InternalXcore.g:14659:2: rule__XCastedExpression__Group_1_0_0__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XCastedExpression__Group_1_0_0__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XCastedExpression__Group_1_0_0__1"


    // $ANTLR start "rule__XCastedExpression__Group_1_0_0__1__Impl"
    // InternalXcore.g:14665:1: rule__XCastedExpression__Group_1_0_0__1__Impl : ( 'as' ) ;
    public final void rule__XCastedExpression__Group_1_0_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:14669:1: ( ( 'as' ) )
            // InternalXcore.g:14670:1: ( 'as' )
            {
            // InternalXcore.g:14670:1: ( 'as' )
            // InternalXcore.g:14671:1: 'as'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXCastedExpressionAccess().getAsKeyword_1_0_0_1()); 
            }
            match(input,26,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXCastedExpressionAccess().getAsKeyword_1_0_0_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XCastedExpression__Group_1_0_0__1__Impl"


    // $ANTLR start "rule__XPostfixOperation__Group__0"
    // InternalXcore.g:14688:1: rule__XPostfixOperation__Group__0 : rule__XPostfixOperation__Group__0__Impl rule__XPostfixOperation__Group__1 ;
    public final void rule__XPostfixOperation__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:14692:1: ( rule__XPostfixOperation__Group__0__Impl rule__XPostfixOperation__Group__1 )
            // InternalXcore.g:14693:2: rule__XPostfixOperation__Group__0__Impl rule__XPostfixOperation__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_94);
            rule__XPostfixOperation__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XPostfixOperation__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XPostfixOperation__Group__0"


    // $ANTLR start "rule__XPostfixOperation__Group__0__Impl"
    // InternalXcore.g:14700:1: rule__XPostfixOperation__Group__0__Impl : ( ruleXMemberFeatureCall ) ;
    public final void rule__XPostfixOperation__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:14704:1: ( ( ruleXMemberFeatureCall ) )
            // InternalXcore.g:14705:1: ( ruleXMemberFeatureCall )
            {
            // InternalXcore.g:14705:1: ( ruleXMemberFeatureCall )
            // InternalXcore.g:14706:1: ruleXMemberFeatureCall
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXPostfixOperationAccess().getXMemberFeatureCallParserRuleCall_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXMemberFeatureCall();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXPostfixOperationAccess().getXMemberFeatureCallParserRuleCall_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XPostfixOperation__Group__0__Impl"


    // $ANTLR start "rule__XPostfixOperation__Group__1"
    // InternalXcore.g:14717:1: rule__XPostfixOperation__Group__1 : rule__XPostfixOperation__Group__1__Impl ;
    public final void rule__XPostfixOperation__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:14721:1: ( rule__XPostfixOperation__Group__1__Impl )
            // InternalXcore.g:14722:2: rule__XPostfixOperation__Group__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XPostfixOperation__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XPostfixOperation__Group__1"


    // $ANTLR start "rule__XPostfixOperation__Group__1__Impl"
    // InternalXcore.g:14728:1: rule__XPostfixOperation__Group__1__Impl : ( ( rule__XPostfixOperation__Group_1__0 )? ) ;
    public final void rule__XPostfixOperation__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:14732:1: ( ( ( rule__XPostfixOperation__Group_1__0 )? ) )
            // InternalXcore.g:14733:1: ( ( rule__XPostfixOperation__Group_1__0 )? )
            {
            // InternalXcore.g:14733:1: ( ( rule__XPostfixOperation__Group_1__0 )? )
            // InternalXcore.g:14734:1: ( rule__XPostfixOperation__Group_1__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXPostfixOperationAccess().getGroup_1()); 
            }
            // InternalXcore.g:14735:1: ( rule__XPostfixOperation__Group_1__0 )?
            int alt129=2;
            int LA129_0 = input.LA(1);

            if ( (LA129_0==78) ) {
                int LA129_1 = input.LA(2);

                if ( (synpred211_InternalXcore()) ) {
                    alt129=1;
                }
            }
            else if ( (LA129_0==79) ) {
                int LA129_2 = input.LA(2);

                if ( (synpred211_InternalXcore()) ) {
                    alt129=1;
                }
            }
            switch (alt129) {
                case 1 :
                    // InternalXcore.g:14735:2: rule__XPostfixOperation__Group_1__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XPostfixOperation__Group_1__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXPostfixOperationAccess().getGroup_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XPostfixOperation__Group__1__Impl"


    // $ANTLR start "rule__XPostfixOperation__Group_1__0"
    // InternalXcore.g:14749:1: rule__XPostfixOperation__Group_1__0 : rule__XPostfixOperation__Group_1__0__Impl ;
    public final void rule__XPostfixOperation__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:14753:1: ( rule__XPostfixOperation__Group_1__0__Impl )
            // InternalXcore.g:14754:2: rule__XPostfixOperation__Group_1__0__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XPostfixOperation__Group_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XPostfixOperation__Group_1__0"


    // $ANTLR start "rule__XPostfixOperation__Group_1__0__Impl"
    // InternalXcore.g:14760:1: rule__XPostfixOperation__Group_1__0__Impl : ( ( rule__XPostfixOperation__Group_1_0__0 ) ) ;
    public final void rule__XPostfixOperation__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:14764:1: ( ( ( rule__XPostfixOperation__Group_1_0__0 ) ) )
            // InternalXcore.g:14765:1: ( ( rule__XPostfixOperation__Group_1_0__0 ) )
            {
            // InternalXcore.g:14765:1: ( ( rule__XPostfixOperation__Group_1_0__0 ) )
            // InternalXcore.g:14766:1: ( rule__XPostfixOperation__Group_1_0__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXPostfixOperationAccess().getGroup_1_0()); 
            }
            // InternalXcore.g:14767:1: ( rule__XPostfixOperation__Group_1_0__0 )
            // InternalXcore.g:14767:2: rule__XPostfixOperation__Group_1_0__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XPostfixOperation__Group_1_0__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXPostfixOperationAccess().getGroup_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XPostfixOperation__Group_1__0__Impl"


    // $ANTLR start "rule__XPostfixOperation__Group_1_0__0"
    // InternalXcore.g:14779:1: rule__XPostfixOperation__Group_1_0__0 : rule__XPostfixOperation__Group_1_0__0__Impl rule__XPostfixOperation__Group_1_0__1 ;
    public final void rule__XPostfixOperation__Group_1_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:14783:1: ( rule__XPostfixOperation__Group_1_0__0__Impl rule__XPostfixOperation__Group_1_0__1 )
            // InternalXcore.g:14784:2: rule__XPostfixOperation__Group_1_0__0__Impl rule__XPostfixOperation__Group_1_0__1
            {
            pushFollow(FollowSets000.FOLLOW_94);
            rule__XPostfixOperation__Group_1_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XPostfixOperation__Group_1_0__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XPostfixOperation__Group_1_0__0"


    // $ANTLR start "rule__XPostfixOperation__Group_1_0__0__Impl"
    // InternalXcore.g:14791:1: rule__XPostfixOperation__Group_1_0__0__Impl : ( () ) ;
    public final void rule__XPostfixOperation__Group_1_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:14795:1: ( ( () ) )
            // InternalXcore.g:14796:1: ( () )
            {
            // InternalXcore.g:14796:1: ( () )
            // InternalXcore.g:14797:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXPostfixOperationAccess().getXPostfixOperationOperandAction_1_0_0()); 
            }
            // InternalXcore.g:14798:1: ()
            // InternalXcore.g:14800:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXPostfixOperationAccess().getXPostfixOperationOperandAction_1_0_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XPostfixOperation__Group_1_0__0__Impl"


    // $ANTLR start "rule__XPostfixOperation__Group_1_0__1"
    // InternalXcore.g:14810:1: rule__XPostfixOperation__Group_1_0__1 : rule__XPostfixOperation__Group_1_0__1__Impl ;
    public final void rule__XPostfixOperation__Group_1_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:14814:1: ( rule__XPostfixOperation__Group_1_0__1__Impl )
            // InternalXcore.g:14815:2: rule__XPostfixOperation__Group_1_0__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XPostfixOperation__Group_1_0__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XPostfixOperation__Group_1_0__1"


    // $ANTLR start "rule__XPostfixOperation__Group_1_0__1__Impl"
    // InternalXcore.g:14821:1: rule__XPostfixOperation__Group_1_0__1__Impl : ( ( rule__XPostfixOperation__FeatureAssignment_1_0_1 ) ) ;
    public final void rule__XPostfixOperation__Group_1_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:14825:1: ( ( ( rule__XPostfixOperation__FeatureAssignment_1_0_1 ) ) )
            // InternalXcore.g:14826:1: ( ( rule__XPostfixOperation__FeatureAssignment_1_0_1 ) )
            {
            // InternalXcore.g:14826:1: ( ( rule__XPostfixOperation__FeatureAssignment_1_0_1 ) )
            // InternalXcore.g:14827:1: ( rule__XPostfixOperation__FeatureAssignment_1_0_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXPostfixOperationAccess().getFeatureAssignment_1_0_1()); 
            }
            // InternalXcore.g:14828:1: ( rule__XPostfixOperation__FeatureAssignment_1_0_1 )
            // InternalXcore.g:14828:2: rule__XPostfixOperation__FeatureAssignment_1_0_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XPostfixOperation__FeatureAssignment_1_0_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXPostfixOperationAccess().getFeatureAssignment_1_0_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XPostfixOperation__Group_1_0__1__Impl"


    // $ANTLR start "rule__XMemberFeatureCall__Group__0"
    // InternalXcore.g:14842:1: rule__XMemberFeatureCall__Group__0 : rule__XMemberFeatureCall__Group__0__Impl rule__XMemberFeatureCall__Group__1 ;
    public final void rule__XMemberFeatureCall__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:14846:1: ( rule__XMemberFeatureCall__Group__0__Impl rule__XMemberFeatureCall__Group__1 )
            // InternalXcore.g:14847:2: rule__XMemberFeatureCall__Group__0__Impl rule__XMemberFeatureCall__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_95);
            rule__XMemberFeatureCall__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XMemberFeatureCall__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMemberFeatureCall__Group__0"


    // $ANTLR start "rule__XMemberFeatureCall__Group__0__Impl"
    // InternalXcore.g:14854:1: rule__XMemberFeatureCall__Group__0__Impl : ( ruleXPrimaryExpression ) ;
    public final void rule__XMemberFeatureCall__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:14858:1: ( ( ruleXPrimaryExpression ) )
            // InternalXcore.g:14859:1: ( ruleXPrimaryExpression )
            {
            // InternalXcore.g:14859:1: ( ruleXPrimaryExpression )
            // InternalXcore.g:14860:1: ruleXPrimaryExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberFeatureCallAccess().getXPrimaryExpressionParserRuleCall_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXPrimaryExpression();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXMemberFeatureCallAccess().getXPrimaryExpressionParserRuleCall_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMemberFeatureCall__Group__0__Impl"


    // $ANTLR start "rule__XMemberFeatureCall__Group__1"
    // InternalXcore.g:14871:1: rule__XMemberFeatureCall__Group__1 : rule__XMemberFeatureCall__Group__1__Impl ;
    public final void rule__XMemberFeatureCall__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:14875:1: ( rule__XMemberFeatureCall__Group__1__Impl )
            // InternalXcore.g:14876:2: rule__XMemberFeatureCall__Group__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XMemberFeatureCall__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMemberFeatureCall__Group__1"


    // $ANTLR start "rule__XMemberFeatureCall__Group__1__Impl"
    // InternalXcore.g:14882:1: rule__XMemberFeatureCall__Group__1__Impl : ( ( rule__XMemberFeatureCall__Alternatives_1 )* ) ;
    public final void rule__XMemberFeatureCall__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:14886:1: ( ( ( rule__XMemberFeatureCall__Alternatives_1 )* ) )
            // InternalXcore.g:14887:1: ( ( rule__XMemberFeatureCall__Alternatives_1 )* )
            {
            // InternalXcore.g:14887:1: ( ( rule__XMemberFeatureCall__Alternatives_1 )* )
            // InternalXcore.g:14888:1: ( rule__XMemberFeatureCall__Alternatives_1 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberFeatureCallAccess().getAlternatives_1()); 
            }
            // InternalXcore.g:14889:1: ( rule__XMemberFeatureCall__Alternatives_1 )*
            loop130:
            do {
                int alt130=2;
                switch ( input.LA(1) ) {
                case 80:
                    {
                    int LA130_2 = input.LA(2);

                    if ( (synpred212_InternalXcore()) ) {
                        alt130=1;
                    }


                    }
                    break;
                case 115:
                    {
                    int LA130_3 = input.LA(2);

                    if ( (synpred212_InternalXcore()) ) {
                        alt130=1;
                    }


                    }
                    break;
                case 116:
                    {
                    int LA130_4 = input.LA(2);

                    if ( (synpred212_InternalXcore()) ) {
                        alt130=1;
                    }


                    }
                    break;

                }

                switch (alt130) {
            	case 1 :
            	    // InternalXcore.g:14889:2: rule__XMemberFeatureCall__Alternatives_1
            	    {
            	    pushFollow(FollowSets000.FOLLOW_96);
            	    rule__XMemberFeatureCall__Alternatives_1();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop130;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXMemberFeatureCallAccess().getAlternatives_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMemberFeatureCall__Group__1__Impl"


    // $ANTLR start "rule__XMemberFeatureCall__Group_1_0__0"
    // InternalXcore.g:14903:1: rule__XMemberFeatureCall__Group_1_0__0 : rule__XMemberFeatureCall__Group_1_0__0__Impl rule__XMemberFeatureCall__Group_1_0__1 ;
    public final void rule__XMemberFeatureCall__Group_1_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:14907:1: ( rule__XMemberFeatureCall__Group_1_0__0__Impl rule__XMemberFeatureCall__Group_1_0__1 )
            // InternalXcore.g:14908:2: rule__XMemberFeatureCall__Group_1_0__0__Impl rule__XMemberFeatureCall__Group_1_0__1
            {
            pushFollow(FollowSets000.FOLLOW_72);
            rule__XMemberFeatureCall__Group_1_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XMemberFeatureCall__Group_1_0__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMemberFeatureCall__Group_1_0__0"


    // $ANTLR start "rule__XMemberFeatureCall__Group_1_0__0__Impl"
    // InternalXcore.g:14915:1: rule__XMemberFeatureCall__Group_1_0__0__Impl : ( ( rule__XMemberFeatureCall__Group_1_0_0__0 ) ) ;
    public final void rule__XMemberFeatureCall__Group_1_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:14919:1: ( ( ( rule__XMemberFeatureCall__Group_1_0_0__0 ) ) )
            // InternalXcore.g:14920:1: ( ( rule__XMemberFeatureCall__Group_1_0_0__0 ) )
            {
            // InternalXcore.g:14920:1: ( ( rule__XMemberFeatureCall__Group_1_0_0__0 ) )
            // InternalXcore.g:14921:1: ( rule__XMemberFeatureCall__Group_1_0_0__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_0_0()); 
            }
            // InternalXcore.g:14922:1: ( rule__XMemberFeatureCall__Group_1_0_0__0 )
            // InternalXcore.g:14922:2: rule__XMemberFeatureCall__Group_1_0_0__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XMemberFeatureCall__Group_1_0_0__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMemberFeatureCall__Group_1_0__0__Impl"


    // $ANTLR start "rule__XMemberFeatureCall__Group_1_0__1"
    // InternalXcore.g:14932:1: rule__XMemberFeatureCall__Group_1_0__1 : rule__XMemberFeatureCall__Group_1_0__1__Impl ;
    public final void rule__XMemberFeatureCall__Group_1_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:14936:1: ( rule__XMemberFeatureCall__Group_1_0__1__Impl )
            // InternalXcore.g:14937:2: rule__XMemberFeatureCall__Group_1_0__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XMemberFeatureCall__Group_1_0__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMemberFeatureCall__Group_1_0__1"


    // $ANTLR start "rule__XMemberFeatureCall__Group_1_0__1__Impl"
    // InternalXcore.g:14943:1: rule__XMemberFeatureCall__Group_1_0__1__Impl : ( ( rule__XMemberFeatureCall__ValueAssignment_1_0_1 ) ) ;
    public final void rule__XMemberFeatureCall__Group_1_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:14947:1: ( ( ( rule__XMemberFeatureCall__ValueAssignment_1_0_1 ) ) )
            // InternalXcore.g:14948:1: ( ( rule__XMemberFeatureCall__ValueAssignment_1_0_1 ) )
            {
            // InternalXcore.g:14948:1: ( ( rule__XMemberFeatureCall__ValueAssignment_1_0_1 ) )
            // InternalXcore.g:14949:1: ( rule__XMemberFeatureCall__ValueAssignment_1_0_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberFeatureCallAccess().getValueAssignment_1_0_1()); 
            }
            // InternalXcore.g:14950:1: ( rule__XMemberFeatureCall__ValueAssignment_1_0_1 )
            // InternalXcore.g:14950:2: rule__XMemberFeatureCall__ValueAssignment_1_0_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XMemberFeatureCall__ValueAssignment_1_0_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXMemberFeatureCallAccess().getValueAssignment_1_0_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMemberFeatureCall__Group_1_0__1__Impl"


    // $ANTLR start "rule__XMemberFeatureCall__Group_1_0_0__0"
    // InternalXcore.g:14964:1: rule__XMemberFeatureCall__Group_1_0_0__0 : rule__XMemberFeatureCall__Group_1_0_0__0__Impl ;
    public final void rule__XMemberFeatureCall__Group_1_0_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:14968:1: ( rule__XMemberFeatureCall__Group_1_0_0__0__Impl )
            // InternalXcore.g:14969:2: rule__XMemberFeatureCall__Group_1_0_0__0__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XMemberFeatureCall__Group_1_0_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMemberFeatureCall__Group_1_0_0__0"


    // $ANTLR start "rule__XMemberFeatureCall__Group_1_0_0__0__Impl"
    // InternalXcore.g:14975:1: rule__XMemberFeatureCall__Group_1_0_0__0__Impl : ( ( rule__XMemberFeatureCall__Group_1_0_0_0__0 ) ) ;
    public final void rule__XMemberFeatureCall__Group_1_0_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:14979:1: ( ( ( rule__XMemberFeatureCall__Group_1_0_0_0__0 ) ) )
            // InternalXcore.g:14980:1: ( ( rule__XMemberFeatureCall__Group_1_0_0_0__0 ) )
            {
            // InternalXcore.g:14980:1: ( ( rule__XMemberFeatureCall__Group_1_0_0_0__0 ) )
            // InternalXcore.g:14981:1: ( rule__XMemberFeatureCall__Group_1_0_0_0__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_0_0_0()); 
            }
            // InternalXcore.g:14982:1: ( rule__XMemberFeatureCall__Group_1_0_0_0__0 )
            // InternalXcore.g:14982:2: rule__XMemberFeatureCall__Group_1_0_0_0__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XMemberFeatureCall__Group_1_0_0_0__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_0_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMemberFeatureCall__Group_1_0_0__0__Impl"


    // $ANTLR start "rule__XMemberFeatureCall__Group_1_0_0_0__0"
    // InternalXcore.g:14994:1: rule__XMemberFeatureCall__Group_1_0_0_0__0 : rule__XMemberFeatureCall__Group_1_0_0_0__0__Impl rule__XMemberFeatureCall__Group_1_0_0_0__1 ;
    public final void rule__XMemberFeatureCall__Group_1_0_0_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:14998:1: ( rule__XMemberFeatureCall__Group_1_0_0_0__0__Impl rule__XMemberFeatureCall__Group_1_0_0_0__1 )
            // InternalXcore.g:14999:2: rule__XMemberFeatureCall__Group_1_0_0_0__0__Impl rule__XMemberFeatureCall__Group_1_0_0_0__1
            {
            pushFollow(FollowSets000.FOLLOW_97);
            rule__XMemberFeatureCall__Group_1_0_0_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XMemberFeatureCall__Group_1_0_0_0__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMemberFeatureCall__Group_1_0_0_0__0"


    // $ANTLR start "rule__XMemberFeatureCall__Group_1_0_0_0__0__Impl"
    // InternalXcore.g:15006:1: rule__XMemberFeatureCall__Group_1_0_0_0__0__Impl : ( () ) ;
    public final void rule__XMemberFeatureCall__Group_1_0_0_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:15010:1: ( ( () ) )
            // InternalXcore.g:15011:1: ( () )
            {
            // InternalXcore.g:15011:1: ( () )
            // InternalXcore.g:15012:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0()); 
            }
            // InternalXcore.g:15013:1: ()
            // InternalXcore.g:15015:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMemberFeatureCall__Group_1_0_0_0__0__Impl"


    // $ANTLR start "rule__XMemberFeatureCall__Group_1_0_0_0__1"
    // InternalXcore.g:15025:1: rule__XMemberFeatureCall__Group_1_0_0_0__1 : rule__XMemberFeatureCall__Group_1_0_0_0__1__Impl rule__XMemberFeatureCall__Group_1_0_0_0__2 ;
    public final void rule__XMemberFeatureCall__Group_1_0_0_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:15029:1: ( rule__XMemberFeatureCall__Group_1_0_0_0__1__Impl rule__XMemberFeatureCall__Group_1_0_0_0__2 )
            // InternalXcore.g:15030:2: rule__XMemberFeatureCall__Group_1_0_0_0__1__Impl rule__XMemberFeatureCall__Group_1_0_0_0__2
            {
            pushFollow(FollowSets000.FOLLOW_71);
            rule__XMemberFeatureCall__Group_1_0_0_0__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XMemberFeatureCall__Group_1_0_0_0__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMemberFeatureCall__Group_1_0_0_0__1"


    // $ANTLR start "rule__XMemberFeatureCall__Group_1_0_0_0__1__Impl"
    // InternalXcore.g:15037:1: rule__XMemberFeatureCall__Group_1_0_0_0__1__Impl : ( ( rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 ) ) ;
    public final void rule__XMemberFeatureCall__Group_1_0_0_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:15041:1: ( ( ( rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 ) ) )
            // InternalXcore.g:15042:1: ( ( rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 ) )
            {
            // InternalXcore.g:15042:1: ( ( rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 ) )
            // InternalXcore.g:15043:1: ( rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberFeatureCallAccess().getAlternatives_1_0_0_0_1()); 
            }
            // InternalXcore.g:15044:1: ( rule__XMemberFeatureCall__Alternatives_1_0_0_0_1 )
            // InternalXcore.g:15044:2: rule__XMemberFeatureCall__Alternatives_1_0_0_0_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XMemberFeatureCall__Alternatives_1_0_0_0_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXMemberFeatureCallAccess().getAlternatives_1_0_0_0_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMemberFeatureCall__Group_1_0_0_0__1__Impl"


    // $ANTLR start "rule__XMemberFeatureCall__Group_1_0_0_0__2"
    // InternalXcore.g:15054:1: rule__XMemberFeatureCall__Group_1_0_0_0__2 : rule__XMemberFeatureCall__Group_1_0_0_0__2__Impl rule__XMemberFeatureCall__Group_1_0_0_0__3 ;
    public final void rule__XMemberFeatureCall__Group_1_0_0_0__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:15058:1: ( rule__XMemberFeatureCall__Group_1_0_0_0__2__Impl rule__XMemberFeatureCall__Group_1_0_0_0__3 )
            // InternalXcore.g:15059:2: rule__XMemberFeatureCall__Group_1_0_0_0__2__Impl rule__XMemberFeatureCall__Group_1_0_0_0__3
            {
            pushFollow(FollowSets000.FOLLOW_15);
            rule__XMemberFeatureCall__Group_1_0_0_0__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XMemberFeatureCall__Group_1_0_0_0__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMemberFeatureCall__Group_1_0_0_0__2"


    // $ANTLR start "rule__XMemberFeatureCall__Group_1_0_0_0__2__Impl"
    // InternalXcore.g:15066:1: rule__XMemberFeatureCall__Group_1_0_0_0__2__Impl : ( ( rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 ) ) ;
    public final void rule__XMemberFeatureCall__Group_1_0_0_0__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:15070:1: ( ( ( rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 ) ) )
            // InternalXcore.g:15071:1: ( ( rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 ) )
            {
            // InternalXcore.g:15071:1: ( ( rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 ) )
            // InternalXcore.g:15072:1: ( rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberFeatureCallAccess().getFeatureAssignment_1_0_0_0_2()); 
            }
            // InternalXcore.g:15073:1: ( rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 )
            // InternalXcore.g:15073:2: rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXMemberFeatureCallAccess().getFeatureAssignment_1_0_0_0_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMemberFeatureCall__Group_1_0_0_0__2__Impl"


    // $ANTLR start "rule__XMemberFeatureCall__Group_1_0_0_0__3"
    // InternalXcore.g:15083:1: rule__XMemberFeatureCall__Group_1_0_0_0__3 : rule__XMemberFeatureCall__Group_1_0_0_0__3__Impl ;
    public final void rule__XMemberFeatureCall__Group_1_0_0_0__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:15087:1: ( rule__XMemberFeatureCall__Group_1_0_0_0__3__Impl )
            // InternalXcore.g:15088:2: rule__XMemberFeatureCall__Group_1_0_0_0__3__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XMemberFeatureCall__Group_1_0_0_0__3__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMemberFeatureCall__Group_1_0_0_0__3"


    // $ANTLR start "rule__XMemberFeatureCall__Group_1_0_0_0__3__Impl"
    // InternalXcore.g:15094:1: rule__XMemberFeatureCall__Group_1_0_0_0__3__Impl : ( ruleOpSingleAssign ) ;
    public final void rule__XMemberFeatureCall__Group_1_0_0_0__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:15098:1: ( ( ruleOpSingleAssign ) )
            // InternalXcore.g:15099:1: ( ruleOpSingleAssign )
            {
            // InternalXcore.g:15099:1: ( ruleOpSingleAssign )
            // InternalXcore.g:15100:1: ruleOpSingleAssign
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberFeatureCallAccess().getOpSingleAssignParserRuleCall_1_0_0_0_3()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleOpSingleAssign();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXMemberFeatureCallAccess().getOpSingleAssignParserRuleCall_1_0_0_0_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMemberFeatureCall__Group_1_0_0_0__3__Impl"


    // $ANTLR start "rule__XMemberFeatureCall__Group_1_1__0"
    // InternalXcore.g:15119:1: rule__XMemberFeatureCall__Group_1_1__0 : rule__XMemberFeatureCall__Group_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1__1 ;
    public final void rule__XMemberFeatureCall__Group_1_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:15123:1: ( rule__XMemberFeatureCall__Group_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1__1 )
            // InternalXcore.g:15124:2: rule__XMemberFeatureCall__Group_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1__1
            {
            pushFollow(FollowSets000.FOLLOW_98);
            rule__XMemberFeatureCall__Group_1_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XMemberFeatureCall__Group_1_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMemberFeatureCall__Group_1_1__0"


    // $ANTLR start "rule__XMemberFeatureCall__Group_1_1__0__Impl"
    // InternalXcore.g:15131:1: rule__XMemberFeatureCall__Group_1_1__0__Impl : ( ( rule__XMemberFeatureCall__Group_1_1_0__0 ) ) ;
    public final void rule__XMemberFeatureCall__Group_1_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:15135:1: ( ( ( rule__XMemberFeatureCall__Group_1_1_0__0 ) ) )
            // InternalXcore.g:15136:1: ( ( rule__XMemberFeatureCall__Group_1_1_0__0 ) )
            {
            // InternalXcore.g:15136:1: ( ( rule__XMemberFeatureCall__Group_1_1_0__0 ) )
            // InternalXcore.g:15137:1: ( rule__XMemberFeatureCall__Group_1_1_0__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_0()); 
            }
            // InternalXcore.g:15138:1: ( rule__XMemberFeatureCall__Group_1_1_0__0 )
            // InternalXcore.g:15138:2: rule__XMemberFeatureCall__Group_1_1_0__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XMemberFeatureCall__Group_1_1_0__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMemberFeatureCall__Group_1_1__0__Impl"


    // $ANTLR start "rule__XMemberFeatureCall__Group_1_1__1"
    // InternalXcore.g:15148:1: rule__XMemberFeatureCall__Group_1_1__1 : rule__XMemberFeatureCall__Group_1_1__1__Impl rule__XMemberFeatureCall__Group_1_1__2 ;
    public final void rule__XMemberFeatureCall__Group_1_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:15152:1: ( rule__XMemberFeatureCall__Group_1_1__1__Impl rule__XMemberFeatureCall__Group_1_1__2 )
            // InternalXcore.g:15153:2: rule__XMemberFeatureCall__Group_1_1__1__Impl rule__XMemberFeatureCall__Group_1_1__2
            {
            pushFollow(FollowSets000.FOLLOW_98);
            rule__XMemberFeatureCall__Group_1_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XMemberFeatureCall__Group_1_1__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMemberFeatureCall__Group_1_1__1"


    // $ANTLR start "rule__XMemberFeatureCall__Group_1_1__1__Impl"
    // InternalXcore.g:15160:1: rule__XMemberFeatureCall__Group_1_1__1__Impl : ( ( rule__XMemberFeatureCall__Group_1_1_1__0 )? ) ;
    public final void rule__XMemberFeatureCall__Group_1_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:15164:1: ( ( ( rule__XMemberFeatureCall__Group_1_1_1__0 )? ) )
            // InternalXcore.g:15165:1: ( ( rule__XMemberFeatureCall__Group_1_1_1__0 )? )
            {
            // InternalXcore.g:15165:1: ( ( rule__XMemberFeatureCall__Group_1_1_1__0 )? )
            // InternalXcore.g:15166:1: ( rule__XMemberFeatureCall__Group_1_1_1__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_1()); 
            }
            // InternalXcore.g:15167:1: ( rule__XMemberFeatureCall__Group_1_1_1__0 )?
            int alt131=2;
            int LA131_0 = input.LA(1);

            if ( (LA131_0==66) ) {
                alt131=1;
            }
            switch (alt131) {
                case 1 :
                    // InternalXcore.g:15167:2: rule__XMemberFeatureCall__Group_1_1_1__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XMemberFeatureCall__Group_1_1_1__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMemberFeatureCall__Group_1_1__1__Impl"


    // $ANTLR start "rule__XMemberFeatureCall__Group_1_1__2"
    // InternalXcore.g:15177:1: rule__XMemberFeatureCall__Group_1_1__2 : rule__XMemberFeatureCall__Group_1_1__2__Impl rule__XMemberFeatureCall__Group_1_1__3 ;
    public final void rule__XMemberFeatureCall__Group_1_1__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:15181:1: ( rule__XMemberFeatureCall__Group_1_1__2__Impl rule__XMemberFeatureCall__Group_1_1__3 )
            // InternalXcore.g:15182:2: rule__XMemberFeatureCall__Group_1_1__2__Impl rule__XMemberFeatureCall__Group_1_1__3
            {
            pushFollow(FollowSets000.FOLLOW_99);
            rule__XMemberFeatureCall__Group_1_1__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XMemberFeatureCall__Group_1_1__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMemberFeatureCall__Group_1_1__2"


    // $ANTLR start "rule__XMemberFeatureCall__Group_1_1__2__Impl"
    // InternalXcore.g:15189:1: rule__XMemberFeatureCall__Group_1_1__2__Impl : ( ( rule__XMemberFeatureCall__FeatureAssignment_1_1_2 ) ) ;
    public final void rule__XMemberFeatureCall__Group_1_1__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:15193:1: ( ( ( rule__XMemberFeatureCall__FeatureAssignment_1_1_2 ) ) )
            // InternalXcore.g:15194:1: ( ( rule__XMemberFeatureCall__FeatureAssignment_1_1_2 ) )
            {
            // InternalXcore.g:15194:1: ( ( rule__XMemberFeatureCall__FeatureAssignment_1_1_2 ) )
            // InternalXcore.g:15195:1: ( rule__XMemberFeatureCall__FeatureAssignment_1_1_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberFeatureCallAccess().getFeatureAssignment_1_1_2()); 
            }
            // InternalXcore.g:15196:1: ( rule__XMemberFeatureCall__FeatureAssignment_1_1_2 )
            // InternalXcore.g:15196:2: rule__XMemberFeatureCall__FeatureAssignment_1_1_2
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XMemberFeatureCall__FeatureAssignment_1_1_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXMemberFeatureCallAccess().getFeatureAssignment_1_1_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMemberFeatureCall__Group_1_1__2__Impl"


    // $ANTLR start "rule__XMemberFeatureCall__Group_1_1__3"
    // InternalXcore.g:15206:1: rule__XMemberFeatureCall__Group_1_1__3 : rule__XMemberFeatureCall__Group_1_1__3__Impl rule__XMemberFeatureCall__Group_1_1__4 ;
    public final void rule__XMemberFeatureCall__Group_1_1__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:15210:1: ( rule__XMemberFeatureCall__Group_1_1__3__Impl rule__XMemberFeatureCall__Group_1_1__4 )
            // InternalXcore.g:15211:2: rule__XMemberFeatureCall__Group_1_1__3__Impl rule__XMemberFeatureCall__Group_1_1__4
            {
            pushFollow(FollowSets000.FOLLOW_99);
            rule__XMemberFeatureCall__Group_1_1__3__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XMemberFeatureCall__Group_1_1__4();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMemberFeatureCall__Group_1_1__3"


    // $ANTLR start "rule__XMemberFeatureCall__Group_1_1__3__Impl"
    // InternalXcore.g:15218:1: rule__XMemberFeatureCall__Group_1_1__3__Impl : ( ( rule__XMemberFeatureCall__Group_1_1_3__0 )? ) ;
    public final void rule__XMemberFeatureCall__Group_1_1__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:15222:1: ( ( ( rule__XMemberFeatureCall__Group_1_1_3__0 )? ) )
            // InternalXcore.g:15223:1: ( ( rule__XMemberFeatureCall__Group_1_1_3__0 )? )
            {
            // InternalXcore.g:15223:1: ( ( rule__XMemberFeatureCall__Group_1_1_3__0 )? )
            // InternalXcore.g:15224:1: ( rule__XMemberFeatureCall__Group_1_1_3__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_3()); 
            }
            // InternalXcore.g:15225:1: ( rule__XMemberFeatureCall__Group_1_1_3__0 )?
            int alt132=2;
            alt132 = dfa132.predict(input);
            switch (alt132) {
                case 1 :
                    // InternalXcore.g:15225:2: rule__XMemberFeatureCall__Group_1_1_3__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XMemberFeatureCall__Group_1_1_3__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMemberFeatureCall__Group_1_1__3__Impl"


    // $ANTLR start "rule__XMemberFeatureCall__Group_1_1__4"
    // InternalXcore.g:15235:1: rule__XMemberFeatureCall__Group_1_1__4 : rule__XMemberFeatureCall__Group_1_1__4__Impl ;
    public final void rule__XMemberFeatureCall__Group_1_1__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:15239:1: ( rule__XMemberFeatureCall__Group_1_1__4__Impl )
            // InternalXcore.g:15240:2: rule__XMemberFeatureCall__Group_1_1__4__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XMemberFeatureCall__Group_1_1__4__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMemberFeatureCall__Group_1_1__4"


    // $ANTLR start "rule__XMemberFeatureCall__Group_1_1__4__Impl"
    // InternalXcore.g:15246:1: rule__XMemberFeatureCall__Group_1_1__4__Impl : ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )? ) ;
    public final void rule__XMemberFeatureCall__Group_1_1__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:15250:1: ( ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )? ) )
            // InternalXcore.g:15251:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )? )
            {
            // InternalXcore.g:15251:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )? )
            // InternalXcore.g:15252:1: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_4()); 
            }
            // InternalXcore.g:15253:1: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )?
            int alt133=2;
            alt133 = dfa133.predict(input);
            switch (alt133) {
                case 1 :
                    // InternalXcore.g:15253:2: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_4()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMemberFeatureCall__Group_1_1__4__Impl"


    // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_0__0"
    // InternalXcore.g:15273:1: rule__XMemberFeatureCall__Group_1_1_0__0 : rule__XMemberFeatureCall__Group_1_1_0__0__Impl ;
    public final void rule__XMemberFeatureCall__Group_1_1_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:15277:1: ( rule__XMemberFeatureCall__Group_1_1_0__0__Impl )
            // InternalXcore.g:15278:2: rule__XMemberFeatureCall__Group_1_1_0__0__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XMemberFeatureCall__Group_1_1_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMemberFeatureCall__Group_1_1_0__0"


    // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_0__0__Impl"
    // InternalXcore.g:15284:1: rule__XMemberFeatureCall__Group_1_1_0__0__Impl : ( ( rule__XMemberFeatureCall__Group_1_1_0_0__0 ) ) ;
    public final void rule__XMemberFeatureCall__Group_1_1_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:15288:1: ( ( ( rule__XMemberFeatureCall__Group_1_1_0_0__0 ) ) )
            // InternalXcore.g:15289:1: ( ( rule__XMemberFeatureCall__Group_1_1_0_0__0 ) )
            {
            // InternalXcore.g:15289:1: ( ( rule__XMemberFeatureCall__Group_1_1_0_0__0 ) )
            // InternalXcore.g:15290:1: ( rule__XMemberFeatureCall__Group_1_1_0_0__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_0_0()); 
            }
            // InternalXcore.g:15291:1: ( rule__XMemberFeatureCall__Group_1_1_0_0__0 )
            // InternalXcore.g:15291:2: rule__XMemberFeatureCall__Group_1_1_0_0__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XMemberFeatureCall__Group_1_1_0_0__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMemberFeatureCall__Group_1_1_0__0__Impl"


    // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_0_0__0"
    // InternalXcore.g:15303:1: rule__XMemberFeatureCall__Group_1_1_0_0__0 : rule__XMemberFeatureCall__Group_1_1_0_0__0__Impl rule__XMemberFeatureCall__Group_1_1_0_0__1 ;
    public final void rule__XMemberFeatureCall__Group_1_1_0_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:15307:1: ( rule__XMemberFeatureCall__Group_1_1_0_0__0__Impl rule__XMemberFeatureCall__Group_1_1_0_0__1 )
            // InternalXcore.g:15308:2: rule__XMemberFeatureCall__Group_1_1_0_0__0__Impl rule__XMemberFeatureCall__Group_1_1_0_0__1
            {
            pushFollow(FollowSets000.FOLLOW_95);
            rule__XMemberFeatureCall__Group_1_1_0_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XMemberFeatureCall__Group_1_1_0_0__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMemberFeatureCall__Group_1_1_0_0__0"


    // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_0_0__0__Impl"
    // InternalXcore.g:15315:1: rule__XMemberFeatureCall__Group_1_1_0_0__0__Impl : ( () ) ;
    public final void rule__XMemberFeatureCall__Group_1_1_0_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:15319:1: ( ( () ) )
            // InternalXcore.g:15320:1: ( () )
            {
            // InternalXcore.g:15320:1: ( () )
            // InternalXcore.g:15321:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0()); 
            }
            // InternalXcore.g:15322:1: ()
            // InternalXcore.g:15324:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMemberFeatureCall__Group_1_1_0_0__0__Impl"


    // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_0_0__1"
    // InternalXcore.g:15334:1: rule__XMemberFeatureCall__Group_1_1_0_0__1 : rule__XMemberFeatureCall__Group_1_1_0_0__1__Impl ;
    public final void rule__XMemberFeatureCall__Group_1_1_0_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:15338:1: ( rule__XMemberFeatureCall__Group_1_1_0_0__1__Impl )
            // InternalXcore.g:15339:2: rule__XMemberFeatureCall__Group_1_1_0_0__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XMemberFeatureCall__Group_1_1_0_0__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMemberFeatureCall__Group_1_1_0_0__1"


    // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_0_0__1__Impl"
    // InternalXcore.g:15345:1: rule__XMemberFeatureCall__Group_1_1_0_0__1__Impl : ( ( rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 ) ) ;
    public final void rule__XMemberFeatureCall__Group_1_1_0_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:15349:1: ( ( ( rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 ) ) )
            // InternalXcore.g:15350:1: ( ( rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 ) )
            {
            // InternalXcore.g:15350:1: ( ( rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 ) )
            // InternalXcore.g:15351:1: ( rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberFeatureCallAccess().getAlternatives_1_1_0_0_1()); 
            }
            // InternalXcore.g:15352:1: ( rule__XMemberFeatureCall__Alternatives_1_1_0_0_1 )
            // InternalXcore.g:15352:2: rule__XMemberFeatureCall__Alternatives_1_1_0_0_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XMemberFeatureCall__Alternatives_1_1_0_0_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXMemberFeatureCallAccess().getAlternatives_1_1_0_0_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMemberFeatureCall__Group_1_1_0_0__1__Impl"


    // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1__0"
    // InternalXcore.g:15366:1: rule__XMemberFeatureCall__Group_1_1_1__0 : rule__XMemberFeatureCall__Group_1_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_1__1 ;
    public final void rule__XMemberFeatureCall__Group_1_1_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:15370:1: ( rule__XMemberFeatureCall__Group_1_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_1__1 )
            // InternalXcore.g:15371:2: rule__XMemberFeatureCall__Group_1_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_1__1
            {
            pushFollow(FollowSets000.FOLLOW_100);
            rule__XMemberFeatureCall__Group_1_1_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XMemberFeatureCall__Group_1_1_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMemberFeatureCall__Group_1_1_1__0"


    // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1__0__Impl"
    // InternalXcore.g:15378:1: rule__XMemberFeatureCall__Group_1_1_1__0__Impl : ( '<' ) ;
    public final void rule__XMemberFeatureCall__Group_1_1_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:15382:1: ( ( '<' ) )
            // InternalXcore.g:15383:1: ( '<' )
            {
            // InternalXcore.g:15383:1: ( '<' )
            // InternalXcore.g:15384:1: '<'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberFeatureCallAccess().getLessThanSignKeyword_1_1_1_0()); 
            }
            match(input,66,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXMemberFeatureCallAccess().getLessThanSignKeyword_1_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMemberFeatureCall__Group_1_1_1__0__Impl"


    // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1__1"
    // InternalXcore.g:15397:1: rule__XMemberFeatureCall__Group_1_1_1__1 : rule__XMemberFeatureCall__Group_1_1_1__1__Impl rule__XMemberFeatureCall__Group_1_1_1__2 ;
    public final void rule__XMemberFeatureCall__Group_1_1_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:15401:1: ( rule__XMemberFeatureCall__Group_1_1_1__1__Impl rule__XMemberFeatureCall__Group_1_1_1__2 )
            // InternalXcore.g:15402:2: rule__XMemberFeatureCall__Group_1_1_1__1__Impl rule__XMemberFeatureCall__Group_1_1_1__2
            {
            pushFollow(FollowSets000.FOLLOW_25);
            rule__XMemberFeatureCall__Group_1_1_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XMemberFeatureCall__Group_1_1_1__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMemberFeatureCall__Group_1_1_1__1"


    // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1__1__Impl"
    // InternalXcore.g:15409:1: rule__XMemberFeatureCall__Group_1_1_1__1__Impl : ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 ) ) ;
    public final void rule__XMemberFeatureCall__Group_1_1_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:15413:1: ( ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 ) ) )
            // InternalXcore.g:15414:1: ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 ) )
            {
            // InternalXcore.g:15414:1: ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 ) )
            // InternalXcore.g:15415:1: ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsAssignment_1_1_1_1()); 
            }
            // InternalXcore.g:15416:1: ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 )
            // InternalXcore.g:15416:2: rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsAssignment_1_1_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMemberFeatureCall__Group_1_1_1__1__Impl"


    // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1__2"
    // InternalXcore.g:15426:1: rule__XMemberFeatureCall__Group_1_1_1__2 : rule__XMemberFeatureCall__Group_1_1_1__2__Impl rule__XMemberFeatureCall__Group_1_1_1__3 ;
    public final void rule__XMemberFeatureCall__Group_1_1_1__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:15430:1: ( rule__XMemberFeatureCall__Group_1_1_1__2__Impl rule__XMemberFeatureCall__Group_1_1_1__3 )
            // InternalXcore.g:15431:2: rule__XMemberFeatureCall__Group_1_1_1__2__Impl rule__XMemberFeatureCall__Group_1_1_1__3
            {
            pushFollow(FollowSets000.FOLLOW_25);
            rule__XMemberFeatureCall__Group_1_1_1__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XMemberFeatureCall__Group_1_1_1__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMemberFeatureCall__Group_1_1_1__2"


    // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1__2__Impl"
    // InternalXcore.g:15438:1: rule__XMemberFeatureCall__Group_1_1_1__2__Impl : ( ( rule__XMemberFeatureCall__Group_1_1_1_2__0 )* ) ;
    public final void rule__XMemberFeatureCall__Group_1_1_1__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:15442:1: ( ( ( rule__XMemberFeatureCall__Group_1_1_1_2__0 )* ) )
            // InternalXcore.g:15443:1: ( ( rule__XMemberFeatureCall__Group_1_1_1_2__0 )* )
            {
            // InternalXcore.g:15443:1: ( ( rule__XMemberFeatureCall__Group_1_1_1_2__0 )* )
            // InternalXcore.g:15444:1: ( rule__XMemberFeatureCall__Group_1_1_1_2__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_1_2()); 
            }
            // InternalXcore.g:15445:1: ( rule__XMemberFeatureCall__Group_1_1_1_2__0 )*
            loop134:
            do {
                int alt134=2;
                int LA134_0 = input.LA(1);

                if ( (LA134_0==87) ) {
                    alt134=1;
                }


                switch (alt134) {
            	case 1 :
            	    // InternalXcore.g:15445:2: rule__XMemberFeatureCall__Group_1_1_1_2__0
            	    {
            	    pushFollow(FollowSets000.FOLLOW_14);
            	    rule__XMemberFeatureCall__Group_1_1_1_2__0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop134;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_1_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMemberFeatureCall__Group_1_1_1__2__Impl"


    // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1__3"
    // InternalXcore.g:15455:1: rule__XMemberFeatureCall__Group_1_1_1__3 : rule__XMemberFeatureCall__Group_1_1_1__3__Impl ;
    public final void rule__XMemberFeatureCall__Group_1_1_1__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:15459:1: ( rule__XMemberFeatureCall__Group_1_1_1__3__Impl )
            // InternalXcore.g:15460:2: rule__XMemberFeatureCall__Group_1_1_1__3__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XMemberFeatureCall__Group_1_1_1__3__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMemberFeatureCall__Group_1_1_1__3"


    // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1__3__Impl"
    // InternalXcore.g:15466:1: rule__XMemberFeatureCall__Group_1_1_1__3__Impl : ( '>' ) ;
    public final void rule__XMemberFeatureCall__Group_1_1_1__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:15470:1: ( ( '>' ) )
            // InternalXcore.g:15471:1: ( '>' )
            {
            // InternalXcore.g:15471:1: ( '>' )
            // InternalXcore.g:15472:1: '>'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberFeatureCallAccess().getGreaterThanSignKeyword_1_1_1_3()); 
            }
            match(input,65,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXMemberFeatureCallAccess().getGreaterThanSignKeyword_1_1_1_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMemberFeatureCall__Group_1_1_1__3__Impl"


    // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1_2__0"
    // InternalXcore.g:15493:1: rule__XMemberFeatureCall__Group_1_1_1_2__0 : rule__XMemberFeatureCall__Group_1_1_1_2__0__Impl rule__XMemberFeatureCall__Group_1_1_1_2__1 ;
    public final void rule__XMemberFeatureCall__Group_1_1_1_2__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:15497:1: ( rule__XMemberFeatureCall__Group_1_1_1_2__0__Impl rule__XMemberFeatureCall__Group_1_1_1_2__1 )
            // InternalXcore.g:15498:2: rule__XMemberFeatureCall__Group_1_1_1_2__0__Impl rule__XMemberFeatureCall__Group_1_1_1_2__1
            {
            pushFollow(FollowSets000.FOLLOW_100);
            rule__XMemberFeatureCall__Group_1_1_1_2__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XMemberFeatureCall__Group_1_1_1_2__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMemberFeatureCall__Group_1_1_1_2__0"


    // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1_2__0__Impl"
    // InternalXcore.g:15505:1: rule__XMemberFeatureCall__Group_1_1_1_2__0__Impl : ( ',' ) ;
    public final void rule__XMemberFeatureCall__Group_1_1_1_2__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:15509:1: ( ( ',' ) )
            // InternalXcore.g:15510:1: ( ',' )
            {
            // InternalXcore.g:15510:1: ( ',' )
            // InternalXcore.g:15511:1: ','
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberFeatureCallAccess().getCommaKeyword_1_1_1_2_0()); 
            }
            match(input,87,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXMemberFeatureCallAccess().getCommaKeyword_1_1_1_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMemberFeatureCall__Group_1_1_1_2__0__Impl"


    // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1_2__1"
    // InternalXcore.g:15524:1: rule__XMemberFeatureCall__Group_1_1_1_2__1 : rule__XMemberFeatureCall__Group_1_1_1_2__1__Impl ;
    public final void rule__XMemberFeatureCall__Group_1_1_1_2__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:15528:1: ( rule__XMemberFeatureCall__Group_1_1_1_2__1__Impl )
            // InternalXcore.g:15529:2: rule__XMemberFeatureCall__Group_1_1_1_2__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XMemberFeatureCall__Group_1_1_1_2__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMemberFeatureCall__Group_1_1_1_2__1"


    // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_1_2__1__Impl"
    // InternalXcore.g:15535:1: rule__XMemberFeatureCall__Group_1_1_1_2__1__Impl : ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 ) ) ;
    public final void rule__XMemberFeatureCall__Group_1_1_1_2__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:15539:1: ( ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 ) ) )
            // InternalXcore.g:15540:1: ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 ) )
            {
            // InternalXcore.g:15540:1: ( ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 ) )
            // InternalXcore.g:15541:1: ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsAssignment_1_1_1_2_1()); 
            }
            // InternalXcore.g:15542:1: ( rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 )
            // InternalXcore.g:15542:2: rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsAssignment_1_1_1_2_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMemberFeatureCall__Group_1_1_1_2__1__Impl"


    // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3__0"
    // InternalXcore.g:15556:1: rule__XMemberFeatureCall__Group_1_1_3__0 : rule__XMemberFeatureCall__Group_1_1_3__0__Impl rule__XMemberFeatureCall__Group_1_1_3__1 ;
    public final void rule__XMemberFeatureCall__Group_1_1_3__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:15560:1: ( rule__XMemberFeatureCall__Group_1_1_3__0__Impl rule__XMemberFeatureCall__Group_1_1_3__1 )
            // InternalXcore.g:15561:2: rule__XMemberFeatureCall__Group_1_1_3__0__Impl rule__XMemberFeatureCall__Group_1_1_3__1
            {
            pushFollow(FollowSets000.FOLLOW_101);
            rule__XMemberFeatureCall__Group_1_1_3__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XMemberFeatureCall__Group_1_1_3__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMemberFeatureCall__Group_1_1_3__0"


    // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3__0__Impl"
    // InternalXcore.g:15568:1: rule__XMemberFeatureCall__Group_1_1_3__0__Impl : ( ( rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 ) ) ;
    public final void rule__XMemberFeatureCall__Group_1_1_3__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:15572:1: ( ( ( rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 ) ) )
            // InternalXcore.g:15573:1: ( ( rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 ) )
            {
            // InternalXcore.g:15573:1: ( ( rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 ) )
            // InternalXcore.g:15574:1: ( rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberFeatureCallAccess().getExplicitOperationCallAssignment_1_1_3_0()); 
            }
            // InternalXcore.g:15575:1: ( rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 )
            // InternalXcore.g:15575:2: rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXMemberFeatureCallAccess().getExplicitOperationCallAssignment_1_1_3_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMemberFeatureCall__Group_1_1_3__0__Impl"


    // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3__1"
    // InternalXcore.g:15585:1: rule__XMemberFeatureCall__Group_1_1_3__1 : rule__XMemberFeatureCall__Group_1_1_3__1__Impl rule__XMemberFeatureCall__Group_1_1_3__2 ;
    public final void rule__XMemberFeatureCall__Group_1_1_3__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:15589:1: ( rule__XMemberFeatureCall__Group_1_1_3__1__Impl rule__XMemberFeatureCall__Group_1_1_3__2 )
            // InternalXcore.g:15590:2: rule__XMemberFeatureCall__Group_1_1_3__1__Impl rule__XMemberFeatureCall__Group_1_1_3__2
            {
            pushFollow(FollowSets000.FOLLOW_101);
            rule__XMemberFeatureCall__Group_1_1_3__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XMemberFeatureCall__Group_1_1_3__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMemberFeatureCall__Group_1_1_3__1"


    // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3__1__Impl"
    // InternalXcore.g:15597:1: rule__XMemberFeatureCall__Group_1_1_3__1__Impl : ( ( rule__XMemberFeatureCall__Alternatives_1_1_3_1 )? ) ;
    public final void rule__XMemberFeatureCall__Group_1_1_3__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:15601:1: ( ( ( rule__XMemberFeatureCall__Alternatives_1_1_3_1 )? ) )
            // InternalXcore.g:15602:1: ( ( rule__XMemberFeatureCall__Alternatives_1_1_3_1 )? )
            {
            // InternalXcore.g:15602:1: ( ( rule__XMemberFeatureCall__Alternatives_1_1_3_1 )? )
            // InternalXcore.g:15603:1: ( rule__XMemberFeatureCall__Alternatives_1_1_3_1 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberFeatureCallAccess().getAlternatives_1_1_3_1()); 
            }
            // InternalXcore.g:15604:1: ( rule__XMemberFeatureCall__Alternatives_1_1_3_1 )?
            int alt135=2;
            int LA135_0 = input.LA(1);

            if ( ((LA135_0>=RULE_INT && LA135_0<=RULE_STRING)||LA135_0==16||(LA135_0>=19 && LA135_0<=54)||LA135_0==66||LA135_0==70||LA135_0==73||LA135_0==77||(LA135_0>=82 && LA135_0<=83)||LA135_0==85||LA135_0==89||LA135_0==92||(LA135_0>=96 && LA135_0<=97)||LA135_0==99||(LA135_0>=103 && LA135_0<=111)||LA135_0==113||LA135_0==117||LA135_0==119) ) {
                alt135=1;
            }
            switch (alt135) {
                case 1 :
                    // InternalXcore.g:15604:2: rule__XMemberFeatureCall__Alternatives_1_1_3_1
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XMemberFeatureCall__Alternatives_1_1_3_1();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXMemberFeatureCallAccess().getAlternatives_1_1_3_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMemberFeatureCall__Group_1_1_3__1__Impl"


    // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3__2"
    // InternalXcore.g:15614:1: rule__XMemberFeatureCall__Group_1_1_3__2 : rule__XMemberFeatureCall__Group_1_1_3__2__Impl ;
    public final void rule__XMemberFeatureCall__Group_1_1_3__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:15618:1: ( rule__XMemberFeatureCall__Group_1_1_3__2__Impl )
            // InternalXcore.g:15619:2: rule__XMemberFeatureCall__Group_1_1_3__2__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XMemberFeatureCall__Group_1_1_3__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMemberFeatureCall__Group_1_1_3__2"


    // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3__2__Impl"
    // InternalXcore.g:15625:1: rule__XMemberFeatureCall__Group_1_1_3__2__Impl : ( ')' ) ;
    public final void rule__XMemberFeatureCall__Group_1_1_3__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:15629:1: ( ( ')' ) )
            // InternalXcore.g:15630:1: ( ')' )
            {
            // InternalXcore.g:15630:1: ( ')' )
            // InternalXcore.g:15631:1: ')'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberFeatureCallAccess().getRightParenthesisKeyword_1_1_3_2()); 
            }
            match(input,86,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXMemberFeatureCallAccess().getRightParenthesisKeyword_1_1_3_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMemberFeatureCall__Group_1_1_3__2__Impl"


    // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3_1_1__0"
    // InternalXcore.g:15650:1: rule__XMemberFeatureCall__Group_1_1_3_1_1__0 : rule__XMemberFeatureCall__Group_1_1_3_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_3_1_1__1 ;
    public final void rule__XMemberFeatureCall__Group_1_1_3_1_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:15654:1: ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_3_1_1__1 )
            // InternalXcore.g:15655:2: rule__XMemberFeatureCall__Group_1_1_3_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_3_1_1__1
            {
            pushFollow(FollowSets000.FOLLOW_38);
            rule__XMemberFeatureCall__Group_1_1_3_1_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XMemberFeatureCall__Group_1_1_3_1_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMemberFeatureCall__Group_1_1_3_1_1__0"


    // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3_1_1__0__Impl"
    // InternalXcore.g:15662:1: rule__XMemberFeatureCall__Group_1_1_3_1_1__0__Impl : ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 ) ) ;
    public final void rule__XMemberFeatureCall__Group_1_1_3_1_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:15666:1: ( ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 ) ) )
            // InternalXcore.g:15667:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 ) )
            {
            // InternalXcore.g:15667:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 ) )
            // InternalXcore.g:15668:1: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_3_1_1_0()); 
            }
            // InternalXcore.g:15669:1: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 )
            // InternalXcore.g:15669:2: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_3_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMemberFeatureCall__Group_1_1_3_1_1__0__Impl"


    // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3_1_1__1"
    // InternalXcore.g:15679:1: rule__XMemberFeatureCall__Group_1_1_3_1_1__1 : rule__XMemberFeatureCall__Group_1_1_3_1_1__1__Impl ;
    public final void rule__XMemberFeatureCall__Group_1_1_3_1_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:15683:1: ( rule__XMemberFeatureCall__Group_1_1_3_1_1__1__Impl )
            // InternalXcore.g:15684:2: rule__XMemberFeatureCall__Group_1_1_3_1_1__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XMemberFeatureCall__Group_1_1_3_1_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMemberFeatureCall__Group_1_1_3_1_1__1"


    // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3_1_1__1__Impl"
    // InternalXcore.g:15690:1: rule__XMemberFeatureCall__Group_1_1_3_1_1__1__Impl : ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0 )* ) ;
    public final void rule__XMemberFeatureCall__Group_1_1_3_1_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:15694:1: ( ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0 )* ) )
            // InternalXcore.g:15695:1: ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0 )* )
            {
            // InternalXcore.g:15695:1: ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0 )* )
            // InternalXcore.g:15696:1: ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_3_1_1_1()); 
            }
            // InternalXcore.g:15697:1: ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0 )*
            loop136:
            do {
                int alt136=2;
                int LA136_0 = input.LA(1);

                if ( (LA136_0==87) ) {
                    alt136=1;
                }


                switch (alt136) {
            	case 1 :
            	    // InternalXcore.g:15697:2: rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0
            	    {
            	    pushFollow(FollowSets000.FOLLOW_14);
            	    rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop136;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXMemberFeatureCallAccess().getGroup_1_1_3_1_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMemberFeatureCall__Group_1_1_3_1_1__1__Impl"


    // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0"
    // InternalXcore.g:15711:1: rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0 : rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1 ;
    public final void rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:15715:1: ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1 )
            // InternalXcore.g:15716:2: rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0__Impl rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1
            {
            pushFollow(FollowSets000.FOLLOW_72);
            rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0"


    // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0__Impl"
    // InternalXcore.g:15723:1: rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0__Impl : ( ',' ) ;
    public final void rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:15727:1: ( ( ',' ) )
            // InternalXcore.g:15728:1: ( ',' )
            {
            // InternalXcore.g:15728:1: ( ',' )
            // InternalXcore.g:15729:1: ','
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberFeatureCallAccess().getCommaKeyword_1_1_3_1_1_1_0()); 
            }
            match(input,87,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXMemberFeatureCallAccess().getCommaKeyword_1_1_3_1_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0__Impl"


    // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1"
    // InternalXcore.g:15742:1: rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1 : rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1__Impl ;
    public final void rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:15746:1: ( rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1__Impl )
            // InternalXcore.g:15747:2: rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1"


    // $ANTLR start "rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1__Impl"
    // InternalXcore.g:15753:1: rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1__Impl : ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 ) ) ;
    public final void rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:15757:1: ( ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 ) ) )
            // InternalXcore.g:15758:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 ) )
            {
            // InternalXcore.g:15758:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 ) )
            // InternalXcore.g:15759:1: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_3_1_1_1_1()); 
            }
            // InternalXcore.g:15760:1: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 )
            // InternalXcore.g:15760:2: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_3_1_1_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1__Impl"


    // $ANTLR start "rule__XSetLiteral__Group__0"
    // InternalXcore.g:15774:1: rule__XSetLiteral__Group__0 : rule__XSetLiteral__Group__0__Impl rule__XSetLiteral__Group__1 ;
    public final void rule__XSetLiteral__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:15778:1: ( rule__XSetLiteral__Group__0__Impl rule__XSetLiteral__Group__1 )
            // InternalXcore.g:15779:2: rule__XSetLiteral__Group__0__Impl rule__XSetLiteral__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_102);
            rule__XSetLiteral__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XSetLiteral__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XSetLiteral__Group__0"


    // $ANTLR start "rule__XSetLiteral__Group__0__Impl"
    // InternalXcore.g:15786:1: rule__XSetLiteral__Group__0__Impl : ( () ) ;
    public final void rule__XSetLiteral__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:15790:1: ( ( () ) )
            // InternalXcore.g:15791:1: ( () )
            {
            // InternalXcore.g:15791:1: ( () )
            // InternalXcore.g:15792:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSetLiteralAccess().getXSetLiteralAction_0()); 
            }
            // InternalXcore.g:15793:1: ()
            // InternalXcore.g:15795:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXSetLiteralAccess().getXSetLiteralAction_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XSetLiteral__Group__0__Impl"


    // $ANTLR start "rule__XSetLiteral__Group__1"
    // InternalXcore.g:15805:1: rule__XSetLiteral__Group__1 : rule__XSetLiteral__Group__1__Impl rule__XSetLiteral__Group__2 ;
    public final void rule__XSetLiteral__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:15809:1: ( rule__XSetLiteral__Group__1__Impl rule__XSetLiteral__Group__2 )
            // InternalXcore.g:15810:2: rule__XSetLiteral__Group__1__Impl rule__XSetLiteral__Group__2
            {
            pushFollow(FollowSets000.FOLLOW_26);
            rule__XSetLiteral__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XSetLiteral__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XSetLiteral__Group__1"


    // $ANTLR start "rule__XSetLiteral__Group__1__Impl"
    // InternalXcore.g:15817:1: rule__XSetLiteral__Group__1__Impl : ( '#' ) ;
    public final void rule__XSetLiteral__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:15821:1: ( ( '#' ) )
            // InternalXcore.g:15822:1: ( '#' )
            {
            // InternalXcore.g:15822:1: ( '#' )
            // InternalXcore.g:15823:1: '#'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSetLiteralAccess().getNumberSignKeyword_1()); 
            }
            match(input,96,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXSetLiteralAccess().getNumberSignKeyword_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XSetLiteral__Group__1__Impl"


    // $ANTLR start "rule__XSetLiteral__Group__2"
    // InternalXcore.g:15836:1: rule__XSetLiteral__Group__2 : rule__XSetLiteral__Group__2__Impl rule__XSetLiteral__Group__3 ;
    public final void rule__XSetLiteral__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:15840:1: ( rule__XSetLiteral__Group__2__Impl rule__XSetLiteral__Group__3 )
            // InternalXcore.g:15841:2: rule__XSetLiteral__Group__2__Impl rule__XSetLiteral__Group__3
            {
            pushFollow(FollowSets000.FOLLOW_63);
            rule__XSetLiteral__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XSetLiteral__Group__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XSetLiteral__Group__2"


    // $ANTLR start "rule__XSetLiteral__Group__2__Impl"
    // InternalXcore.g:15848:1: rule__XSetLiteral__Group__2__Impl : ( '{' ) ;
    public final void rule__XSetLiteral__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:15852:1: ( ( '{' ) )
            // InternalXcore.g:15853:1: ( '{' )
            {
            // InternalXcore.g:15853:1: ( '{' )
            // InternalXcore.g:15854:1: '{'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSetLiteralAccess().getLeftCurlyBracketKeyword_2()); 
            }
            match(input,89,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXSetLiteralAccess().getLeftCurlyBracketKeyword_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XSetLiteral__Group__2__Impl"


    // $ANTLR start "rule__XSetLiteral__Group__3"
    // InternalXcore.g:15867:1: rule__XSetLiteral__Group__3 : rule__XSetLiteral__Group__3__Impl rule__XSetLiteral__Group__4 ;
    public final void rule__XSetLiteral__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:15871:1: ( rule__XSetLiteral__Group__3__Impl rule__XSetLiteral__Group__4 )
            // InternalXcore.g:15872:2: rule__XSetLiteral__Group__3__Impl rule__XSetLiteral__Group__4
            {
            pushFollow(FollowSets000.FOLLOW_63);
            rule__XSetLiteral__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XSetLiteral__Group__4();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XSetLiteral__Group__3"


    // $ANTLR start "rule__XSetLiteral__Group__3__Impl"
    // InternalXcore.g:15879:1: rule__XSetLiteral__Group__3__Impl : ( ( rule__XSetLiteral__Group_3__0 )? ) ;
    public final void rule__XSetLiteral__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:15883:1: ( ( ( rule__XSetLiteral__Group_3__0 )? ) )
            // InternalXcore.g:15884:1: ( ( rule__XSetLiteral__Group_3__0 )? )
            {
            // InternalXcore.g:15884:1: ( ( rule__XSetLiteral__Group_3__0 )? )
            // InternalXcore.g:15885:1: ( rule__XSetLiteral__Group_3__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSetLiteralAccess().getGroup_3()); 
            }
            // InternalXcore.g:15886:1: ( rule__XSetLiteral__Group_3__0 )?
            int alt137=2;
            int LA137_0 = input.LA(1);

            if ( ((LA137_0>=RULE_INT && LA137_0<=RULE_STRING)||LA137_0==16||(LA137_0>=19 && LA137_0<=54)||LA137_0==66||LA137_0==73||LA137_0==77||(LA137_0>=82 && LA137_0<=83)||LA137_0==85||LA137_0==89||LA137_0==92||(LA137_0>=96 && LA137_0<=97)||LA137_0==99||(LA137_0>=103 && LA137_0<=111)||LA137_0==113||LA137_0==119) ) {
                alt137=1;
            }
            switch (alt137) {
                case 1 :
                    // InternalXcore.g:15886:2: rule__XSetLiteral__Group_3__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XSetLiteral__Group_3__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXSetLiteralAccess().getGroup_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XSetLiteral__Group__3__Impl"


    // $ANTLR start "rule__XSetLiteral__Group__4"
    // InternalXcore.g:15896:1: rule__XSetLiteral__Group__4 : rule__XSetLiteral__Group__4__Impl ;
    public final void rule__XSetLiteral__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:15900:1: ( rule__XSetLiteral__Group__4__Impl )
            // InternalXcore.g:15901:2: rule__XSetLiteral__Group__4__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XSetLiteral__Group__4__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XSetLiteral__Group__4"


    // $ANTLR start "rule__XSetLiteral__Group__4__Impl"
    // InternalXcore.g:15907:1: rule__XSetLiteral__Group__4__Impl : ( '}' ) ;
    public final void rule__XSetLiteral__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:15911:1: ( ( '}' ) )
            // InternalXcore.g:15912:1: ( '}' )
            {
            // InternalXcore.g:15912:1: ( '}' )
            // InternalXcore.g:15913:1: '}'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSetLiteralAccess().getRightCurlyBracketKeyword_4()); 
            }
            match(input,90,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXSetLiteralAccess().getRightCurlyBracketKeyword_4()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XSetLiteral__Group__4__Impl"


    // $ANTLR start "rule__XSetLiteral__Group_3__0"
    // InternalXcore.g:15936:1: rule__XSetLiteral__Group_3__0 : rule__XSetLiteral__Group_3__0__Impl rule__XSetLiteral__Group_3__1 ;
    public final void rule__XSetLiteral__Group_3__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:15940:1: ( rule__XSetLiteral__Group_3__0__Impl rule__XSetLiteral__Group_3__1 )
            // InternalXcore.g:15941:2: rule__XSetLiteral__Group_3__0__Impl rule__XSetLiteral__Group_3__1
            {
            pushFollow(FollowSets000.FOLLOW_38);
            rule__XSetLiteral__Group_3__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XSetLiteral__Group_3__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XSetLiteral__Group_3__0"


    // $ANTLR start "rule__XSetLiteral__Group_3__0__Impl"
    // InternalXcore.g:15948:1: rule__XSetLiteral__Group_3__0__Impl : ( ( rule__XSetLiteral__ElementsAssignment_3_0 ) ) ;
    public final void rule__XSetLiteral__Group_3__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:15952:1: ( ( ( rule__XSetLiteral__ElementsAssignment_3_0 ) ) )
            // InternalXcore.g:15953:1: ( ( rule__XSetLiteral__ElementsAssignment_3_0 ) )
            {
            // InternalXcore.g:15953:1: ( ( rule__XSetLiteral__ElementsAssignment_3_0 ) )
            // InternalXcore.g:15954:1: ( rule__XSetLiteral__ElementsAssignment_3_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSetLiteralAccess().getElementsAssignment_3_0()); 
            }
            // InternalXcore.g:15955:1: ( rule__XSetLiteral__ElementsAssignment_3_0 )
            // InternalXcore.g:15955:2: rule__XSetLiteral__ElementsAssignment_3_0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XSetLiteral__ElementsAssignment_3_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXSetLiteralAccess().getElementsAssignment_3_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XSetLiteral__Group_3__0__Impl"


    // $ANTLR start "rule__XSetLiteral__Group_3__1"
    // InternalXcore.g:15965:1: rule__XSetLiteral__Group_3__1 : rule__XSetLiteral__Group_3__1__Impl ;
    public final void rule__XSetLiteral__Group_3__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:15969:1: ( rule__XSetLiteral__Group_3__1__Impl )
            // InternalXcore.g:15970:2: rule__XSetLiteral__Group_3__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XSetLiteral__Group_3__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XSetLiteral__Group_3__1"


    // $ANTLR start "rule__XSetLiteral__Group_3__1__Impl"
    // InternalXcore.g:15976:1: rule__XSetLiteral__Group_3__1__Impl : ( ( rule__XSetLiteral__Group_3_1__0 )* ) ;
    public final void rule__XSetLiteral__Group_3__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:15980:1: ( ( ( rule__XSetLiteral__Group_3_1__0 )* ) )
            // InternalXcore.g:15981:1: ( ( rule__XSetLiteral__Group_3_1__0 )* )
            {
            // InternalXcore.g:15981:1: ( ( rule__XSetLiteral__Group_3_1__0 )* )
            // InternalXcore.g:15982:1: ( rule__XSetLiteral__Group_3_1__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSetLiteralAccess().getGroup_3_1()); 
            }
            // InternalXcore.g:15983:1: ( rule__XSetLiteral__Group_3_1__0 )*
            loop138:
            do {
                int alt138=2;
                int LA138_0 = input.LA(1);

                if ( (LA138_0==87) ) {
                    alt138=1;
                }


                switch (alt138) {
            	case 1 :
            	    // InternalXcore.g:15983:2: rule__XSetLiteral__Group_3_1__0
            	    {
            	    pushFollow(FollowSets000.FOLLOW_14);
            	    rule__XSetLiteral__Group_3_1__0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop138;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXSetLiteralAccess().getGroup_3_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XSetLiteral__Group_3__1__Impl"


    // $ANTLR start "rule__XSetLiteral__Group_3_1__0"
    // InternalXcore.g:15997:1: rule__XSetLiteral__Group_3_1__0 : rule__XSetLiteral__Group_3_1__0__Impl rule__XSetLiteral__Group_3_1__1 ;
    public final void rule__XSetLiteral__Group_3_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:16001:1: ( rule__XSetLiteral__Group_3_1__0__Impl rule__XSetLiteral__Group_3_1__1 )
            // InternalXcore.g:16002:2: rule__XSetLiteral__Group_3_1__0__Impl rule__XSetLiteral__Group_3_1__1
            {
            pushFollow(FollowSets000.FOLLOW_72);
            rule__XSetLiteral__Group_3_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XSetLiteral__Group_3_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XSetLiteral__Group_3_1__0"


    // $ANTLR start "rule__XSetLiteral__Group_3_1__0__Impl"
    // InternalXcore.g:16009:1: rule__XSetLiteral__Group_3_1__0__Impl : ( ',' ) ;
    public final void rule__XSetLiteral__Group_3_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:16013:1: ( ( ',' ) )
            // InternalXcore.g:16014:1: ( ',' )
            {
            // InternalXcore.g:16014:1: ( ',' )
            // InternalXcore.g:16015:1: ','
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSetLiteralAccess().getCommaKeyword_3_1_0()); 
            }
            match(input,87,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXSetLiteralAccess().getCommaKeyword_3_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XSetLiteral__Group_3_1__0__Impl"


    // $ANTLR start "rule__XSetLiteral__Group_3_1__1"
    // InternalXcore.g:16028:1: rule__XSetLiteral__Group_3_1__1 : rule__XSetLiteral__Group_3_1__1__Impl ;
    public final void rule__XSetLiteral__Group_3_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:16032:1: ( rule__XSetLiteral__Group_3_1__1__Impl )
            // InternalXcore.g:16033:2: rule__XSetLiteral__Group_3_1__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XSetLiteral__Group_3_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XSetLiteral__Group_3_1__1"


    // $ANTLR start "rule__XSetLiteral__Group_3_1__1__Impl"
    // InternalXcore.g:16039:1: rule__XSetLiteral__Group_3_1__1__Impl : ( ( rule__XSetLiteral__ElementsAssignment_3_1_1 ) ) ;
    public final void rule__XSetLiteral__Group_3_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:16043:1: ( ( ( rule__XSetLiteral__ElementsAssignment_3_1_1 ) ) )
            // InternalXcore.g:16044:1: ( ( rule__XSetLiteral__ElementsAssignment_3_1_1 ) )
            {
            // InternalXcore.g:16044:1: ( ( rule__XSetLiteral__ElementsAssignment_3_1_1 ) )
            // InternalXcore.g:16045:1: ( rule__XSetLiteral__ElementsAssignment_3_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSetLiteralAccess().getElementsAssignment_3_1_1()); 
            }
            // InternalXcore.g:16046:1: ( rule__XSetLiteral__ElementsAssignment_3_1_1 )
            // InternalXcore.g:16046:2: rule__XSetLiteral__ElementsAssignment_3_1_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XSetLiteral__ElementsAssignment_3_1_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXSetLiteralAccess().getElementsAssignment_3_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XSetLiteral__Group_3_1__1__Impl"


    // $ANTLR start "rule__XListLiteral__Group__0"
    // InternalXcore.g:16060:1: rule__XListLiteral__Group__0 : rule__XListLiteral__Group__0__Impl rule__XListLiteral__Group__1 ;
    public final void rule__XListLiteral__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:16064:1: ( rule__XListLiteral__Group__0__Impl rule__XListLiteral__Group__1 )
            // InternalXcore.g:16065:2: rule__XListLiteral__Group__0__Impl rule__XListLiteral__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_102);
            rule__XListLiteral__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XListLiteral__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XListLiteral__Group__0"


    // $ANTLR start "rule__XListLiteral__Group__0__Impl"
    // InternalXcore.g:16072:1: rule__XListLiteral__Group__0__Impl : ( () ) ;
    public final void rule__XListLiteral__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:16076:1: ( ( () ) )
            // InternalXcore.g:16077:1: ( () )
            {
            // InternalXcore.g:16077:1: ( () )
            // InternalXcore.g:16078:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXListLiteralAccess().getXListLiteralAction_0()); 
            }
            // InternalXcore.g:16079:1: ()
            // InternalXcore.g:16081:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXListLiteralAccess().getXListLiteralAction_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XListLiteral__Group__0__Impl"


    // $ANTLR start "rule__XListLiteral__Group__1"
    // InternalXcore.g:16091:1: rule__XListLiteral__Group__1 : rule__XListLiteral__Group__1__Impl rule__XListLiteral__Group__2 ;
    public final void rule__XListLiteral__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:16095:1: ( rule__XListLiteral__Group__1__Impl rule__XListLiteral__Group__2 )
            // InternalXcore.g:16096:2: rule__XListLiteral__Group__1__Impl rule__XListLiteral__Group__2
            {
            pushFollow(FollowSets000.FOLLOW_103);
            rule__XListLiteral__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XListLiteral__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XListLiteral__Group__1"


    // $ANTLR start "rule__XListLiteral__Group__1__Impl"
    // InternalXcore.g:16103:1: rule__XListLiteral__Group__1__Impl : ( '#' ) ;
    public final void rule__XListLiteral__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:16107:1: ( ( '#' ) )
            // InternalXcore.g:16108:1: ( '#' )
            {
            // InternalXcore.g:16108:1: ( '#' )
            // InternalXcore.g:16109:1: '#'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXListLiteralAccess().getNumberSignKeyword_1()); 
            }
            match(input,96,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXListLiteralAccess().getNumberSignKeyword_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XListLiteral__Group__1__Impl"


    // $ANTLR start "rule__XListLiteral__Group__2"
    // InternalXcore.g:16122:1: rule__XListLiteral__Group__2 : rule__XListLiteral__Group__2__Impl rule__XListLiteral__Group__3 ;
    public final void rule__XListLiteral__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:16126:1: ( rule__XListLiteral__Group__2__Impl rule__XListLiteral__Group__3 )
            // InternalXcore.g:16127:2: rule__XListLiteral__Group__2__Impl rule__XListLiteral__Group__3
            {
            pushFollow(FollowSets000.FOLLOW_104);
            rule__XListLiteral__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XListLiteral__Group__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XListLiteral__Group__2"


    // $ANTLR start "rule__XListLiteral__Group__2__Impl"
    // InternalXcore.g:16134:1: rule__XListLiteral__Group__2__Impl : ( '[' ) ;
    public final void rule__XListLiteral__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:16138:1: ( ( '[' ) )
            // InternalXcore.g:16139:1: ( '[' )
            {
            // InternalXcore.g:16139:1: ( '[' )
            // InternalXcore.g:16140:1: '['
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXListLiteralAccess().getLeftSquareBracketKeyword_2()); 
            }
            match(input,92,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXListLiteralAccess().getLeftSquareBracketKeyword_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XListLiteral__Group__2__Impl"


    // $ANTLR start "rule__XListLiteral__Group__3"
    // InternalXcore.g:16153:1: rule__XListLiteral__Group__3 : rule__XListLiteral__Group__3__Impl rule__XListLiteral__Group__4 ;
    public final void rule__XListLiteral__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:16157:1: ( rule__XListLiteral__Group__3__Impl rule__XListLiteral__Group__4 )
            // InternalXcore.g:16158:2: rule__XListLiteral__Group__3__Impl rule__XListLiteral__Group__4
            {
            pushFollow(FollowSets000.FOLLOW_104);
            rule__XListLiteral__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XListLiteral__Group__4();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XListLiteral__Group__3"


    // $ANTLR start "rule__XListLiteral__Group__3__Impl"
    // InternalXcore.g:16165:1: rule__XListLiteral__Group__3__Impl : ( ( rule__XListLiteral__Group_3__0 )? ) ;
    public final void rule__XListLiteral__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:16169:1: ( ( ( rule__XListLiteral__Group_3__0 )? ) )
            // InternalXcore.g:16170:1: ( ( rule__XListLiteral__Group_3__0 )? )
            {
            // InternalXcore.g:16170:1: ( ( rule__XListLiteral__Group_3__0 )? )
            // InternalXcore.g:16171:1: ( rule__XListLiteral__Group_3__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXListLiteralAccess().getGroup_3()); 
            }
            // InternalXcore.g:16172:1: ( rule__XListLiteral__Group_3__0 )?
            int alt139=2;
            int LA139_0 = input.LA(1);

            if ( ((LA139_0>=RULE_INT && LA139_0<=RULE_STRING)||LA139_0==16||(LA139_0>=19 && LA139_0<=54)||LA139_0==66||LA139_0==73||LA139_0==77||(LA139_0>=82 && LA139_0<=83)||LA139_0==85||LA139_0==89||LA139_0==92||(LA139_0>=96 && LA139_0<=97)||LA139_0==99||(LA139_0>=103 && LA139_0<=111)||LA139_0==113||LA139_0==119) ) {
                alt139=1;
            }
            switch (alt139) {
                case 1 :
                    // InternalXcore.g:16172:2: rule__XListLiteral__Group_3__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XListLiteral__Group_3__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXListLiteralAccess().getGroup_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XListLiteral__Group__3__Impl"


    // $ANTLR start "rule__XListLiteral__Group__4"
    // InternalXcore.g:16182:1: rule__XListLiteral__Group__4 : rule__XListLiteral__Group__4__Impl ;
    public final void rule__XListLiteral__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:16186:1: ( rule__XListLiteral__Group__4__Impl )
            // InternalXcore.g:16187:2: rule__XListLiteral__Group__4__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XListLiteral__Group__4__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XListLiteral__Group__4"


    // $ANTLR start "rule__XListLiteral__Group__4__Impl"
    // InternalXcore.g:16193:1: rule__XListLiteral__Group__4__Impl : ( ']' ) ;
    public final void rule__XListLiteral__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:16197:1: ( ( ']' ) )
            // InternalXcore.g:16198:1: ( ']' )
            {
            // InternalXcore.g:16198:1: ( ']' )
            // InternalXcore.g:16199:1: ']'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXListLiteralAccess().getRightSquareBracketKeyword_4()); 
            }
            match(input,93,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXListLiteralAccess().getRightSquareBracketKeyword_4()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XListLiteral__Group__4__Impl"


    // $ANTLR start "rule__XListLiteral__Group_3__0"
    // InternalXcore.g:16222:1: rule__XListLiteral__Group_3__0 : rule__XListLiteral__Group_3__0__Impl rule__XListLiteral__Group_3__1 ;
    public final void rule__XListLiteral__Group_3__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:16226:1: ( rule__XListLiteral__Group_3__0__Impl rule__XListLiteral__Group_3__1 )
            // InternalXcore.g:16227:2: rule__XListLiteral__Group_3__0__Impl rule__XListLiteral__Group_3__1
            {
            pushFollow(FollowSets000.FOLLOW_38);
            rule__XListLiteral__Group_3__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XListLiteral__Group_3__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XListLiteral__Group_3__0"


    // $ANTLR start "rule__XListLiteral__Group_3__0__Impl"
    // InternalXcore.g:16234:1: rule__XListLiteral__Group_3__0__Impl : ( ( rule__XListLiteral__ElementsAssignment_3_0 ) ) ;
    public final void rule__XListLiteral__Group_3__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:16238:1: ( ( ( rule__XListLiteral__ElementsAssignment_3_0 ) ) )
            // InternalXcore.g:16239:1: ( ( rule__XListLiteral__ElementsAssignment_3_0 ) )
            {
            // InternalXcore.g:16239:1: ( ( rule__XListLiteral__ElementsAssignment_3_0 ) )
            // InternalXcore.g:16240:1: ( rule__XListLiteral__ElementsAssignment_3_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXListLiteralAccess().getElementsAssignment_3_0()); 
            }
            // InternalXcore.g:16241:1: ( rule__XListLiteral__ElementsAssignment_3_0 )
            // InternalXcore.g:16241:2: rule__XListLiteral__ElementsAssignment_3_0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XListLiteral__ElementsAssignment_3_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXListLiteralAccess().getElementsAssignment_3_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XListLiteral__Group_3__0__Impl"


    // $ANTLR start "rule__XListLiteral__Group_3__1"
    // InternalXcore.g:16251:1: rule__XListLiteral__Group_3__1 : rule__XListLiteral__Group_3__1__Impl ;
    public final void rule__XListLiteral__Group_3__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:16255:1: ( rule__XListLiteral__Group_3__1__Impl )
            // InternalXcore.g:16256:2: rule__XListLiteral__Group_3__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XListLiteral__Group_3__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XListLiteral__Group_3__1"


    // $ANTLR start "rule__XListLiteral__Group_3__1__Impl"
    // InternalXcore.g:16262:1: rule__XListLiteral__Group_3__1__Impl : ( ( rule__XListLiteral__Group_3_1__0 )* ) ;
    public final void rule__XListLiteral__Group_3__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:16266:1: ( ( ( rule__XListLiteral__Group_3_1__0 )* ) )
            // InternalXcore.g:16267:1: ( ( rule__XListLiteral__Group_3_1__0 )* )
            {
            // InternalXcore.g:16267:1: ( ( rule__XListLiteral__Group_3_1__0 )* )
            // InternalXcore.g:16268:1: ( rule__XListLiteral__Group_3_1__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXListLiteralAccess().getGroup_3_1()); 
            }
            // InternalXcore.g:16269:1: ( rule__XListLiteral__Group_3_1__0 )*
            loop140:
            do {
                int alt140=2;
                int LA140_0 = input.LA(1);

                if ( (LA140_0==87) ) {
                    alt140=1;
                }


                switch (alt140) {
            	case 1 :
            	    // InternalXcore.g:16269:2: rule__XListLiteral__Group_3_1__0
            	    {
            	    pushFollow(FollowSets000.FOLLOW_14);
            	    rule__XListLiteral__Group_3_1__0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop140;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXListLiteralAccess().getGroup_3_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XListLiteral__Group_3__1__Impl"


    // $ANTLR start "rule__XListLiteral__Group_3_1__0"
    // InternalXcore.g:16283:1: rule__XListLiteral__Group_3_1__0 : rule__XListLiteral__Group_3_1__0__Impl rule__XListLiteral__Group_3_1__1 ;
    public final void rule__XListLiteral__Group_3_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:16287:1: ( rule__XListLiteral__Group_3_1__0__Impl rule__XListLiteral__Group_3_1__1 )
            // InternalXcore.g:16288:2: rule__XListLiteral__Group_3_1__0__Impl rule__XListLiteral__Group_3_1__1
            {
            pushFollow(FollowSets000.FOLLOW_72);
            rule__XListLiteral__Group_3_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XListLiteral__Group_3_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XListLiteral__Group_3_1__0"


    // $ANTLR start "rule__XListLiteral__Group_3_1__0__Impl"
    // InternalXcore.g:16295:1: rule__XListLiteral__Group_3_1__0__Impl : ( ',' ) ;
    public final void rule__XListLiteral__Group_3_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:16299:1: ( ( ',' ) )
            // InternalXcore.g:16300:1: ( ',' )
            {
            // InternalXcore.g:16300:1: ( ',' )
            // InternalXcore.g:16301:1: ','
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXListLiteralAccess().getCommaKeyword_3_1_0()); 
            }
            match(input,87,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXListLiteralAccess().getCommaKeyword_3_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XListLiteral__Group_3_1__0__Impl"


    // $ANTLR start "rule__XListLiteral__Group_3_1__1"
    // InternalXcore.g:16314:1: rule__XListLiteral__Group_3_1__1 : rule__XListLiteral__Group_3_1__1__Impl ;
    public final void rule__XListLiteral__Group_3_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:16318:1: ( rule__XListLiteral__Group_3_1__1__Impl )
            // InternalXcore.g:16319:2: rule__XListLiteral__Group_3_1__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XListLiteral__Group_3_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XListLiteral__Group_3_1__1"


    // $ANTLR start "rule__XListLiteral__Group_3_1__1__Impl"
    // InternalXcore.g:16325:1: rule__XListLiteral__Group_3_1__1__Impl : ( ( rule__XListLiteral__ElementsAssignment_3_1_1 ) ) ;
    public final void rule__XListLiteral__Group_3_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:16329:1: ( ( ( rule__XListLiteral__ElementsAssignment_3_1_1 ) ) )
            // InternalXcore.g:16330:1: ( ( rule__XListLiteral__ElementsAssignment_3_1_1 ) )
            {
            // InternalXcore.g:16330:1: ( ( rule__XListLiteral__ElementsAssignment_3_1_1 ) )
            // InternalXcore.g:16331:1: ( rule__XListLiteral__ElementsAssignment_3_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXListLiteralAccess().getElementsAssignment_3_1_1()); 
            }
            // InternalXcore.g:16332:1: ( rule__XListLiteral__ElementsAssignment_3_1_1 )
            // InternalXcore.g:16332:2: rule__XListLiteral__ElementsAssignment_3_1_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XListLiteral__ElementsAssignment_3_1_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXListLiteralAccess().getElementsAssignment_3_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XListLiteral__Group_3_1__1__Impl"


    // $ANTLR start "rule__XClosure__Group__0"
    // InternalXcore.g:16346:1: rule__XClosure__Group__0 : rule__XClosure__Group__0__Impl rule__XClosure__Group__1 ;
    public final void rule__XClosure__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:16350:1: ( rule__XClosure__Group__0__Impl rule__XClosure__Group__1 )
            // InternalXcore.g:16351:2: rule__XClosure__Group__0__Impl rule__XClosure__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_105);
            rule__XClosure__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XClosure__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XClosure__Group__0"


    // $ANTLR start "rule__XClosure__Group__0__Impl"
    // InternalXcore.g:16358:1: rule__XClosure__Group__0__Impl : ( ( rule__XClosure__Group_0__0 ) ) ;
    public final void rule__XClosure__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:16362:1: ( ( ( rule__XClosure__Group_0__0 ) ) )
            // InternalXcore.g:16363:1: ( ( rule__XClosure__Group_0__0 ) )
            {
            // InternalXcore.g:16363:1: ( ( rule__XClosure__Group_0__0 ) )
            // InternalXcore.g:16364:1: ( rule__XClosure__Group_0__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClosureAccess().getGroup_0()); 
            }
            // InternalXcore.g:16365:1: ( rule__XClosure__Group_0__0 )
            // InternalXcore.g:16365:2: rule__XClosure__Group_0__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XClosure__Group_0__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXClosureAccess().getGroup_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XClosure__Group__0__Impl"


    // $ANTLR start "rule__XClosure__Group__1"
    // InternalXcore.g:16375:1: rule__XClosure__Group__1 : rule__XClosure__Group__1__Impl rule__XClosure__Group__2 ;
    public final void rule__XClosure__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:16379:1: ( rule__XClosure__Group__1__Impl rule__XClosure__Group__2 )
            // InternalXcore.g:16380:2: rule__XClosure__Group__1__Impl rule__XClosure__Group__2
            {
            pushFollow(FollowSets000.FOLLOW_105);
            rule__XClosure__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XClosure__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XClosure__Group__1"


    // $ANTLR start "rule__XClosure__Group__1__Impl"
    // InternalXcore.g:16387:1: rule__XClosure__Group__1__Impl : ( ( rule__XClosure__Group_1__0 )? ) ;
    public final void rule__XClosure__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:16391:1: ( ( ( rule__XClosure__Group_1__0 )? ) )
            // InternalXcore.g:16392:1: ( ( rule__XClosure__Group_1__0 )? )
            {
            // InternalXcore.g:16392:1: ( ( rule__XClosure__Group_1__0 )? )
            // InternalXcore.g:16393:1: ( rule__XClosure__Group_1__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClosureAccess().getGroup_1()); 
            }
            // InternalXcore.g:16394:1: ( rule__XClosure__Group_1__0 )?
            int alt141=2;
            alt141 = dfa141.predict(input);
            switch (alt141) {
                case 1 :
                    // InternalXcore.g:16394:2: rule__XClosure__Group_1__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XClosure__Group_1__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXClosureAccess().getGroup_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XClosure__Group__1__Impl"


    // $ANTLR start "rule__XClosure__Group__2"
    // InternalXcore.g:16404:1: rule__XClosure__Group__2 : rule__XClosure__Group__2__Impl rule__XClosure__Group__3 ;
    public final void rule__XClosure__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:16408:1: ( rule__XClosure__Group__2__Impl rule__XClosure__Group__3 )
            // InternalXcore.g:16409:2: rule__XClosure__Group__2__Impl rule__XClosure__Group__3
            {
            pushFollow(FollowSets000.FOLLOW_106);
            rule__XClosure__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XClosure__Group__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XClosure__Group__2"


    // $ANTLR start "rule__XClosure__Group__2__Impl"
    // InternalXcore.g:16416:1: rule__XClosure__Group__2__Impl : ( ( rule__XClosure__ExpressionAssignment_2 ) ) ;
    public final void rule__XClosure__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:16420:1: ( ( ( rule__XClosure__ExpressionAssignment_2 ) ) )
            // InternalXcore.g:16421:1: ( ( rule__XClosure__ExpressionAssignment_2 ) )
            {
            // InternalXcore.g:16421:1: ( ( rule__XClosure__ExpressionAssignment_2 ) )
            // InternalXcore.g:16422:1: ( rule__XClosure__ExpressionAssignment_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClosureAccess().getExpressionAssignment_2()); 
            }
            // InternalXcore.g:16423:1: ( rule__XClosure__ExpressionAssignment_2 )
            // InternalXcore.g:16423:2: rule__XClosure__ExpressionAssignment_2
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XClosure__ExpressionAssignment_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXClosureAccess().getExpressionAssignment_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XClosure__Group__2__Impl"


    // $ANTLR start "rule__XClosure__Group__3"
    // InternalXcore.g:16433:1: rule__XClosure__Group__3 : rule__XClosure__Group__3__Impl ;
    public final void rule__XClosure__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:16437:1: ( rule__XClosure__Group__3__Impl )
            // InternalXcore.g:16438:2: rule__XClosure__Group__3__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XClosure__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XClosure__Group__3"


    // $ANTLR start "rule__XClosure__Group__3__Impl"
    // InternalXcore.g:16444:1: rule__XClosure__Group__3__Impl : ( ']' ) ;
    public final void rule__XClosure__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:16448:1: ( ( ']' ) )
            // InternalXcore.g:16449:1: ( ']' )
            {
            // InternalXcore.g:16449:1: ( ']' )
            // InternalXcore.g:16450:1: ']'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClosureAccess().getRightSquareBracketKeyword_3()); 
            }
            match(input,93,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXClosureAccess().getRightSquareBracketKeyword_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XClosure__Group__3__Impl"


    // $ANTLR start "rule__XClosure__Group_0__0"
    // InternalXcore.g:16471:1: rule__XClosure__Group_0__0 : rule__XClosure__Group_0__0__Impl ;
    public final void rule__XClosure__Group_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:16475:1: ( rule__XClosure__Group_0__0__Impl )
            // InternalXcore.g:16476:2: rule__XClosure__Group_0__0__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XClosure__Group_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XClosure__Group_0__0"


    // $ANTLR start "rule__XClosure__Group_0__0__Impl"
    // InternalXcore.g:16482:1: rule__XClosure__Group_0__0__Impl : ( ( rule__XClosure__Group_0_0__0 ) ) ;
    public final void rule__XClosure__Group_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:16486:1: ( ( ( rule__XClosure__Group_0_0__0 ) ) )
            // InternalXcore.g:16487:1: ( ( rule__XClosure__Group_0_0__0 ) )
            {
            // InternalXcore.g:16487:1: ( ( rule__XClosure__Group_0_0__0 ) )
            // InternalXcore.g:16488:1: ( rule__XClosure__Group_0_0__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClosureAccess().getGroup_0_0()); 
            }
            // InternalXcore.g:16489:1: ( rule__XClosure__Group_0_0__0 )
            // InternalXcore.g:16489:2: rule__XClosure__Group_0_0__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XClosure__Group_0_0__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXClosureAccess().getGroup_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XClosure__Group_0__0__Impl"


    // $ANTLR start "rule__XClosure__Group_0_0__0"
    // InternalXcore.g:16501:1: rule__XClosure__Group_0_0__0 : rule__XClosure__Group_0_0__0__Impl rule__XClosure__Group_0_0__1 ;
    public final void rule__XClosure__Group_0_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:16505:1: ( rule__XClosure__Group_0_0__0__Impl rule__XClosure__Group_0_0__1 )
            // InternalXcore.g:16506:2: rule__XClosure__Group_0_0__0__Impl rule__XClosure__Group_0_0__1
            {
            pushFollow(FollowSets000.FOLLOW_103);
            rule__XClosure__Group_0_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XClosure__Group_0_0__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XClosure__Group_0_0__0"


    // $ANTLR start "rule__XClosure__Group_0_0__0__Impl"
    // InternalXcore.g:16513:1: rule__XClosure__Group_0_0__0__Impl : ( () ) ;
    public final void rule__XClosure__Group_0_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:16517:1: ( ( () ) )
            // InternalXcore.g:16518:1: ( () )
            {
            // InternalXcore.g:16518:1: ( () )
            // InternalXcore.g:16519:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClosureAccess().getXClosureAction_0_0_0()); 
            }
            // InternalXcore.g:16520:1: ()
            // InternalXcore.g:16522:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXClosureAccess().getXClosureAction_0_0_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XClosure__Group_0_0__0__Impl"


    // $ANTLR start "rule__XClosure__Group_0_0__1"
    // InternalXcore.g:16532:1: rule__XClosure__Group_0_0__1 : rule__XClosure__Group_0_0__1__Impl ;
    public final void rule__XClosure__Group_0_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:16536:1: ( rule__XClosure__Group_0_0__1__Impl )
            // InternalXcore.g:16537:2: rule__XClosure__Group_0_0__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XClosure__Group_0_0__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XClosure__Group_0_0__1"


    // $ANTLR start "rule__XClosure__Group_0_0__1__Impl"
    // InternalXcore.g:16543:1: rule__XClosure__Group_0_0__1__Impl : ( '[' ) ;
    public final void rule__XClosure__Group_0_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:16547:1: ( ( '[' ) )
            // InternalXcore.g:16548:1: ( '[' )
            {
            // InternalXcore.g:16548:1: ( '[' )
            // InternalXcore.g:16549:1: '['
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClosureAccess().getLeftSquareBracketKeyword_0_0_1()); 
            }
            match(input,92,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXClosureAccess().getLeftSquareBracketKeyword_0_0_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XClosure__Group_0_0__1__Impl"


    // $ANTLR start "rule__XClosure__Group_1__0"
    // InternalXcore.g:16566:1: rule__XClosure__Group_1__0 : rule__XClosure__Group_1__0__Impl ;
    public final void rule__XClosure__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:16570:1: ( rule__XClosure__Group_1__0__Impl )
            // InternalXcore.g:16571:2: rule__XClosure__Group_1__0__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XClosure__Group_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XClosure__Group_1__0"


    // $ANTLR start "rule__XClosure__Group_1__0__Impl"
    // InternalXcore.g:16577:1: rule__XClosure__Group_1__0__Impl : ( ( rule__XClosure__Group_1_0__0 ) ) ;
    public final void rule__XClosure__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:16581:1: ( ( ( rule__XClosure__Group_1_0__0 ) ) )
            // InternalXcore.g:16582:1: ( ( rule__XClosure__Group_1_0__0 ) )
            {
            // InternalXcore.g:16582:1: ( ( rule__XClosure__Group_1_0__0 ) )
            // InternalXcore.g:16583:1: ( rule__XClosure__Group_1_0__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClosureAccess().getGroup_1_0()); 
            }
            // InternalXcore.g:16584:1: ( rule__XClosure__Group_1_0__0 )
            // InternalXcore.g:16584:2: rule__XClosure__Group_1_0__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XClosure__Group_1_0__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXClosureAccess().getGroup_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XClosure__Group_1__0__Impl"


    // $ANTLR start "rule__XClosure__Group_1_0__0"
    // InternalXcore.g:16596:1: rule__XClosure__Group_1_0__0 : rule__XClosure__Group_1_0__0__Impl rule__XClosure__Group_1_0__1 ;
    public final void rule__XClosure__Group_1_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:16600:1: ( rule__XClosure__Group_1_0__0__Impl rule__XClosure__Group_1_0__1 )
            // InternalXcore.g:16601:2: rule__XClosure__Group_1_0__0__Impl rule__XClosure__Group_1_0__1
            {
            pushFollow(FollowSets000.FOLLOW_107);
            rule__XClosure__Group_1_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XClosure__Group_1_0__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XClosure__Group_1_0__0"


    // $ANTLR start "rule__XClosure__Group_1_0__0__Impl"
    // InternalXcore.g:16608:1: rule__XClosure__Group_1_0__0__Impl : ( ( rule__XClosure__Group_1_0_0__0 )? ) ;
    public final void rule__XClosure__Group_1_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:16612:1: ( ( ( rule__XClosure__Group_1_0_0__0 )? ) )
            // InternalXcore.g:16613:1: ( ( rule__XClosure__Group_1_0_0__0 )? )
            {
            // InternalXcore.g:16613:1: ( ( rule__XClosure__Group_1_0_0__0 )? )
            // InternalXcore.g:16614:1: ( rule__XClosure__Group_1_0_0__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClosureAccess().getGroup_1_0_0()); 
            }
            // InternalXcore.g:16615:1: ( rule__XClosure__Group_1_0_0__0 )?
            int alt142=2;
            int LA142_0 = input.LA(1);

            if ( (LA142_0==RULE_ID||LA142_0==16||(LA142_0>=20 && LA142_0<=23)||LA142_0==70||LA142_0==85) ) {
                alt142=1;
            }
            switch (alt142) {
                case 1 :
                    // InternalXcore.g:16615:2: rule__XClosure__Group_1_0_0__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XClosure__Group_1_0_0__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXClosureAccess().getGroup_1_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XClosure__Group_1_0__0__Impl"


    // $ANTLR start "rule__XClosure__Group_1_0__1"
    // InternalXcore.g:16625:1: rule__XClosure__Group_1_0__1 : rule__XClosure__Group_1_0__1__Impl ;
    public final void rule__XClosure__Group_1_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:16629:1: ( rule__XClosure__Group_1_0__1__Impl )
            // InternalXcore.g:16630:2: rule__XClosure__Group_1_0__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XClosure__Group_1_0__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XClosure__Group_1_0__1"


    // $ANTLR start "rule__XClosure__Group_1_0__1__Impl"
    // InternalXcore.g:16636:1: rule__XClosure__Group_1_0__1__Impl : ( ( rule__XClosure__ExplicitSyntaxAssignment_1_0_1 ) ) ;
    public final void rule__XClosure__Group_1_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:16640:1: ( ( ( rule__XClosure__ExplicitSyntaxAssignment_1_0_1 ) ) )
            // InternalXcore.g:16641:1: ( ( rule__XClosure__ExplicitSyntaxAssignment_1_0_1 ) )
            {
            // InternalXcore.g:16641:1: ( ( rule__XClosure__ExplicitSyntaxAssignment_1_0_1 ) )
            // InternalXcore.g:16642:1: ( rule__XClosure__ExplicitSyntaxAssignment_1_0_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClosureAccess().getExplicitSyntaxAssignment_1_0_1()); 
            }
            // InternalXcore.g:16643:1: ( rule__XClosure__ExplicitSyntaxAssignment_1_0_1 )
            // InternalXcore.g:16643:2: rule__XClosure__ExplicitSyntaxAssignment_1_0_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XClosure__ExplicitSyntaxAssignment_1_0_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXClosureAccess().getExplicitSyntaxAssignment_1_0_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XClosure__Group_1_0__1__Impl"


    // $ANTLR start "rule__XClosure__Group_1_0_0__0"
    // InternalXcore.g:16657:1: rule__XClosure__Group_1_0_0__0 : rule__XClosure__Group_1_0_0__0__Impl rule__XClosure__Group_1_0_0__1 ;
    public final void rule__XClosure__Group_1_0_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:16661:1: ( rule__XClosure__Group_1_0_0__0__Impl rule__XClosure__Group_1_0_0__1 )
            // InternalXcore.g:16662:2: rule__XClosure__Group_1_0_0__0__Impl rule__XClosure__Group_1_0_0__1
            {
            pushFollow(FollowSets000.FOLLOW_38);
            rule__XClosure__Group_1_0_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XClosure__Group_1_0_0__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XClosure__Group_1_0_0__0"


    // $ANTLR start "rule__XClosure__Group_1_0_0__0__Impl"
    // InternalXcore.g:16669:1: rule__XClosure__Group_1_0_0__0__Impl : ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 ) ) ;
    public final void rule__XClosure__Group_1_0_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:16673:1: ( ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 ) ) )
            // InternalXcore.g:16674:1: ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 ) )
            {
            // InternalXcore.g:16674:1: ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 ) )
            // InternalXcore.g:16675:1: ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClosureAccess().getDeclaredFormalParametersAssignment_1_0_0_0()); 
            }
            // InternalXcore.g:16676:1: ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 )
            // InternalXcore.g:16676:2: rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXClosureAccess().getDeclaredFormalParametersAssignment_1_0_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XClosure__Group_1_0_0__0__Impl"


    // $ANTLR start "rule__XClosure__Group_1_0_0__1"
    // InternalXcore.g:16686:1: rule__XClosure__Group_1_0_0__1 : rule__XClosure__Group_1_0_0__1__Impl ;
    public final void rule__XClosure__Group_1_0_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:16690:1: ( rule__XClosure__Group_1_0_0__1__Impl )
            // InternalXcore.g:16691:2: rule__XClosure__Group_1_0_0__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XClosure__Group_1_0_0__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XClosure__Group_1_0_0__1"


    // $ANTLR start "rule__XClosure__Group_1_0_0__1__Impl"
    // InternalXcore.g:16697:1: rule__XClosure__Group_1_0_0__1__Impl : ( ( rule__XClosure__Group_1_0_0_1__0 )* ) ;
    public final void rule__XClosure__Group_1_0_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:16701:1: ( ( ( rule__XClosure__Group_1_0_0_1__0 )* ) )
            // InternalXcore.g:16702:1: ( ( rule__XClosure__Group_1_0_0_1__0 )* )
            {
            // InternalXcore.g:16702:1: ( ( rule__XClosure__Group_1_0_0_1__0 )* )
            // InternalXcore.g:16703:1: ( rule__XClosure__Group_1_0_0_1__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClosureAccess().getGroup_1_0_0_1()); 
            }
            // InternalXcore.g:16704:1: ( rule__XClosure__Group_1_0_0_1__0 )*
            loop143:
            do {
                int alt143=2;
                int LA143_0 = input.LA(1);

                if ( (LA143_0==87) ) {
                    alt143=1;
                }


                switch (alt143) {
            	case 1 :
            	    // InternalXcore.g:16704:2: rule__XClosure__Group_1_0_0_1__0
            	    {
            	    pushFollow(FollowSets000.FOLLOW_14);
            	    rule__XClosure__Group_1_0_0_1__0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop143;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXClosureAccess().getGroup_1_0_0_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XClosure__Group_1_0_0__1__Impl"


    // $ANTLR start "rule__XClosure__Group_1_0_0_1__0"
    // InternalXcore.g:16718:1: rule__XClosure__Group_1_0_0_1__0 : rule__XClosure__Group_1_0_0_1__0__Impl rule__XClosure__Group_1_0_0_1__1 ;
    public final void rule__XClosure__Group_1_0_0_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:16722:1: ( rule__XClosure__Group_1_0_0_1__0__Impl rule__XClosure__Group_1_0_0_1__1 )
            // InternalXcore.g:16723:2: rule__XClosure__Group_1_0_0_1__0__Impl rule__XClosure__Group_1_0_0_1__1
            {
            pushFollow(FollowSets000.FOLLOW_22);
            rule__XClosure__Group_1_0_0_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XClosure__Group_1_0_0_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XClosure__Group_1_0_0_1__0"


    // $ANTLR start "rule__XClosure__Group_1_0_0_1__0__Impl"
    // InternalXcore.g:16730:1: rule__XClosure__Group_1_0_0_1__0__Impl : ( ',' ) ;
    public final void rule__XClosure__Group_1_0_0_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:16734:1: ( ( ',' ) )
            // InternalXcore.g:16735:1: ( ',' )
            {
            // InternalXcore.g:16735:1: ( ',' )
            // InternalXcore.g:16736:1: ','
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClosureAccess().getCommaKeyword_1_0_0_1_0()); 
            }
            match(input,87,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXClosureAccess().getCommaKeyword_1_0_0_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XClosure__Group_1_0_0_1__0__Impl"


    // $ANTLR start "rule__XClosure__Group_1_0_0_1__1"
    // InternalXcore.g:16749:1: rule__XClosure__Group_1_0_0_1__1 : rule__XClosure__Group_1_0_0_1__1__Impl ;
    public final void rule__XClosure__Group_1_0_0_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:16753:1: ( rule__XClosure__Group_1_0_0_1__1__Impl )
            // InternalXcore.g:16754:2: rule__XClosure__Group_1_0_0_1__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XClosure__Group_1_0_0_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XClosure__Group_1_0_0_1__1"


    // $ANTLR start "rule__XClosure__Group_1_0_0_1__1__Impl"
    // InternalXcore.g:16760:1: rule__XClosure__Group_1_0_0_1__1__Impl : ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 ) ) ;
    public final void rule__XClosure__Group_1_0_0_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:16764:1: ( ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 ) ) )
            // InternalXcore.g:16765:1: ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 ) )
            {
            // InternalXcore.g:16765:1: ( ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 ) )
            // InternalXcore.g:16766:1: ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClosureAccess().getDeclaredFormalParametersAssignment_1_0_0_1_1()); 
            }
            // InternalXcore.g:16767:1: ( rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 )
            // InternalXcore.g:16767:2: rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXClosureAccess().getDeclaredFormalParametersAssignment_1_0_0_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XClosure__Group_1_0_0_1__1__Impl"


    // $ANTLR start "rule__XExpressionInClosure__Group__0"
    // InternalXcore.g:16781:1: rule__XExpressionInClosure__Group__0 : rule__XExpressionInClosure__Group__0__Impl rule__XExpressionInClosure__Group__1 ;
    public final void rule__XExpressionInClosure__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:16785:1: ( rule__XExpressionInClosure__Group__0__Impl rule__XExpressionInClosure__Group__1 )
            // InternalXcore.g:16786:2: rule__XExpressionInClosure__Group__0__Impl rule__XExpressionInClosure__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_105);
            rule__XExpressionInClosure__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XExpressionInClosure__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XExpressionInClosure__Group__0"


    // $ANTLR start "rule__XExpressionInClosure__Group__0__Impl"
    // InternalXcore.g:16793:1: rule__XExpressionInClosure__Group__0__Impl : ( () ) ;
    public final void rule__XExpressionInClosure__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:16797:1: ( ( () ) )
            // InternalXcore.g:16798:1: ( () )
            {
            // InternalXcore.g:16798:1: ( () )
            // InternalXcore.g:16799:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXExpressionInClosureAccess().getXBlockExpressionAction_0()); 
            }
            // InternalXcore.g:16800:1: ()
            // InternalXcore.g:16802:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXExpressionInClosureAccess().getXBlockExpressionAction_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XExpressionInClosure__Group__0__Impl"


    // $ANTLR start "rule__XExpressionInClosure__Group__1"
    // InternalXcore.g:16812:1: rule__XExpressionInClosure__Group__1 : rule__XExpressionInClosure__Group__1__Impl ;
    public final void rule__XExpressionInClosure__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:16816:1: ( rule__XExpressionInClosure__Group__1__Impl )
            // InternalXcore.g:16817:2: rule__XExpressionInClosure__Group__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XExpressionInClosure__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XExpressionInClosure__Group__1"


    // $ANTLR start "rule__XExpressionInClosure__Group__1__Impl"
    // InternalXcore.g:16823:1: rule__XExpressionInClosure__Group__1__Impl : ( ( rule__XExpressionInClosure__Group_1__0 )* ) ;
    public final void rule__XExpressionInClosure__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:16827:1: ( ( ( rule__XExpressionInClosure__Group_1__0 )* ) )
            // InternalXcore.g:16828:1: ( ( rule__XExpressionInClosure__Group_1__0 )* )
            {
            // InternalXcore.g:16828:1: ( ( rule__XExpressionInClosure__Group_1__0 )* )
            // InternalXcore.g:16829:1: ( rule__XExpressionInClosure__Group_1__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXExpressionInClosureAccess().getGroup_1()); 
            }
            // InternalXcore.g:16830:1: ( rule__XExpressionInClosure__Group_1__0 )*
            loop144:
            do {
                int alt144=2;
                int LA144_0 = input.LA(1);

                if ( ((LA144_0>=RULE_INT && LA144_0<=RULE_STRING)||LA144_0==16||(LA144_0>=19 && LA144_0<=54)||LA144_0==66||LA144_0==73||LA144_0==77||(LA144_0>=81 && LA144_0<=83)||LA144_0==85||LA144_0==89||LA144_0==92||(LA144_0>=96 && LA144_0<=97)||LA144_0==99||(LA144_0>=103 && LA144_0<=111)||LA144_0==113||(LA144_0>=118 && LA144_0<=119)) ) {
                    alt144=1;
                }


                switch (alt144) {
            	case 1 :
            	    // InternalXcore.g:16830:2: rule__XExpressionInClosure__Group_1__0
            	    {
            	    pushFollow(FollowSets000.FOLLOW_64);
            	    rule__XExpressionInClosure__Group_1__0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop144;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXExpressionInClosureAccess().getGroup_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XExpressionInClosure__Group__1__Impl"


    // $ANTLR start "rule__XExpressionInClosure__Group_1__0"
    // InternalXcore.g:16844:1: rule__XExpressionInClosure__Group_1__0 : rule__XExpressionInClosure__Group_1__0__Impl rule__XExpressionInClosure__Group_1__1 ;
    public final void rule__XExpressionInClosure__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:16848:1: ( rule__XExpressionInClosure__Group_1__0__Impl rule__XExpressionInClosure__Group_1__1 )
            // InternalXcore.g:16849:2: rule__XExpressionInClosure__Group_1__0__Impl rule__XExpressionInClosure__Group_1__1
            {
            pushFollow(FollowSets000.FOLLOW_65);
            rule__XExpressionInClosure__Group_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XExpressionInClosure__Group_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XExpressionInClosure__Group_1__0"


    // $ANTLR start "rule__XExpressionInClosure__Group_1__0__Impl"
    // InternalXcore.g:16856:1: rule__XExpressionInClosure__Group_1__0__Impl : ( ( rule__XExpressionInClosure__ExpressionsAssignment_1_0 ) ) ;
    public final void rule__XExpressionInClosure__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:16860:1: ( ( ( rule__XExpressionInClosure__ExpressionsAssignment_1_0 ) ) )
            // InternalXcore.g:16861:1: ( ( rule__XExpressionInClosure__ExpressionsAssignment_1_0 ) )
            {
            // InternalXcore.g:16861:1: ( ( rule__XExpressionInClosure__ExpressionsAssignment_1_0 ) )
            // InternalXcore.g:16862:1: ( rule__XExpressionInClosure__ExpressionsAssignment_1_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXExpressionInClosureAccess().getExpressionsAssignment_1_0()); 
            }
            // InternalXcore.g:16863:1: ( rule__XExpressionInClosure__ExpressionsAssignment_1_0 )
            // InternalXcore.g:16863:2: rule__XExpressionInClosure__ExpressionsAssignment_1_0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XExpressionInClosure__ExpressionsAssignment_1_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXExpressionInClosureAccess().getExpressionsAssignment_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XExpressionInClosure__Group_1__0__Impl"


    // $ANTLR start "rule__XExpressionInClosure__Group_1__1"
    // InternalXcore.g:16873:1: rule__XExpressionInClosure__Group_1__1 : rule__XExpressionInClosure__Group_1__1__Impl ;
    public final void rule__XExpressionInClosure__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:16877:1: ( rule__XExpressionInClosure__Group_1__1__Impl )
            // InternalXcore.g:16878:2: rule__XExpressionInClosure__Group_1__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XExpressionInClosure__Group_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XExpressionInClosure__Group_1__1"


    // $ANTLR start "rule__XExpressionInClosure__Group_1__1__Impl"
    // InternalXcore.g:16884:1: rule__XExpressionInClosure__Group_1__1__Impl : ( ( ';' )? ) ;
    public final void rule__XExpressionInClosure__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:16888:1: ( ( ( ';' )? ) )
            // InternalXcore.g:16889:1: ( ( ';' )? )
            {
            // InternalXcore.g:16889:1: ( ( ';' )? )
            // InternalXcore.g:16890:1: ( ';' )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXExpressionInClosureAccess().getSemicolonKeyword_1_1()); 
            }
            // InternalXcore.g:16891:1: ( ';' )?
            int alt145=2;
            int LA145_0 = input.LA(1);

            if ( (LA145_0==94) ) {
                alt145=1;
            }
            switch (alt145) {
                case 1 :
                    // InternalXcore.g:16892:2: ';'
                    {
                    match(input,94,FollowSets000.FOLLOW_2); if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXExpressionInClosureAccess().getSemicolonKeyword_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XExpressionInClosure__Group_1__1__Impl"


    // $ANTLR start "rule__XShortClosure__Group__0"
    // InternalXcore.g:16907:1: rule__XShortClosure__Group__0 : rule__XShortClosure__Group__0__Impl rule__XShortClosure__Group__1 ;
    public final void rule__XShortClosure__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:16911:1: ( rule__XShortClosure__Group__0__Impl rule__XShortClosure__Group__1 )
            // InternalXcore.g:16912:2: rule__XShortClosure__Group__0__Impl rule__XShortClosure__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_72);
            rule__XShortClosure__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XShortClosure__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XShortClosure__Group__0"


    // $ANTLR start "rule__XShortClosure__Group__0__Impl"
    // InternalXcore.g:16919:1: rule__XShortClosure__Group__0__Impl : ( ( rule__XShortClosure__Group_0__0 ) ) ;
    public final void rule__XShortClosure__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:16923:1: ( ( ( rule__XShortClosure__Group_0__0 ) ) )
            // InternalXcore.g:16924:1: ( ( rule__XShortClosure__Group_0__0 ) )
            {
            // InternalXcore.g:16924:1: ( ( rule__XShortClosure__Group_0__0 ) )
            // InternalXcore.g:16925:1: ( rule__XShortClosure__Group_0__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXShortClosureAccess().getGroup_0()); 
            }
            // InternalXcore.g:16926:1: ( rule__XShortClosure__Group_0__0 )
            // InternalXcore.g:16926:2: rule__XShortClosure__Group_0__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XShortClosure__Group_0__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXShortClosureAccess().getGroup_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XShortClosure__Group__0__Impl"


    // $ANTLR start "rule__XShortClosure__Group__1"
    // InternalXcore.g:16936:1: rule__XShortClosure__Group__1 : rule__XShortClosure__Group__1__Impl ;
    public final void rule__XShortClosure__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:16940:1: ( rule__XShortClosure__Group__1__Impl )
            // InternalXcore.g:16941:2: rule__XShortClosure__Group__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XShortClosure__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XShortClosure__Group__1"


    // $ANTLR start "rule__XShortClosure__Group__1__Impl"
    // InternalXcore.g:16947:1: rule__XShortClosure__Group__1__Impl : ( ( rule__XShortClosure__ExpressionAssignment_1 ) ) ;
    public final void rule__XShortClosure__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:16951:1: ( ( ( rule__XShortClosure__ExpressionAssignment_1 ) ) )
            // InternalXcore.g:16952:1: ( ( rule__XShortClosure__ExpressionAssignment_1 ) )
            {
            // InternalXcore.g:16952:1: ( ( rule__XShortClosure__ExpressionAssignment_1 ) )
            // InternalXcore.g:16953:1: ( rule__XShortClosure__ExpressionAssignment_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXShortClosureAccess().getExpressionAssignment_1()); 
            }
            // InternalXcore.g:16954:1: ( rule__XShortClosure__ExpressionAssignment_1 )
            // InternalXcore.g:16954:2: rule__XShortClosure__ExpressionAssignment_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XShortClosure__ExpressionAssignment_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXShortClosureAccess().getExpressionAssignment_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XShortClosure__Group__1__Impl"


    // $ANTLR start "rule__XShortClosure__Group_0__0"
    // InternalXcore.g:16968:1: rule__XShortClosure__Group_0__0 : rule__XShortClosure__Group_0__0__Impl ;
    public final void rule__XShortClosure__Group_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:16972:1: ( rule__XShortClosure__Group_0__0__Impl )
            // InternalXcore.g:16973:2: rule__XShortClosure__Group_0__0__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XShortClosure__Group_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XShortClosure__Group_0__0"


    // $ANTLR start "rule__XShortClosure__Group_0__0__Impl"
    // InternalXcore.g:16979:1: rule__XShortClosure__Group_0__0__Impl : ( ( rule__XShortClosure__Group_0_0__0 ) ) ;
    public final void rule__XShortClosure__Group_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:16983:1: ( ( ( rule__XShortClosure__Group_0_0__0 ) ) )
            // InternalXcore.g:16984:1: ( ( rule__XShortClosure__Group_0_0__0 ) )
            {
            // InternalXcore.g:16984:1: ( ( rule__XShortClosure__Group_0_0__0 ) )
            // InternalXcore.g:16985:1: ( rule__XShortClosure__Group_0_0__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXShortClosureAccess().getGroup_0_0()); 
            }
            // InternalXcore.g:16986:1: ( rule__XShortClosure__Group_0_0__0 )
            // InternalXcore.g:16986:2: rule__XShortClosure__Group_0_0__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XShortClosure__Group_0_0__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXShortClosureAccess().getGroup_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XShortClosure__Group_0__0__Impl"


    // $ANTLR start "rule__XShortClosure__Group_0_0__0"
    // InternalXcore.g:16998:1: rule__XShortClosure__Group_0_0__0 : rule__XShortClosure__Group_0_0__0__Impl rule__XShortClosure__Group_0_0__1 ;
    public final void rule__XShortClosure__Group_0_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:17002:1: ( rule__XShortClosure__Group_0_0__0__Impl rule__XShortClosure__Group_0_0__1 )
            // InternalXcore.g:17003:2: rule__XShortClosure__Group_0_0__0__Impl rule__XShortClosure__Group_0_0__1
            {
            pushFollow(FollowSets000.FOLLOW_107);
            rule__XShortClosure__Group_0_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XShortClosure__Group_0_0__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XShortClosure__Group_0_0__0"


    // $ANTLR start "rule__XShortClosure__Group_0_0__0__Impl"
    // InternalXcore.g:17010:1: rule__XShortClosure__Group_0_0__0__Impl : ( () ) ;
    public final void rule__XShortClosure__Group_0_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:17014:1: ( ( () ) )
            // InternalXcore.g:17015:1: ( () )
            {
            // InternalXcore.g:17015:1: ( () )
            // InternalXcore.g:17016:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXShortClosureAccess().getXClosureAction_0_0_0()); 
            }
            // InternalXcore.g:17017:1: ()
            // InternalXcore.g:17019:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXShortClosureAccess().getXClosureAction_0_0_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XShortClosure__Group_0_0__0__Impl"


    // $ANTLR start "rule__XShortClosure__Group_0_0__1"
    // InternalXcore.g:17029:1: rule__XShortClosure__Group_0_0__1 : rule__XShortClosure__Group_0_0__1__Impl rule__XShortClosure__Group_0_0__2 ;
    public final void rule__XShortClosure__Group_0_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:17033:1: ( rule__XShortClosure__Group_0_0__1__Impl rule__XShortClosure__Group_0_0__2 )
            // InternalXcore.g:17034:2: rule__XShortClosure__Group_0_0__1__Impl rule__XShortClosure__Group_0_0__2
            {
            pushFollow(FollowSets000.FOLLOW_107);
            rule__XShortClosure__Group_0_0__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XShortClosure__Group_0_0__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XShortClosure__Group_0_0__1"


    // $ANTLR start "rule__XShortClosure__Group_0_0__1__Impl"
    // InternalXcore.g:17041:1: rule__XShortClosure__Group_0_0__1__Impl : ( ( rule__XShortClosure__Group_0_0_1__0 )? ) ;
    public final void rule__XShortClosure__Group_0_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:17045:1: ( ( ( rule__XShortClosure__Group_0_0_1__0 )? ) )
            // InternalXcore.g:17046:1: ( ( rule__XShortClosure__Group_0_0_1__0 )? )
            {
            // InternalXcore.g:17046:1: ( ( rule__XShortClosure__Group_0_0_1__0 )? )
            // InternalXcore.g:17047:1: ( rule__XShortClosure__Group_0_0_1__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXShortClosureAccess().getGroup_0_0_1()); 
            }
            // InternalXcore.g:17048:1: ( rule__XShortClosure__Group_0_0_1__0 )?
            int alt146=2;
            int LA146_0 = input.LA(1);

            if ( (LA146_0==RULE_ID||LA146_0==16||(LA146_0>=20 && LA146_0<=23)||LA146_0==70||LA146_0==85) ) {
                alt146=1;
            }
            switch (alt146) {
                case 1 :
                    // InternalXcore.g:17048:2: rule__XShortClosure__Group_0_0_1__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XShortClosure__Group_0_0_1__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXShortClosureAccess().getGroup_0_0_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XShortClosure__Group_0_0__1__Impl"


    // $ANTLR start "rule__XShortClosure__Group_0_0__2"
    // InternalXcore.g:17058:1: rule__XShortClosure__Group_0_0__2 : rule__XShortClosure__Group_0_0__2__Impl ;
    public final void rule__XShortClosure__Group_0_0__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:17062:1: ( rule__XShortClosure__Group_0_0__2__Impl )
            // InternalXcore.g:17063:2: rule__XShortClosure__Group_0_0__2__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XShortClosure__Group_0_0__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XShortClosure__Group_0_0__2"


    // $ANTLR start "rule__XShortClosure__Group_0_0__2__Impl"
    // InternalXcore.g:17069:1: rule__XShortClosure__Group_0_0__2__Impl : ( ( rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 ) ) ;
    public final void rule__XShortClosure__Group_0_0__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:17073:1: ( ( ( rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 ) ) )
            // InternalXcore.g:17074:1: ( ( rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 ) )
            {
            // InternalXcore.g:17074:1: ( ( rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 ) )
            // InternalXcore.g:17075:1: ( rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXShortClosureAccess().getExplicitSyntaxAssignment_0_0_2()); 
            }
            // InternalXcore.g:17076:1: ( rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 )
            // InternalXcore.g:17076:2: rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXShortClosureAccess().getExplicitSyntaxAssignment_0_0_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XShortClosure__Group_0_0__2__Impl"


    // $ANTLR start "rule__XShortClosure__Group_0_0_1__0"
    // InternalXcore.g:17092:1: rule__XShortClosure__Group_0_0_1__0 : rule__XShortClosure__Group_0_0_1__0__Impl rule__XShortClosure__Group_0_0_1__1 ;
    public final void rule__XShortClosure__Group_0_0_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:17096:1: ( rule__XShortClosure__Group_0_0_1__0__Impl rule__XShortClosure__Group_0_0_1__1 )
            // InternalXcore.g:17097:2: rule__XShortClosure__Group_0_0_1__0__Impl rule__XShortClosure__Group_0_0_1__1
            {
            pushFollow(FollowSets000.FOLLOW_38);
            rule__XShortClosure__Group_0_0_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XShortClosure__Group_0_0_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XShortClosure__Group_0_0_1__0"


    // $ANTLR start "rule__XShortClosure__Group_0_0_1__0__Impl"
    // InternalXcore.g:17104:1: rule__XShortClosure__Group_0_0_1__0__Impl : ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 ) ) ;
    public final void rule__XShortClosure__Group_0_0_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:17108:1: ( ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 ) ) )
            // InternalXcore.g:17109:1: ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 ) )
            {
            // InternalXcore.g:17109:1: ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 ) )
            // InternalXcore.g:17110:1: ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersAssignment_0_0_1_0()); 
            }
            // InternalXcore.g:17111:1: ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 )
            // InternalXcore.g:17111:2: rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersAssignment_0_0_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XShortClosure__Group_0_0_1__0__Impl"


    // $ANTLR start "rule__XShortClosure__Group_0_0_1__1"
    // InternalXcore.g:17121:1: rule__XShortClosure__Group_0_0_1__1 : rule__XShortClosure__Group_0_0_1__1__Impl ;
    public final void rule__XShortClosure__Group_0_0_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:17125:1: ( rule__XShortClosure__Group_0_0_1__1__Impl )
            // InternalXcore.g:17126:2: rule__XShortClosure__Group_0_0_1__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XShortClosure__Group_0_0_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XShortClosure__Group_0_0_1__1"


    // $ANTLR start "rule__XShortClosure__Group_0_0_1__1__Impl"
    // InternalXcore.g:17132:1: rule__XShortClosure__Group_0_0_1__1__Impl : ( ( rule__XShortClosure__Group_0_0_1_1__0 )* ) ;
    public final void rule__XShortClosure__Group_0_0_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:17136:1: ( ( ( rule__XShortClosure__Group_0_0_1_1__0 )* ) )
            // InternalXcore.g:17137:1: ( ( rule__XShortClosure__Group_0_0_1_1__0 )* )
            {
            // InternalXcore.g:17137:1: ( ( rule__XShortClosure__Group_0_0_1_1__0 )* )
            // InternalXcore.g:17138:1: ( rule__XShortClosure__Group_0_0_1_1__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXShortClosureAccess().getGroup_0_0_1_1()); 
            }
            // InternalXcore.g:17139:1: ( rule__XShortClosure__Group_0_0_1_1__0 )*
            loop147:
            do {
                int alt147=2;
                int LA147_0 = input.LA(1);

                if ( (LA147_0==87) ) {
                    alt147=1;
                }


                switch (alt147) {
            	case 1 :
            	    // InternalXcore.g:17139:2: rule__XShortClosure__Group_0_0_1_1__0
            	    {
            	    pushFollow(FollowSets000.FOLLOW_14);
            	    rule__XShortClosure__Group_0_0_1_1__0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop147;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXShortClosureAccess().getGroup_0_0_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XShortClosure__Group_0_0_1__1__Impl"


    // $ANTLR start "rule__XShortClosure__Group_0_0_1_1__0"
    // InternalXcore.g:17153:1: rule__XShortClosure__Group_0_0_1_1__0 : rule__XShortClosure__Group_0_0_1_1__0__Impl rule__XShortClosure__Group_0_0_1_1__1 ;
    public final void rule__XShortClosure__Group_0_0_1_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:17157:1: ( rule__XShortClosure__Group_0_0_1_1__0__Impl rule__XShortClosure__Group_0_0_1_1__1 )
            // InternalXcore.g:17158:2: rule__XShortClosure__Group_0_0_1_1__0__Impl rule__XShortClosure__Group_0_0_1_1__1
            {
            pushFollow(FollowSets000.FOLLOW_22);
            rule__XShortClosure__Group_0_0_1_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XShortClosure__Group_0_0_1_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XShortClosure__Group_0_0_1_1__0"


    // $ANTLR start "rule__XShortClosure__Group_0_0_1_1__0__Impl"
    // InternalXcore.g:17165:1: rule__XShortClosure__Group_0_0_1_1__0__Impl : ( ',' ) ;
    public final void rule__XShortClosure__Group_0_0_1_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:17169:1: ( ( ',' ) )
            // InternalXcore.g:17170:1: ( ',' )
            {
            // InternalXcore.g:17170:1: ( ',' )
            // InternalXcore.g:17171:1: ','
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXShortClosureAccess().getCommaKeyword_0_0_1_1_0()); 
            }
            match(input,87,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXShortClosureAccess().getCommaKeyword_0_0_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XShortClosure__Group_0_0_1_1__0__Impl"


    // $ANTLR start "rule__XShortClosure__Group_0_0_1_1__1"
    // InternalXcore.g:17184:1: rule__XShortClosure__Group_0_0_1_1__1 : rule__XShortClosure__Group_0_0_1_1__1__Impl ;
    public final void rule__XShortClosure__Group_0_0_1_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:17188:1: ( rule__XShortClosure__Group_0_0_1_1__1__Impl )
            // InternalXcore.g:17189:2: rule__XShortClosure__Group_0_0_1_1__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XShortClosure__Group_0_0_1_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XShortClosure__Group_0_0_1_1__1"


    // $ANTLR start "rule__XShortClosure__Group_0_0_1_1__1__Impl"
    // InternalXcore.g:17195:1: rule__XShortClosure__Group_0_0_1_1__1__Impl : ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 ) ) ;
    public final void rule__XShortClosure__Group_0_0_1_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:17199:1: ( ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 ) ) )
            // InternalXcore.g:17200:1: ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 ) )
            {
            // InternalXcore.g:17200:1: ( ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 ) )
            // InternalXcore.g:17201:1: ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersAssignment_0_0_1_1_1()); 
            }
            // InternalXcore.g:17202:1: ( rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 )
            // InternalXcore.g:17202:2: rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersAssignment_0_0_1_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XShortClosure__Group_0_0_1_1__1__Impl"


    // $ANTLR start "rule__XParenthesizedExpression__Group__0"
    // InternalXcore.g:17216:1: rule__XParenthesizedExpression__Group__0 : rule__XParenthesizedExpression__Group__0__Impl rule__XParenthesizedExpression__Group__1 ;
    public final void rule__XParenthesizedExpression__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:17220:1: ( rule__XParenthesizedExpression__Group__0__Impl rule__XParenthesizedExpression__Group__1 )
            // InternalXcore.g:17221:2: rule__XParenthesizedExpression__Group__0__Impl rule__XParenthesizedExpression__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_72);
            rule__XParenthesizedExpression__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XParenthesizedExpression__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XParenthesizedExpression__Group__0"


    // $ANTLR start "rule__XParenthesizedExpression__Group__0__Impl"
    // InternalXcore.g:17228:1: rule__XParenthesizedExpression__Group__0__Impl : ( '(' ) ;
    public final void rule__XParenthesizedExpression__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:17232:1: ( ( '(' ) )
            // InternalXcore.g:17233:1: ( '(' )
            {
            // InternalXcore.g:17233:1: ( '(' )
            // InternalXcore.g:17234:1: '('
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXParenthesizedExpressionAccess().getLeftParenthesisKeyword_0()); 
            }
            match(input,85,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXParenthesizedExpressionAccess().getLeftParenthesisKeyword_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XParenthesizedExpression__Group__0__Impl"


    // $ANTLR start "rule__XParenthesizedExpression__Group__1"
    // InternalXcore.g:17247:1: rule__XParenthesizedExpression__Group__1 : rule__XParenthesizedExpression__Group__1__Impl rule__XParenthesizedExpression__Group__2 ;
    public final void rule__XParenthesizedExpression__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:17251:1: ( rule__XParenthesizedExpression__Group__1__Impl rule__XParenthesizedExpression__Group__2 )
            // InternalXcore.g:17252:2: rule__XParenthesizedExpression__Group__1__Impl rule__XParenthesizedExpression__Group__2
            {
            pushFollow(FollowSets000.FOLLOW_108);
            rule__XParenthesizedExpression__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XParenthesizedExpression__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XParenthesizedExpression__Group__1"


    // $ANTLR start "rule__XParenthesizedExpression__Group__1__Impl"
    // InternalXcore.g:17259:1: rule__XParenthesizedExpression__Group__1__Impl : ( ruleXExpression ) ;
    public final void rule__XParenthesizedExpression__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:17263:1: ( ( ruleXExpression ) )
            // InternalXcore.g:17264:1: ( ruleXExpression )
            {
            // InternalXcore.g:17264:1: ( ruleXExpression )
            // InternalXcore.g:17265:1: ruleXExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXParenthesizedExpressionAccess().getXExpressionParserRuleCall_1()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXExpression();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXParenthesizedExpressionAccess().getXExpressionParserRuleCall_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XParenthesizedExpression__Group__1__Impl"


    // $ANTLR start "rule__XParenthesizedExpression__Group__2"
    // InternalXcore.g:17276:1: rule__XParenthesizedExpression__Group__2 : rule__XParenthesizedExpression__Group__2__Impl ;
    public final void rule__XParenthesizedExpression__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:17280:1: ( rule__XParenthesizedExpression__Group__2__Impl )
            // InternalXcore.g:17281:2: rule__XParenthesizedExpression__Group__2__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XParenthesizedExpression__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XParenthesizedExpression__Group__2"


    // $ANTLR start "rule__XParenthesizedExpression__Group__2__Impl"
    // InternalXcore.g:17287:1: rule__XParenthesizedExpression__Group__2__Impl : ( ')' ) ;
    public final void rule__XParenthesizedExpression__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:17291:1: ( ( ')' ) )
            // InternalXcore.g:17292:1: ( ')' )
            {
            // InternalXcore.g:17292:1: ( ')' )
            // InternalXcore.g:17293:1: ')'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXParenthesizedExpressionAccess().getRightParenthesisKeyword_2()); 
            }
            match(input,86,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXParenthesizedExpressionAccess().getRightParenthesisKeyword_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XParenthesizedExpression__Group__2__Impl"


    // $ANTLR start "rule__XIfExpression__Group__0"
    // InternalXcore.g:17312:1: rule__XIfExpression__Group__0 : rule__XIfExpression__Group__0__Impl rule__XIfExpression__Group__1 ;
    public final void rule__XIfExpression__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:17316:1: ( rule__XIfExpression__Group__0__Impl rule__XIfExpression__Group__1 )
            // InternalXcore.g:17317:2: rule__XIfExpression__Group__0__Impl rule__XIfExpression__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_109);
            rule__XIfExpression__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XIfExpression__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XIfExpression__Group__0"


    // $ANTLR start "rule__XIfExpression__Group__0__Impl"
    // InternalXcore.g:17324:1: rule__XIfExpression__Group__0__Impl : ( () ) ;
    public final void rule__XIfExpression__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:17328:1: ( ( () ) )
            // InternalXcore.g:17329:1: ( () )
            {
            // InternalXcore.g:17329:1: ( () )
            // InternalXcore.g:17330:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXIfExpressionAccess().getXIfExpressionAction_0()); 
            }
            // InternalXcore.g:17331:1: ()
            // InternalXcore.g:17333:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXIfExpressionAccess().getXIfExpressionAction_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XIfExpression__Group__0__Impl"


    // $ANTLR start "rule__XIfExpression__Group__1"
    // InternalXcore.g:17343:1: rule__XIfExpression__Group__1 : rule__XIfExpression__Group__1__Impl rule__XIfExpression__Group__2 ;
    public final void rule__XIfExpression__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:17347:1: ( rule__XIfExpression__Group__1__Impl rule__XIfExpression__Group__2 )
            // InternalXcore.g:17348:2: rule__XIfExpression__Group__1__Impl rule__XIfExpression__Group__2
            {
            pushFollow(FollowSets000.FOLLOW_12);
            rule__XIfExpression__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XIfExpression__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XIfExpression__Group__1"


    // $ANTLR start "rule__XIfExpression__Group__1__Impl"
    // InternalXcore.g:17355:1: rule__XIfExpression__Group__1__Impl : ( 'if' ) ;
    public final void rule__XIfExpression__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:17359:1: ( ( 'if' ) )
            // InternalXcore.g:17360:1: ( 'if' )
            {
            // InternalXcore.g:17360:1: ( 'if' )
            // InternalXcore.g:17361:1: 'if'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXIfExpressionAccess().getIfKeyword_1()); 
            }
            match(input,97,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXIfExpressionAccess().getIfKeyword_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XIfExpression__Group__1__Impl"


    // $ANTLR start "rule__XIfExpression__Group__2"
    // InternalXcore.g:17374:1: rule__XIfExpression__Group__2 : rule__XIfExpression__Group__2__Impl rule__XIfExpression__Group__3 ;
    public final void rule__XIfExpression__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:17378:1: ( rule__XIfExpression__Group__2__Impl rule__XIfExpression__Group__3 )
            // InternalXcore.g:17379:2: rule__XIfExpression__Group__2__Impl rule__XIfExpression__Group__3
            {
            pushFollow(FollowSets000.FOLLOW_72);
            rule__XIfExpression__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XIfExpression__Group__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XIfExpression__Group__2"


    // $ANTLR start "rule__XIfExpression__Group__2__Impl"
    // InternalXcore.g:17386:1: rule__XIfExpression__Group__2__Impl : ( '(' ) ;
    public final void rule__XIfExpression__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:17390:1: ( ( '(' ) )
            // InternalXcore.g:17391:1: ( '(' )
            {
            // InternalXcore.g:17391:1: ( '(' )
            // InternalXcore.g:17392:1: '('
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXIfExpressionAccess().getLeftParenthesisKeyword_2()); 
            }
            match(input,85,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXIfExpressionAccess().getLeftParenthesisKeyword_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XIfExpression__Group__2__Impl"


    // $ANTLR start "rule__XIfExpression__Group__3"
    // InternalXcore.g:17405:1: rule__XIfExpression__Group__3 : rule__XIfExpression__Group__3__Impl rule__XIfExpression__Group__4 ;
    public final void rule__XIfExpression__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:17409:1: ( rule__XIfExpression__Group__3__Impl rule__XIfExpression__Group__4 )
            // InternalXcore.g:17410:2: rule__XIfExpression__Group__3__Impl rule__XIfExpression__Group__4
            {
            pushFollow(FollowSets000.FOLLOW_108);
            rule__XIfExpression__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XIfExpression__Group__4();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XIfExpression__Group__3"


    // $ANTLR start "rule__XIfExpression__Group__3__Impl"
    // InternalXcore.g:17417:1: rule__XIfExpression__Group__3__Impl : ( ( rule__XIfExpression__IfAssignment_3 ) ) ;
    public final void rule__XIfExpression__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:17421:1: ( ( ( rule__XIfExpression__IfAssignment_3 ) ) )
            // InternalXcore.g:17422:1: ( ( rule__XIfExpression__IfAssignment_3 ) )
            {
            // InternalXcore.g:17422:1: ( ( rule__XIfExpression__IfAssignment_3 ) )
            // InternalXcore.g:17423:1: ( rule__XIfExpression__IfAssignment_3 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXIfExpressionAccess().getIfAssignment_3()); 
            }
            // InternalXcore.g:17424:1: ( rule__XIfExpression__IfAssignment_3 )
            // InternalXcore.g:17424:2: rule__XIfExpression__IfAssignment_3
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XIfExpression__IfAssignment_3();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXIfExpressionAccess().getIfAssignment_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XIfExpression__Group__3__Impl"


    // $ANTLR start "rule__XIfExpression__Group__4"
    // InternalXcore.g:17434:1: rule__XIfExpression__Group__4 : rule__XIfExpression__Group__4__Impl rule__XIfExpression__Group__5 ;
    public final void rule__XIfExpression__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:17438:1: ( rule__XIfExpression__Group__4__Impl rule__XIfExpression__Group__5 )
            // InternalXcore.g:17439:2: rule__XIfExpression__Group__4__Impl rule__XIfExpression__Group__5
            {
            pushFollow(FollowSets000.FOLLOW_72);
            rule__XIfExpression__Group__4__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XIfExpression__Group__5();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XIfExpression__Group__4"


    // $ANTLR start "rule__XIfExpression__Group__4__Impl"
    // InternalXcore.g:17446:1: rule__XIfExpression__Group__4__Impl : ( ')' ) ;
    public final void rule__XIfExpression__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:17450:1: ( ( ')' ) )
            // InternalXcore.g:17451:1: ( ')' )
            {
            // InternalXcore.g:17451:1: ( ')' )
            // InternalXcore.g:17452:1: ')'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXIfExpressionAccess().getRightParenthesisKeyword_4()); 
            }
            match(input,86,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXIfExpressionAccess().getRightParenthesisKeyword_4()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XIfExpression__Group__4__Impl"


    // $ANTLR start "rule__XIfExpression__Group__5"
    // InternalXcore.g:17465:1: rule__XIfExpression__Group__5 : rule__XIfExpression__Group__5__Impl rule__XIfExpression__Group__6 ;
    public final void rule__XIfExpression__Group__5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:17469:1: ( rule__XIfExpression__Group__5__Impl rule__XIfExpression__Group__6 )
            // InternalXcore.g:17470:2: rule__XIfExpression__Group__5__Impl rule__XIfExpression__Group__6
            {
            pushFollow(FollowSets000.FOLLOW_110);
            rule__XIfExpression__Group__5__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XIfExpression__Group__6();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XIfExpression__Group__5"


    // $ANTLR start "rule__XIfExpression__Group__5__Impl"
    // InternalXcore.g:17477:1: rule__XIfExpression__Group__5__Impl : ( ( rule__XIfExpression__ThenAssignment_5 ) ) ;
    public final void rule__XIfExpression__Group__5__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:17481:1: ( ( ( rule__XIfExpression__ThenAssignment_5 ) ) )
            // InternalXcore.g:17482:1: ( ( rule__XIfExpression__ThenAssignment_5 ) )
            {
            // InternalXcore.g:17482:1: ( ( rule__XIfExpression__ThenAssignment_5 ) )
            // InternalXcore.g:17483:1: ( rule__XIfExpression__ThenAssignment_5 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXIfExpressionAccess().getThenAssignment_5()); 
            }
            // InternalXcore.g:17484:1: ( rule__XIfExpression__ThenAssignment_5 )
            // InternalXcore.g:17484:2: rule__XIfExpression__ThenAssignment_5
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XIfExpression__ThenAssignment_5();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXIfExpressionAccess().getThenAssignment_5()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XIfExpression__Group__5__Impl"


    // $ANTLR start "rule__XIfExpression__Group__6"
    // InternalXcore.g:17494:1: rule__XIfExpression__Group__6 : rule__XIfExpression__Group__6__Impl ;
    public final void rule__XIfExpression__Group__6() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:17498:1: ( rule__XIfExpression__Group__6__Impl )
            // InternalXcore.g:17499:2: rule__XIfExpression__Group__6__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XIfExpression__Group__6__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XIfExpression__Group__6"


    // $ANTLR start "rule__XIfExpression__Group__6__Impl"
    // InternalXcore.g:17505:1: rule__XIfExpression__Group__6__Impl : ( ( rule__XIfExpression__Group_6__0 )? ) ;
    public final void rule__XIfExpression__Group__6__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:17509:1: ( ( ( rule__XIfExpression__Group_6__0 )? ) )
            // InternalXcore.g:17510:1: ( ( rule__XIfExpression__Group_6__0 )? )
            {
            // InternalXcore.g:17510:1: ( ( rule__XIfExpression__Group_6__0 )? )
            // InternalXcore.g:17511:1: ( rule__XIfExpression__Group_6__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXIfExpressionAccess().getGroup_6()); 
            }
            // InternalXcore.g:17512:1: ( rule__XIfExpression__Group_6__0 )?
            int alt148=2;
            int LA148_0 = input.LA(1);

            if ( (LA148_0==98) ) {
                int LA148_1 = input.LA(2);

                if ( (synpred230_InternalXcore()) ) {
                    alt148=1;
                }
            }
            switch (alt148) {
                case 1 :
                    // InternalXcore.g:17512:2: rule__XIfExpression__Group_6__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XIfExpression__Group_6__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXIfExpressionAccess().getGroup_6()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XIfExpression__Group__6__Impl"


    // $ANTLR start "rule__XIfExpression__Group_6__0"
    // InternalXcore.g:17536:1: rule__XIfExpression__Group_6__0 : rule__XIfExpression__Group_6__0__Impl rule__XIfExpression__Group_6__1 ;
    public final void rule__XIfExpression__Group_6__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:17540:1: ( rule__XIfExpression__Group_6__0__Impl rule__XIfExpression__Group_6__1 )
            // InternalXcore.g:17541:2: rule__XIfExpression__Group_6__0__Impl rule__XIfExpression__Group_6__1
            {
            pushFollow(FollowSets000.FOLLOW_72);
            rule__XIfExpression__Group_6__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XIfExpression__Group_6__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XIfExpression__Group_6__0"


    // $ANTLR start "rule__XIfExpression__Group_6__0__Impl"
    // InternalXcore.g:17548:1: rule__XIfExpression__Group_6__0__Impl : ( ( 'else' ) ) ;
    public final void rule__XIfExpression__Group_6__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:17552:1: ( ( ( 'else' ) ) )
            // InternalXcore.g:17553:1: ( ( 'else' ) )
            {
            // InternalXcore.g:17553:1: ( ( 'else' ) )
            // InternalXcore.g:17554:1: ( 'else' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXIfExpressionAccess().getElseKeyword_6_0()); 
            }
            // InternalXcore.g:17555:1: ( 'else' )
            // InternalXcore.g:17556:2: 'else'
            {
            match(input,98,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXIfExpressionAccess().getElseKeyword_6_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XIfExpression__Group_6__0__Impl"


    // $ANTLR start "rule__XIfExpression__Group_6__1"
    // InternalXcore.g:17567:1: rule__XIfExpression__Group_6__1 : rule__XIfExpression__Group_6__1__Impl ;
    public final void rule__XIfExpression__Group_6__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:17571:1: ( rule__XIfExpression__Group_6__1__Impl )
            // InternalXcore.g:17572:2: rule__XIfExpression__Group_6__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XIfExpression__Group_6__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XIfExpression__Group_6__1"


    // $ANTLR start "rule__XIfExpression__Group_6__1__Impl"
    // InternalXcore.g:17578:1: rule__XIfExpression__Group_6__1__Impl : ( ( rule__XIfExpression__ElseAssignment_6_1 ) ) ;
    public final void rule__XIfExpression__Group_6__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:17582:1: ( ( ( rule__XIfExpression__ElseAssignment_6_1 ) ) )
            // InternalXcore.g:17583:1: ( ( rule__XIfExpression__ElseAssignment_6_1 ) )
            {
            // InternalXcore.g:17583:1: ( ( rule__XIfExpression__ElseAssignment_6_1 ) )
            // InternalXcore.g:17584:1: ( rule__XIfExpression__ElseAssignment_6_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXIfExpressionAccess().getElseAssignment_6_1()); 
            }
            // InternalXcore.g:17585:1: ( rule__XIfExpression__ElseAssignment_6_1 )
            // InternalXcore.g:17585:2: rule__XIfExpression__ElseAssignment_6_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XIfExpression__ElseAssignment_6_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXIfExpressionAccess().getElseAssignment_6_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XIfExpression__Group_6__1__Impl"


    // $ANTLR start "rule__XSwitchExpression__Group__0"
    // InternalXcore.g:17599:1: rule__XSwitchExpression__Group__0 : rule__XSwitchExpression__Group__0__Impl rule__XSwitchExpression__Group__1 ;
    public final void rule__XSwitchExpression__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:17603:1: ( rule__XSwitchExpression__Group__0__Impl rule__XSwitchExpression__Group__1 )
            // InternalXcore.g:17604:2: rule__XSwitchExpression__Group__0__Impl rule__XSwitchExpression__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_111);
            rule__XSwitchExpression__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XSwitchExpression__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XSwitchExpression__Group__0"


    // $ANTLR start "rule__XSwitchExpression__Group__0__Impl"
    // InternalXcore.g:17611:1: rule__XSwitchExpression__Group__0__Impl : ( () ) ;
    public final void rule__XSwitchExpression__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:17615:1: ( ( () ) )
            // InternalXcore.g:17616:1: ( () )
            {
            // InternalXcore.g:17616:1: ( () )
            // InternalXcore.g:17617:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSwitchExpressionAccess().getXSwitchExpressionAction_0()); 
            }
            // InternalXcore.g:17618:1: ()
            // InternalXcore.g:17620:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXSwitchExpressionAccess().getXSwitchExpressionAction_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XSwitchExpression__Group__0__Impl"


    // $ANTLR start "rule__XSwitchExpression__Group__1"
    // InternalXcore.g:17630:1: rule__XSwitchExpression__Group__1 : rule__XSwitchExpression__Group__1__Impl rule__XSwitchExpression__Group__2 ;
    public final void rule__XSwitchExpression__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:17634:1: ( rule__XSwitchExpression__Group__1__Impl rule__XSwitchExpression__Group__2 )
            // InternalXcore.g:17635:2: rule__XSwitchExpression__Group__1__Impl rule__XSwitchExpression__Group__2
            {
            pushFollow(FollowSets000.FOLLOW_112);
            rule__XSwitchExpression__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XSwitchExpression__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XSwitchExpression__Group__1"


    // $ANTLR start "rule__XSwitchExpression__Group__1__Impl"
    // InternalXcore.g:17642:1: rule__XSwitchExpression__Group__1__Impl : ( 'switch' ) ;
    public final void rule__XSwitchExpression__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:17646:1: ( ( 'switch' ) )
            // InternalXcore.g:17647:1: ( 'switch' )
            {
            // InternalXcore.g:17647:1: ( 'switch' )
            // InternalXcore.g:17648:1: 'switch'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSwitchExpressionAccess().getSwitchKeyword_1()); 
            }
            match(input,99,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXSwitchExpressionAccess().getSwitchKeyword_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XSwitchExpression__Group__1__Impl"


    // $ANTLR start "rule__XSwitchExpression__Group__2"
    // InternalXcore.g:17661:1: rule__XSwitchExpression__Group__2 : rule__XSwitchExpression__Group__2__Impl rule__XSwitchExpression__Group__3 ;
    public final void rule__XSwitchExpression__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:17665:1: ( rule__XSwitchExpression__Group__2__Impl rule__XSwitchExpression__Group__3 )
            // InternalXcore.g:17666:2: rule__XSwitchExpression__Group__2__Impl rule__XSwitchExpression__Group__3
            {
            pushFollow(FollowSets000.FOLLOW_26);
            rule__XSwitchExpression__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XSwitchExpression__Group__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XSwitchExpression__Group__2"


    // $ANTLR start "rule__XSwitchExpression__Group__2__Impl"
    // InternalXcore.g:17673:1: rule__XSwitchExpression__Group__2__Impl : ( ( rule__XSwitchExpression__Alternatives_2 ) ) ;
    public final void rule__XSwitchExpression__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:17677:1: ( ( ( rule__XSwitchExpression__Alternatives_2 ) ) )
            // InternalXcore.g:17678:1: ( ( rule__XSwitchExpression__Alternatives_2 ) )
            {
            // InternalXcore.g:17678:1: ( ( rule__XSwitchExpression__Alternatives_2 ) )
            // InternalXcore.g:17679:1: ( rule__XSwitchExpression__Alternatives_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSwitchExpressionAccess().getAlternatives_2()); 
            }
            // InternalXcore.g:17680:1: ( rule__XSwitchExpression__Alternatives_2 )
            // InternalXcore.g:17680:2: rule__XSwitchExpression__Alternatives_2
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XSwitchExpression__Alternatives_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXSwitchExpressionAccess().getAlternatives_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XSwitchExpression__Group__2__Impl"


    // $ANTLR start "rule__XSwitchExpression__Group__3"
    // InternalXcore.g:17690:1: rule__XSwitchExpression__Group__3 : rule__XSwitchExpression__Group__3__Impl rule__XSwitchExpression__Group__4 ;
    public final void rule__XSwitchExpression__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:17694:1: ( rule__XSwitchExpression__Group__3__Impl rule__XSwitchExpression__Group__4 )
            // InternalXcore.g:17695:2: rule__XSwitchExpression__Group__3__Impl rule__XSwitchExpression__Group__4
            {
            pushFollow(FollowSets000.FOLLOW_113);
            rule__XSwitchExpression__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XSwitchExpression__Group__4();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XSwitchExpression__Group__3"


    // $ANTLR start "rule__XSwitchExpression__Group__3__Impl"
    // InternalXcore.g:17702:1: rule__XSwitchExpression__Group__3__Impl : ( '{' ) ;
    public final void rule__XSwitchExpression__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:17706:1: ( ( '{' ) )
            // InternalXcore.g:17707:1: ( '{' )
            {
            // InternalXcore.g:17707:1: ( '{' )
            // InternalXcore.g:17708:1: '{'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSwitchExpressionAccess().getLeftCurlyBracketKeyword_3()); 
            }
            match(input,89,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXSwitchExpressionAccess().getLeftCurlyBracketKeyword_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XSwitchExpression__Group__3__Impl"


    // $ANTLR start "rule__XSwitchExpression__Group__4"
    // InternalXcore.g:17721:1: rule__XSwitchExpression__Group__4 : rule__XSwitchExpression__Group__4__Impl rule__XSwitchExpression__Group__5 ;
    public final void rule__XSwitchExpression__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:17725:1: ( rule__XSwitchExpression__Group__4__Impl rule__XSwitchExpression__Group__5 )
            // InternalXcore.g:17726:2: rule__XSwitchExpression__Group__4__Impl rule__XSwitchExpression__Group__5
            {
            pushFollow(FollowSets000.FOLLOW_113);
            rule__XSwitchExpression__Group__4__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XSwitchExpression__Group__5();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XSwitchExpression__Group__4"


    // $ANTLR start "rule__XSwitchExpression__Group__4__Impl"
    // InternalXcore.g:17733:1: rule__XSwitchExpression__Group__4__Impl : ( ( rule__XSwitchExpression__CasesAssignment_4 )* ) ;
    public final void rule__XSwitchExpression__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:17737:1: ( ( ( rule__XSwitchExpression__CasesAssignment_4 )* ) )
            // InternalXcore.g:17738:1: ( ( rule__XSwitchExpression__CasesAssignment_4 )* )
            {
            // InternalXcore.g:17738:1: ( ( rule__XSwitchExpression__CasesAssignment_4 )* )
            // InternalXcore.g:17739:1: ( rule__XSwitchExpression__CasesAssignment_4 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSwitchExpressionAccess().getCasesAssignment_4()); 
            }
            // InternalXcore.g:17740:1: ( rule__XSwitchExpression__CasesAssignment_4 )*
            loop149:
            do {
                int alt149=2;
                int LA149_0 = input.LA(1);

                if ( (LA149_0==RULE_ID||LA149_0==16||(LA149_0>=20 && LA149_0<=23)||LA149_0==70||LA149_0==85||LA149_0==87||LA149_0==100||LA149_0==102) ) {
                    alt149=1;
                }


                switch (alt149) {
            	case 1 :
            	    // InternalXcore.g:17740:2: rule__XSwitchExpression__CasesAssignment_4
            	    {
            	    pushFollow(FollowSets000.FOLLOW_114);
            	    rule__XSwitchExpression__CasesAssignment_4();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop149;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXSwitchExpressionAccess().getCasesAssignment_4()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XSwitchExpression__Group__4__Impl"


    // $ANTLR start "rule__XSwitchExpression__Group__5"
    // InternalXcore.g:17750:1: rule__XSwitchExpression__Group__5 : rule__XSwitchExpression__Group__5__Impl rule__XSwitchExpression__Group__6 ;
    public final void rule__XSwitchExpression__Group__5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:17754:1: ( rule__XSwitchExpression__Group__5__Impl rule__XSwitchExpression__Group__6 )
            // InternalXcore.g:17755:2: rule__XSwitchExpression__Group__5__Impl rule__XSwitchExpression__Group__6
            {
            pushFollow(FollowSets000.FOLLOW_113);
            rule__XSwitchExpression__Group__5__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XSwitchExpression__Group__6();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XSwitchExpression__Group__5"


    // $ANTLR start "rule__XSwitchExpression__Group__5__Impl"
    // InternalXcore.g:17762:1: rule__XSwitchExpression__Group__5__Impl : ( ( rule__XSwitchExpression__Group_5__0 )? ) ;
    public final void rule__XSwitchExpression__Group__5__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:17766:1: ( ( ( rule__XSwitchExpression__Group_5__0 )? ) )
            // InternalXcore.g:17767:1: ( ( rule__XSwitchExpression__Group_5__0 )? )
            {
            // InternalXcore.g:17767:1: ( ( rule__XSwitchExpression__Group_5__0 )? )
            // InternalXcore.g:17768:1: ( rule__XSwitchExpression__Group_5__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSwitchExpressionAccess().getGroup_5()); 
            }
            // InternalXcore.g:17769:1: ( rule__XSwitchExpression__Group_5__0 )?
            int alt150=2;
            int LA150_0 = input.LA(1);

            if ( (LA150_0==101) ) {
                alt150=1;
            }
            switch (alt150) {
                case 1 :
                    // InternalXcore.g:17769:2: rule__XSwitchExpression__Group_5__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XSwitchExpression__Group_5__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXSwitchExpressionAccess().getGroup_5()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XSwitchExpression__Group__5__Impl"


    // $ANTLR start "rule__XSwitchExpression__Group__6"
    // InternalXcore.g:17779:1: rule__XSwitchExpression__Group__6 : rule__XSwitchExpression__Group__6__Impl ;
    public final void rule__XSwitchExpression__Group__6() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:17783:1: ( rule__XSwitchExpression__Group__6__Impl )
            // InternalXcore.g:17784:2: rule__XSwitchExpression__Group__6__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XSwitchExpression__Group__6__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XSwitchExpression__Group__6"


    // $ANTLR start "rule__XSwitchExpression__Group__6__Impl"
    // InternalXcore.g:17790:1: rule__XSwitchExpression__Group__6__Impl : ( '}' ) ;
    public final void rule__XSwitchExpression__Group__6__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:17794:1: ( ( '}' ) )
            // InternalXcore.g:17795:1: ( '}' )
            {
            // InternalXcore.g:17795:1: ( '}' )
            // InternalXcore.g:17796:1: '}'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSwitchExpressionAccess().getRightCurlyBracketKeyword_6()); 
            }
            match(input,90,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXSwitchExpressionAccess().getRightCurlyBracketKeyword_6()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XSwitchExpression__Group__6__Impl"


    // $ANTLR start "rule__XSwitchExpression__Group_2_0__0"
    // InternalXcore.g:17823:1: rule__XSwitchExpression__Group_2_0__0 : rule__XSwitchExpression__Group_2_0__0__Impl rule__XSwitchExpression__Group_2_0__1 ;
    public final void rule__XSwitchExpression__Group_2_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:17827:1: ( rule__XSwitchExpression__Group_2_0__0__Impl rule__XSwitchExpression__Group_2_0__1 )
            // InternalXcore.g:17828:2: rule__XSwitchExpression__Group_2_0__0__Impl rule__XSwitchExpression__Group_2_0__1
            {
            pushFollow(FollowSets000.FOLLOW_72);
            rule__XSwitchExpression__Group_2_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XSwitchExpression__Group_2_0__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XSwitchExpression__Group_2_0__0"


    // $ANTLR start "rule__XSwitchExpression__Group_2_0__0__Impl"
    // InternalXcore.g:17835:1: rule__XSwitchExpression__Group_2_0__0__Impl : ( ( rule__XSwitchExpression__Group_2_0_0__0 ) ) ;
    public final void rule__XSwitchExpression__Group_2_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:17839:1: ( ( ( rule__XSwitchExpression__Group_2_0_0__0 ) ) )
            // InternalXcore.g:17840:1: ( ( rule__XSwitchExpression__Group_2_0_0__0 ) )
            {
            // InternalXcore.g:17840:1: ( ( rule__XSwitchExpression__Group_2_0_0__0 ) )
            // InternalXcore.g:17841:1: ( rule__XSwitchExpression__Group_2_0_0__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSwitchExpressionAccess().getGroup_2_0_0()); 
            }
            // InternalXcore.g:17842:1: ( rule__XSwitchExpression__Group_2_0_0__0 )
            // InternalXcore.g:17842:2: rule__XSwitchExpression__Group_2_0_0__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XSwitchExpression__Group_2_0_0__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXSwitchExpressionAccess().getGroup_2_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XSwitchExpression__Group_2_0__0__Impl"


    // $ANTLR start "rule__XSwitchExpression__Group_2_0__1"
    // InternalXcore.g:17852:1: rule__XSwitchExpression__Group_2_0__1 : rule__XSwitchExpression__Group_2_0__1__Impl rule__XSwitchExpression__Group_2_0__2 ;
    public final void rule__XSwitchExpression__Group_2_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:17856:1: ( rule__XSwitchExpression__Group_2_0__1__Impl rule__XSwitchExpression__Group_2_0__2 )
            // InternalXcore.g:17857:2: rule__XSwitchExpression__Group_2_0__1__Impl rule__XSwitchExpression__Group_2_0__2
            {
            pushFollow(FollowSets000.FOLLOW_108);
            rule__XSwitchExpression__Group_2_0__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XSwitchExpression__Group_2_0__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XSwitchExpression__Group_2_0__1"


    // $ANTLR start "rule__XSwitchExpression__Group_2_0__1__Impl"
    // InternalXcore.g:17864:1: rule__XSwitchExpression__Group_2_0__1__Impl : ( ( rule__XSwitchExpression__SwitchAssignment_2_0_1 ) ) ;
    public final void rule__XSwitchExpression__Group_2_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:17868:1: ( ( ( rule__XSwitchExpression__SwitchAssignment_2_0_1 ) ) )
            // InternalXcore.g:17869:1: ( ( rule__XSwitchExpression__SwitchAssignment_2_0_1 ) )
            {
            // InternalXcore.g:17869:1: ( ( rule__XSwitchExpression__SwitchAssignment_2_0_1 ) )
            // InternalXcore.g:17870:1: ( rule__XSwitchExpression__SwitchAssignment_2_0_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSwitchExpressionAccess().getSwitchAssignment_2_0_1()); 
            }
            // InternalXcore.g:17871:1: ( rule__XSwitchExpression__SwitchAssignment_2_0_1 )
            // InternalXcore.g:17871:2: rule__XSwitchExpression__SwitchAssignment_2_0_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XSwitchExpression__SwitchAssignment_2_0_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXSwitchExpressionAccess().getSwitchAssignment_2_0_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XSwitchExpression__Group_2_0__1__Impl"


    // $ANTLR start "rule__XSwitchExpression__Group_2_0__2"
    // InternalXcore.g:17881:1: rule__XSwitchExpression__Group_2_0__2 : rule__XSwitchExpression__Group_2_0__2__Impl ;
    public final void rule__XSwitchExpression__Group_2_0__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:17885:1: ( rule__XSwitchExpression__Group_2_0__2__Impl )
            // InternalXcore.g:17886:2: rule__XSwitchExpression__Group_2_0__2__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XSwitchExpression__Group_2_0__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XSwitchExpression__Group_2_0__2"


    // $ANTLR start "rule__XSwitchExpression__Group_2_0__2__Impl"
    // InternalXcore.g:17892:1: rule__XSwitchExpression__Group_2_0__2__Impl : ( ')' ) ;
    public final void rule__XSwitchExpression__Group_2_0__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:17896:1: ( ( ')' ) )
            // InternalXcore.g:17897:1: ( ')' )
            {
            // InternalXcore.g:17897:1: ( ')' )
            // InternalXcore.g:17898:1: ')'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSwitchExpressionAccess().getRightParenthesisKeyword_2_0_2()); 
            }
            match(input,86,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXSwitchExpressionAccess().getRightParenthesisKeyword_2_0_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XSwitchExpression__Group_2_0__2__Impl"


    // $ANTLR start "rule__XSwitchExpression__Group_2_0_0__0"
    // InternalXcore.g:17917:1: rule__XSwitchExpression__Group_2_0_0__0 : rule__XSwitchExpression__Group_2_0_0__0__Impl ;
    public final void rule__XSwitchExpression__Group_2_0_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:17921:1: ( rule__XSwitchExpression__Group_2_0_0__0__Impl )
            // InternalXcore.g:17922:2: rule__XSwitchExpression__Group_2_0_0__0__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XSwitchExpression__Group_2_0_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XSwitchExpression__Group_2_0_0__0"


    // $ANTLR start "rule__XSwitchExpression__Group_2_0_0__0__Impl"
    // InternalXcore.g:17928:1: rule__XSwitchExpression__Group_2_0_0__0__Impl : ( ( rule__XSwitchExpression__Group_2_0_0_0__0 ) ) ;
    public final void rule__XSwitchExpression__Group_2_0_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:17932:1: ( ( ( rule__XSwitchExpression__Group_2_0_0_0__0 ) ) )
            // InternalXcore.g:17933:1: ( ( rule__XSwitchExpression__Group_2_0_0_0__0 ) )
            {
            // InternalXcore.g:17933:1: ( ( rule__XSwitchExpression__Group_2_0_0_0__0 ) )
            // InternalXcore.g:17934:1: ( rule__XSwitchExpression__Group_2_0_0_0__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSwitchExpressionAccess().getGroup_2_0_0_0()); 
            }
            // InternalXcore.g:17935:1: ( rule__XSwitchExpression__Group_2_0_0_0__0 )
            // InternalXcore.g:17935:2: rule__XSwitchExpression__Group_2_0_0_0__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XSwitchExpression__Group_2_0_0_0__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXSwitchExpressionAccess().getGroup_2_0_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XSwitchExpression__Group_2_0_0__0__Impl"


    // $ANTLR start "rule__XSwitchExpression__Group_2_0_0_0__0"
    // InternalXcore.g:17947:1: rule__XSwitchExpression__Group_2_0_0_0__0 : rule__XSwitchExpression__Group_2_0_0_0__0__Impl rule__XSwitchExpression__Group_2_0_0_0__1 ;
    public final void rule__XSwitchExpression__Group_2_0_0_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:17951:1: ( rule__XSwitchExpression__Group_2_0_0_0__0__Impl rule__XSwitchExpression__Group_2_0_0_0__1 )
            // InternalXcore.g:17952:2: rule__XSwitchExpression__Group_2_0_0_0__0__Impl rule__XSwitchExpression__Group_2_0_0_0__1
            {
            pushFollow(FollowSets000.FOLLOW_22);
            rule__XSwitchExpression__Group_2_0_0_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XSwitchExpression__Group_2_0_0_0__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XSwitchExpression__Group_2_0_0_0__0"


    // $ANTLR start "rule__XSwitchExpression__Group_2_0_0_0__0__Impl"
    // InternalXcore.g:17959:1: rule__XSwitchExpression__Group_2_0_0_0__0__Impl : ( '(' ) ;
    public final void rule__XSwitchExpression__Group_2_0_0_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:17963:1: ( ( '(' ) )
            // InternalXcore.g:17964:1: ( '(' )
            {
            // InternalXcore.g:17964:1: ( '(' )
            // InternalXcore.g:17965:1: '('
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSwitchExpressionAccess().getLeftParenthesisKeyword_2_0_0_0_0()); 
            }
            match(input,85,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXSwitchExpressionAccess().getLeftParenthesisKeyword_2_0_0_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XSwitchExpression__Group_2_0_0_0__0__Impl"


    // $ANTLR start "rule__XSwitchExpression__Group_2_0_0_0__1"
    // InternalXcore.g:17978:1: rule__XSwitchExpression__Group_2_0_0_0__1 : rule__XSwitchExpression__Group_2_0_0_0__1__Impl rule__XSwitchExpression__Group_2_0_0_0__2 ;
    public final void rule__XSwitchExpression__Group_2_0_0_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:17982:1: ( rule__XSwitchExpression__Group_2_0_0_0__1__Impl rule__XSwitchExpression__Group_2_0_0_0__2 )
            // InternalXcore.g:17983:2: rule__XSwitchExpression__Group_2_0_0_0__1__Impl rule__XSwitchExpression__Group_2_0_0_0__2
            {
            pushFollow(FollowSets000.FOLLOW_115);
            rule__XSwitchExpression__Group_2_0_0_0__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XSwitchExpression__Group_2_0_0_0__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XSwitchExpression__Group_2_0_0_0__1"


    // $ANTLR start "rule__XSwitchExpression__Group_2_0_0_0__1__Impl"
    // InternalXcore.g:17990:1: rule__XSwitchExpression__Group_2_0_0_0__1__Impl : ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1 ) ) ;
    public final void rule__XSwitchExpression__Group_2_0_0_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:17994:1: ( ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1 ) ) )
            // InternalXcore.g:17995:1: ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1 ) )
            {
            // InternalXcore.g:17995:1: ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1 ) )
            // InternalXcore.g:17996:1: ( rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSwitchExpressionAccess().getDeclaredParamAssignment_2_0_0_0_1()); 
            }
            // InternalXcore.g:17997:1: ( rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1 )
            // InternalXcore.g:17997:2: rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXSwitchExpressionAccess().getDeclaredParamAssignment_2_0_0_0_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XSwitchExpression__Group_2_0_0_0__1__Impl"


    // $ANTLR start "rule__XSwitchExpression__Group_2_0_0_0__2"
    // InternalXcore.g:18007:1: rule__XSwitchExpression__Group_2_0_0_0__2 : rule__XSwitchExpression__Group_2_0_0_0__2__Impl ;
    public final void rule__XSwitchExpression__Group_2_0_0_0__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:18011:1: ( rule__XSwitchExpression__Group_2_0_0_0__2__Impl )
            // InternalXcore.g:18012:2: rule__XSwitchExpression__Group_2_0_0_0__2__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XSwitchExpression__Group_2_0_0_0__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XSwitchExpression__Group_2_0_0_0__2"


    // $ANTLR start "rule__XSwitchExpression__Group_2_0_0_0__2__Impl"
    // InternalXcore.g:18018:1: rule__XSwitchExpression__Group_2_0_0_0__2__Impl : ( ':' ) ;
    public final void rule__XSwitchExpression__Group_2_0_0_0__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:18022:1: ( ( ':' ) )
            // InternalXcore.g:18023:1: ( ':' )
            {
            // InternalXcore.g:18023:1: ( ':' )
            // InternalXcore.g:18024:1: ':'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSwitchExpressionAccess().getColonKeyword_2_0_0_0_2()); 
            }
            match(input,100,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXSwitchExpressionAccess().getColonKeyword_2_0_0_0_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XSwitchExpression__Group_2_0_0_0__2__Impl"


    // $ANTLR start "rule__XSwitchExpression__Group_2_1__0"
    // InternalXcore.g:18043:1: rule__XSwitchExpression__Group_2_1__0 : rule__XSwitchExpression__Group_2_1__0__Impl rule__XSwitchExpression__Group_2_1__1 ;
    public final void rule__XSwitchExpression__Group_2_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:18047:1: ( rule__XSwitchExpression__Group_2_1__0__Impl rule__XSwitchExpression__Group_2_1__1 )
            // InternalXcore.g:18048:2: rule__XSwitchExpression__Group_2_1__0__Impl rule__XSwitchExpression__Group_2_1__1
            {
            pushFollow(FollowSets000.FOLLOW_112);
            rule__XSwitchExpression__Group_2_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XSwitchExpression__Group_2_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XSwitchExpression__Group_2_1__0"


    // $ANTLR start "rule__XSwitchExpression__Group_2_1__0__Impl"
    // InternalXcore.g:18055:1: rule__XSwitchExpression__Group_2_1__0__Impl : ( ( rule__XSwitchExpression__Group_2_1_0__0 )? ) ;
    public final void rule__XSwitchExpression__Group_2_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:18059:1: ( ( ( rule__XSwitchExpression__Group_2_1_0__0 )? ) )
            // InternalXcore.g:18060:1: ( ( rule__XSwitchExpression__Group_2_1_0__0 )? )
            {
            // InternalXcore.g:18060:1: ( ( rule__XSwitchExpression__Group_2_1_0__0 )? )
            // InternalXcore.g:18061:1: ( rule__XSwitchExpression__Group_2_1_0__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSwitchExpressionAccess().getGroup_2_1_0()); 
            }
            // InternalXcore.g:18062:1: ( rule__XSwitchExpression__Group_2_1_0__0 )?
            int alt151=2;
            alt151 = dfa151.predict(input);
            switch (alt151) {
                case 1 :
                    // InternalXcore.g:18062:2: rule__XSwitchExpression__Group_2_1_0__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XSwitchExpression__Group_2_1_0__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXSwitchExpressionAccess().getGroup_2_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XSwitchExpression__Group_2_1__0__Impl"


    // $ANTLR start "rule__XSwitchExpression__Group_2_1__1"
    // InternalXcore.g:18072:1: rule__XSwitchExpression__Group_2_1__1 : rule__XSwitchExpression__Group_2_1__1__Impl ;
    public final void rule__XSwitchExpression__Group_2_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:18076:1: ( rule__XSwitchExpression__Group_2_1__1__Impl )
            // InternalXcore.g:18077:2: rule__XSwitchExpression__Group_2_1__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XSwitchExpression__Group_2_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XSwitchExpression__Group_2_1__1"


    // $ANTLR start "rule__XSwitchExpression__Group_2_1__1__Impl"
    // InternalXcore.g:18083:1: rule__XSwitchExpression__Group_2_1__1__Impl : ( ( rule__XSwitchExpression__SwitchAssignment_2_1_1 ) ) ;
    public final void rule__XSwitchExpression__Group_2_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:18087:1: ( ( ( rule__XSwitchExpression__SwitchAssignment_2_1_1 ) ) )
            // InternalXcore.g:18088:1: ( ( rule__XSwitchExpression__SwitchAssignment_2_1_1 ) )
            {
            // InternalXcore.g:18088:1: ( ( rule__XSwitchExpression__SwitchAssignment_2_1_1 ) )
            // InternalXcore.g:18089:1: ( rule__XSwitchExpression__SwitchAssignment_2_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSwitchExpressionAccess().getSwitchAssignment_2_1_1()); 
            }
            // InternalXcore.g:18090:1: ( rule__XSwitchExpression__SwitchAssignment_2_1_1 )
            // InternalXcore.g:18090:2: rule__XSwitchExpression__SwitchAssignment_2_1_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XSwitchExpression__SwitchAssignment_2_1_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXSwitchExpressionAccess().getSwitchAssignment_2_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XSwitchExpression__Group_2_1__1__Impl"


    // $ANTLR start "rule__XSwitchExpression__Group_2_1_0__0"
    // InternalXcore.g:18104:1: rule__XSwitchExpression__Group_2_1_0__0 : rule__XSwitchExpression__Group_2_1_0__0__Impl ;
    public final void rule__XSwitchExpression__Group_2_1_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:18108:1: ( rule__XSwitchExpression__Group_2_1_0__0__Impl )
            // InternalXcore.g:18109:2: rule__XSwitchExpression__Group_2_1_0__0__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XSwitchExpression__Group_2_1_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XSwitchExpression__Group_2_1_0__0"


    // $ANTLR start "rule__XSwitchExpression__Group_2_1_0__0__Impl"
    // InternalXcore.g:18115:1: rule__XSwitchExpression__Group_2_1_0__0__Impl : ( ( rule__XSwitchExpression__Group_2_1_0_0__0 ) ) ;
    public final void rule__XSwitchExpression__Group_2_1_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:18119:1: ( ( ( rule__XSwitchExpression__Group_2_1_0_0__0 ) ) )
            // InternalXcore.g:18120:1: ( ( rule__XSwitchExpression__Group_2_1_0_0__0 ) )
            {
            // InternalXcore.g:18120:1: ( ( rule__XSwitchExpression__Group_2_1_0_0__0 ) )
            // InternalXcore.g:18121:1: ( rule__XSwitchExpression__Group_2_1_0_0__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSwitchExpressionAccess().getGroup_2_1_0_0()); 
            }
            // InternalXcore.g:18122:1: ( rule__XSwitchExpression__Group_2_1_0_0__0 )
            // InternalXcore.g:18122:2: rule__XSwitchExpression__Group_2_1_0_0__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XSwitchExpression__Group_2_1_0_0__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXSwitchExpressionAccess().getGroup_2_1_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XSwitchExpression__Group_2_1_0__0__Impl"


    // $ANTLR start "rule__XSwitchExpression__Group_2_1_0_0__0"
    // InternalXcore.g:18134:1: rule__XSwitchExpression__Group_2_1_0_0__0 : rule__XSwitchExpression__Group_2_1_0_0__0__Impl rule__XSwitchExpression__Group_2_1_0_0__1 ;
    public final void rule__XSwitchExpression__Group_2_1_0_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:18138:1: ( rule__XSwitchExpression__Group_2_1_0_0__0__Impl rule__XSwitchExpression__Group_2_1_0_0__1 )
            // InternalXcore.g:18139:2: rule__XSwitchExpression__Group_2_1_0_0__0__Impl rule__XSwitchExpression__Group_2_1_0_0__1
            {
            pushFollow(FollowSets000.FOLLOW_115);
            rule__XSwitchExpression__Group_2_1_0_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XSwitchExpression__Group_2_1_0_0__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XSwitchExpression__Group_2_1_0_0__0"


    // $ANTLR start "rule__XSwitchExpression__Group_2_1_0_0__0__Impl"
    // InternalXcore.g:18146:1: rule__XSwitchExpression__Group_2_1_0_0__0__Impl : ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0 ) ) ;
    public final void rule__XSwitchExpression__Group_2_1_0_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:18150:1: ( ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0 ) ) )
            // InternalXcore.g:18151:1: ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0 ) )
            {
            // InternalXcore.g:18151:1: ( ( rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0 ) )
            // InternalXcore.g:18152:1: ( rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSwitchExpressionAccess().getDeclaredParamAssignment_2_1_0_0_0()); 
            }
            // InternalXcore.g:18153:1: ( rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0 )
            // InternalXcore.g:18153:2: rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXSwitchExpressionAccess().getDeclaredParamAssignment_2_1_0_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XSwitchExpression__Group_2_1_0_0__0__Impl"


    // $ANTLR start "rule__XSwitchExpression__Group_2_1_0_0__1"
    // InternalXcore.g:18163:1: rule__XSwitchExpression__Group_2_1_0_0__1 : rule__XSwitchExpression__Group_2_1_0_0__1__Impl ;
    public final void rule__XSwitchExpression__Group_2_1_0_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:18167:1: ( rule__XSwitchExpression__Group_2_1_0_0__1__Impl )
            // InternalXcore.g:18168:2: rule__XSwitchExpression__Group_2_1_0_0__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XSwitchExpression__Group_2_1_0_0__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XSwitchExpression__Group_2_1_0_0__1"


    // $ANTLR start "rule__XSwitchExpression__Group_2_1_0_0__1__Impl"
    // InternalXcore.g:18174:1: rule__XSwitchExpression__Group_2_1_0_0__1__Impl : ( ':' ) ;
    public final void rule__XSwitchExpression__Group_2_1_0_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:18178:1: ( ( ':' ) )
            // InternalXcore.g:18179:1: ( ':' )
            {
            // InternalXcore.g:18179:1: ( ':' )
            // InternalXcore.g:18180:1: ':'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSwitchExpressionAccess().getColonKeyword_2_1_0_0_1()); 
            }
            match(input,100,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXSwitchExpressionAccess().getColonKeyword_2_1_0_0_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XSwitchExpression__Group_2_1_0_0__1__Impl"


    // $ANTLR start "rule__XSwitchExpression__Group_5__0"
    // InternalXcore.g:18197:1: rule__XSwitchExpression__Group_5__0 : rule__XSwitchExpression__Group_5__0__Impl rule__XSwitchExpression__Group_5__1 ;
    public final void rule__XSwitchExpression__Group_5__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:18201:1: ( rule__XSwitchExpression__Group_5__0__Impl rule__XSwitchExpression__Group_5__1 )
            // InternalXcore.g:18202:2: rule__XSwitchExpression__Group_5__0__Impl rule__XSwitchExpression__Group_5__1
            {
            pushFollow(FollowSets000.FOLLOW_115);
            rule__XSwitchExpression__Group_5__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XSwitchExpression__Group_5__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XSwitchExpression__Group_5__0"


    // $ANTLR start "rule__XSwitchExpression__Group_5__0__Impl"
    // InternalXcore.g:18209:1: rule__XSwitchExpression__Group_5__0__Impl : ( 'default' ) ;
    public final void rule__XSwitchExpression__Group_5__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:18213:1: ( ( 'default' ) )
            // InternalXcore.g:18214:1: ( 'default' )
            {
            // InternalXcore.g:18214:1: ( 'default' )
            // InternalXcore.g:18215:1: 'default'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSwitchExpressionAccess().getDefaultKeyword_5_0()); 
            }
            match(input,101,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXSwitchExpressionAccess().getDefaultKeyword_5_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XSwitchExpression__Group_5__0__Impl"


    // $ANTLR start "rule__XSwitchExpression__Group_5__1"
    // InternalXcore.g:18228:1: rule__XSwitchExpression__Group_5__1 : rule__XSwitchExpression__Group_5__1__Impl rule__XSwitchExpression__Group_5__2 ;
    public final void rule__XSwitchExpression__Group_5__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:18232:1: ( rule__XSwitchExpression__Group_5__1__Impl rule__XSwitchExpression__Group_5__2 )
            // InternalXcore.g:18233:2: rule__XSwitchExpression__Group_5__1__Impl rule__XSwitchExpression__Group_5__2
            {
            pushFollow(FollowSets000.FOLLOW_72);
            rule__XSwitchExpression__Group_5__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XSwitchExpression__Group_5__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XSwitchExpression__Group_5__1"


    // $ANTLR start "rule__XSwitchExpression__Group_5__1__Impl"
    // InternalXcore.g:18240:1: rule__XSwitchExpression__Group_5__1__Impl : ( ':' ) ;
    public final void rule__XSwitchExpression__Group_5__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:18244:1: ( ( ':' ) )
            // InternalXcore.g:18245:1: ( ':' )
            {
            // InternalXcore.g:18245:1: ( ':' )
            // InternalXcore.g:18246:1: ':'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSwitchExpressionAccess().getColonKeyword_5_1()); 
            }
            match(input,100,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXSwitchExpressionAccess().getColonKeyword_5_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XSwitchExpression__Group_5__1__Impl"


    // $ANTLR start "rule__XSwitchExpression__Group_5__2"
    // InternalXcore.g:18259:1: rule__XSwitchExpression__Group_5__2 : rule__XSwitchExpression__Group_5__2__Impl ;
    public final void rule__XSwitchExpression__Group_5__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:18263:1: ( rule__XSwitchExpression__Group_5__2__Impl )
            // InternalXcore.g:18264:2: rule__XSwitchExpression__Group_5__2__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XSwitchExpression__Group_5__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XSwitchExpression__Group_5__2"


    // $ANTLR start "rule__XSwitchExpression__Group_5__2__Impl"
    // InternalXcore.g:18270:1: rule__XSwitchExpression__Group_5__2__Impl : ( ( rule__XSwitchExpression__DefaultAssignment_5_2 ) ) ;
    public final void rule__XSwitchExpression__Group_5__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:18274:1: ( ( ( rule__XSwitchExpression__DefaultAssignment_5_2 ) ) )
            // InternalXcore.g:18275:1: ( ( rule__XSwitchExpression__DefaultAssignment_5_2 ) )
            {
            // InternalXcore.g:18275:1: ( ( rule__XSwitchExpression__DefaultAssignment_5_2 ) )
            // InternalXcore.g:18276:1: ( rule__XSwitchExpression__DefaultAssignment_5_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSwitchExpressionAccess().getDefaultAssignment_5_2()); 
            }
            // InternalXcore.g:18277:1: ( rule__XSwitchExpression__DefaultAssignment_5_2 )
            // InternalXcore.g:18277:2: rule__XSwitchExpression__DefaultAssignment_5_2
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XSwitchExpression__DefaultAssignment_5_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXSwitchExpressionAccess().getDefaultAssignment_5_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XSwitchExpression__Group_5__2__Impl"


    // $ANTLR start "rule__XCasePart__Group__0"
    // InternalXcore.g:18293:1: rule__XCasePart__Group__0 : rule__XCasePart__Group__0__Impl rule__XCasePart__Group__1 ;
    public final void rule__XCasePart__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:18297:1: ( rule__XCasePart__Group__0__Impl rule__XCasePart__Group__1 )
            // InternalXcore.g:18298:2: rule__XCasePart__Group__0__Impl rule__XCasePart__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_116);
            rule__XCasePart__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XCasePart__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XCasePart__Group__0"


    // $ANTLR start "rule__XCasePart__Group__0__Impl"
    // InternalXcore.g:18305:1: rule__XCasePart__Group__0__Impl : ( () ) ;
    public final void rule__XCasePart__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:18309:1: ( ( () ) )
            // InternalXcore.g:18310:1: ( () )
            {
            // InternalXcore.g:18310:1: ( () )
            // InternalXcore.g:18311:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXCasePartAccess().getXCasePartAction_0()); 
            }
            // InternalXcore.g:18312:1: ()
            // InternalXcore.g:18314:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXCasePartAccess().getXCasePartAction_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XCasePart__Group__0__Impl"


    // $ANTLR start "rule__XCasePart__Group__1"
    // InternalXcore.g:18324:1: rule__XCasePart__Group__1 : rule__XCasePart__Group__1__Impl rule__XCasePart__Group__2 ;
    public final void rule__XCasePart__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:18328:1: ( rule__XCasePart__Group__1__Impl rule__XCasePart__Group__2 )
            // InternalXcore.g:18329:2: rule__XCasePart__Group__1__Impl rule__XCasePart__Group__2
            {
            pushFollow(FollowSets000.FOLLOW_116);
            rule__XCasePart__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XCasePart__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XCasePart__Group__1"


    // $ANTLR start "rule__XCasePart__Group__1__Impl"
    // InternalXcore.g:18336:1: rule__XCasePart__Group__1__Impl : ( ( rule__XCasePart__TypeGuardAssignment_1 )? ) ;
    public final void rule__XCasePart__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:18340:1: ( ( ( rule__XCasePart__TypeGuardAssignment_1 )? ) )
            // InternalXcore.g:18341:1: ( ( rule__XCasePart__TypeGuardAssignment_1 )? )
            {
            // InternalXcore.g:18341:1: ( ( rule__XCasePart__TypeGuardAssignment_1 )? )
            // InternalXcore.g:18342:1: ( rule__XCasePart__TypeGuardAssignment_1 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXCasePartAccess().getTypeGuardAssignment_1()); 
            }
            // InternalXcore.g:18343:1: ( rule__XCasePart__TypeGuardAssignment_1 )?
            int alt152=2;
            int LA152_0 = input.LA(1);

            if ( (LA152_0==RULE_ID||LA152_0==16||(LA152_0>=20 && LA152_0<=23)||LA152_0==70||LA152_0==85) ) {
                alt152=1;
            }
            switch (alt152) {
                case 1 :
                    // InternalXcore.g:18343:2: rule__XCasePart__TypeGuardAssignment_1
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XCasePart__TypeGuardAssignment_1();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXCasePartAccess().getTypeGuardAssignment_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XCasePart__Group__1__Impl"


    // $ANTLR start "rule__XCasePart__Group__2"
    // InternalXcore.g:18353:1: rule__XCasePart__Group__2 : rule__XCasePart__Group__2__Impl rule__XCasePart__Group__3 ;
    public final void rule__XCasePart__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:18357:1: ( rule__XCasePart__Group__2__Impl rule__XCasePart__Group__3 )
            // InternalXcore.g:18358:2: rule__XCasePart__Group__2__Impl rule__XCasePart__Group__3
            {
            pushFollow(FollowSets000.FOLLOW_116);
            rule__XCasePart__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XCasePart__Group__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XCasePart__Group__2"


    // $ANTLR start "rule__XCasePart__Group__2__Impl"
    // InternalXcore.g:18365:1: rule__XCasePart__Group__2__Impl : ( ( rule__XCasePart__Group_2__0 )? ) ;
    public final void rule__XCasePart__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:18369:1: ( ( ( rule__XCasePart__Group_2__0 )? ) )
            // InternalXcore.g:18370:1: ( ( rule__XCasePart__Group_2__0 )? )
            {
            // InternalXcore.g:18370:1: ( ( rule__XCasePart__Group_2__0 )? )
            // InternalXcore.g:18371:1: ( rule__XCasePart__Group_2__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXCasePartAccess().getGroup_2()); 
            }
            // InternalXcore.g:18372:1: ( rule__XCasePart__Group_2__0 )?
            int alt153=2;
            int LA153_0 = input.LA(1);

            if ( (LA153_0==102) ) {
                alt153=1;
            }
            switch (alt153) {
                case 1 :
                    // InternalXcore.g:18372:2: rule__XCasePart__Group_2__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XCasePart__Group_2__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXCasePartAccess().getGroup_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XCasePart__Group__2__Impl"


    // $ANTLR start "rule__XCasePart__Group__3"
    // InternalXcore.g:18382:1: rule__XCasePart__Group__3 : rule__XCasePart__Group__3__Impl ;
    public final void rule__XCasePart__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:18386:1: ( rule__XCasePart__Group__3__Impl )
            // InternalXcore.g:18387:2: rule__XCasePart__Group__3__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XCasePart__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XCasePart__Group__3"


    // $ANTLR start "rule__XCasePart__Group__3__Impl"
    // InternalXcore.g:18393:1: rule__XCasePart__Group__3__Impl : ( ( rule__XCasePart__Alternatives_3 ) ) ;
    public final void rule__XCasePart__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:18397:1: ( ( ( rule__XCasePart__Alternatives_3 ) ) )
            // InternalXcore.g:18398:1: ( ( rule__XCasePart__Alternatives_3 ) )
            {
            // InternalXcore.g:18398:1: ( ( rule__XCasePart__Alternatives_3 ) )
            // InternalXcore.g:18399:1: ( rule__XCasePart__Alternatives_3 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXCasePartAccess().getAlternatives_3()); 
            }
            // InternalXcore.g:18400:1: ( rule__XCasePart__Alternatives_3 )
            // InternalXcore.g:18400:2: rule__XCasePart__Alternatives_3
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XCasePart__Alternatives_3();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXCasePartAccess().getAlternatives_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XCasePart__Group__3__Impl"


    // $ANTLR start "rule__XCasePart__Group_2__0"
    // InternalXcore.g:18418:1: rule__XCasePart__Group_2__0 : rule__XCasePart__Group_2__0__Impl rule__XCasePart__Group_2__1 ;
    public final void rule__XCasePart__Group_2__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:18422:1: ( rule__XCasePart__Group_2__0__Impl rule__XCasePart__Group_2__1 )
            // InternalXcore.g:18423:2: rule__XCasePart__Group_2__0__Impl rule__XCasePart__Group_2__1
            {
            pushFollow(FollowSets000.FOLLOW_72);
            rule__XCasePart__Group_2__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XCasePart__Group_2__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XCasePart__Group_2__0"


    // $ANTLR start "rule__XCasePart__Group_2__0__Impl"
    // InternalXcore.g:18430:1: rule__XCasePart__Group_2__0__Impl : ( 'case' ) ;
    public final void rule__XCasePart__Group_2__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:18434:1: ( ( 'case' ) )
            // InternalXcore.g:18435:1: ( 'case' )
            {
            // InternalXcore.g:18435:1: ( 'case' )
            // InternalXcore.g:18436:1: 'case'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXCasePartAccess().getCaseKeyword_2_0()); 
            }
            match(input,102,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXCasePartAccess().getCaseKeyword_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XCasePart__Group_2__0__Impl"


    // $ANTLR start "rule__XCasePart__Group_2__1"
    // InternalXcore.g:18449:1: rule__XCasePart__Group_2__1 : rule__XCasePart__Group_2__1__Impl ;
    public final void rule__XCasePart__Group_2__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:18453:1: ( rule__XCasePart__Group_2__1__Impl )
            // InternalXcore.g:18454:2: rule__XCasePart__Group_2__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XCasePart__Group_2__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XCasePart__Group_2__1"


    // $ANTLR start "rule__XCasePart__Group_2__1__Impl"
    // InternalXcore.g:18460:1: rule__XCasePart__Group_2__1__Impl : ( ( rule__XCasePart__CaseAssignment_2_1 ) ) ;
    public final void rule__XCasePart__Group_2__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:18464:1: ( ( ( rule__XCasePart__CaseAssignment_2_1 ) ) )
            // InternalXcore.g:18465:1: ( ( rule__XCasePart__CaseAssignment_2_1 ) )
            {
            // InternalXcore.g:18465:1: ( ( rule__XCasePart__CaseAssignment_2_1 ) )
            // InternalXcore.g:18466:1: ( rule__XCasePart__CaseAssignment_2_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXCasePartAccess().getCaseAssignment_2_1()); 
            }
            // InternalXcore.g:18467:1: ( rule__XCasePart__CaseAssignment_2_1 )
            // InternalXcore.g:18467:2: rule__XCasePart__CaseAssignment_2_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XCasePart__CaseAssignment_2_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXCasePartAccess().getCaseAssignment_2_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XCasePart__Group_2__1__Impl"


    // $ANTLR start "rule__XCasePart__Group_3_0__0"
    // InternalXcore.g:18481:1: rule__XCasePart__Group_3_0__0 : rule__XCasePart__Group_3_0__0__Impl rule__XCasePart__Group_3_0__1 ;
    public final void rule__XCasePart__Group_3_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:18485:1: ( rule__XCasePart__Group_3_0__0__Impl rule__XCasePart__Group_3_0__1 )
            // InternalXcore.g:18486:2: rule__XCasePart__Group_3_0__0__Impl rule__XCasePart__Group_3_0__1
            {
            pushFollow(FollowSets000.FOLLOW_72);
            rule__XCasePart__Group_3_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XCasePart__Group_3_0__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XCasePart__Group_3_0__0"


    // $ANTLR start "rule__XCasePart__Group_3_0__0__Impl"
    // InternalXcore.g:18493:1: rule__XCasePart__Group_3_0__0__Impl : ( ':' ) ;
    public final void rule__XCasePart__Group_3_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:18497:1: ( ( ':' ) )
            // InternalXcore.g:18498:1: ( ':' )
            {
            // InternalXcore.g:18498:1: ( ':' )
            // InternalXcore.g:18499:1: ':'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXCasePartAccess().getColonKeyword_3_0_0()); 
            }
            match(input,100,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXCasePartAccess().getColonKeyword_3_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XCasePart__Group_3_0__0__Impl"


    // $ANTLR start "rule__XCasePart__Group_3_0__1"
    // InternalXcore.g:18512:1: rule__XCasePart__Group_3_0__1 : rule__XCasePart__Group_3_0__1__Impl ;
    public final void rule__XCasePart__Group_3_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:18516:1: ( rule__XCasePart__Group_3_0__1__Impl )
            // InternalXcore.g:18517:2: rule__XCasePart__Group_3_0__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XCasePart__Group_3_0__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XCasePart__Group_3_0__1"


    // $ANTLR start "rule__XCasePart__Group_3_0__1__Impl"
    // InternalXcore.g:18523:1: rule__XCasePart__Group_3_0__1__Impl : ( ( rule__XCasePart__ThenAssignment_3_0_1 ) ) ;
    public final void rule__XCasePart__Group_3_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:18527:1: ( ( ( rule__XCasePart__ThenAssignment_3_0_1 ) ) )
            // InternalXcore.g:18528:1: ( ( rule__XCasePart__ThenAssignment_3_0_1 ) )
            {
            // InternalXcore.g:18528:1: ( ( rule__XCasePart__ThenAssignment_3_0_1 ) )
            // InternalXcore.g:18529:1: ( rule__XCasePart__ThenAssignment_3_0_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXCasePartAccess().getThenAssignment_3_0_1()); 
            }
            // InternalXcore.g:18530:1: ( rule__XCasePart__ThenAssignment_3_0_1 )
            // InternalXcore.g:18530:2: rule__XCasePart__ThenAssignment_3_0_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XCasePart__ThenAssignment_3_0_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXCasePartAccess().getThenAssignment_3_0_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XCasePart__Group_3_0__1__Impl"


    // $ANTLR start "rule__XForLoopExpression__Group__0"
    // InternalXcore.g:18544:1: rule__XForLoopExpression__Group__0 : rule__XForLoopExpression__Group__0__Impl rule__XForLoopExpression__Group__1 ;
    public final void rule__XForLoopExpression__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:18548:1: ( rule__XForLoopExpression__Group__0__Impl rule__XForLoopExpression__Group__1 )
            // InternalXcore.g:18549:2: rule__XForLoopExpression__Group__0__Impl rule__XForLoopExpression__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_72);
            rule__XForLoopExpression__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XForLoopExpression__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XForLoopExpression__Group__0"


    // $ANTLR start "rule__XForLoopExpression__Group__0__Impl"
    // InternalXcore.g:18556:1: rule__XForLoopExpression__Group__0__Impl : ( ( rule__XForLoopExpression__Group_0__0 ) ) ;
    public final void rule__XForLoopExpression__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:18560:1: ( ( ( rule__XForLoopExpression__Group_0__0 ) ) )
            // InternalXcore.g:18561:1: ( ( rule__XForLoopExpression__Group_0__0 ) )
            {
            // InternalXcore.g:18561:1: ( ( rule__XForLoopExpression__Group_0__0 ) )
            // InternalXcore.g:18562:1: ( rule__XForLoopExpression__Group_0__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXForLoopExpressionAccess().getGroup_0()); 
            }
            // InternalXcore.g:18563:1: ( rule__XForLoopExpression__Group_0__0 )
            // InternalXcore.g:18563:2: rule__XForLoopExpression__Group_0__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XForLoopExpression__Group_0__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXForLoopExpressionAccess().getGroup_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XForLoopExpression__Group__0__Impl"


    // $ANTLR start "rule__XForLoopExpression__Group__1"
    // InternalXcore.g:18573:1: rule__XForLoopExpression__Group__1 : rule__XForLoopExpression__Group__1__Impl rule__XForLoopExpression__Group__2 ;
    public final void rule__XForLoopExpression__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:18577:1: ( rule__XForLoopExpression__Group__1__Impl rule__XForLoopExpression__Group__2 )
            // InternalXcore.g:18578:2: rule__XForLoopExpression__Group__1__Impl rule__XForLoopExpression__Group__2
            {
            pushFollow(FollowSets000.FOLLOW_108);
            rule__XForLoopExpression__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XForLoopExpression__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XForLoopExpression__Group__1"


    // $ANTLR start "rule__XForLoopExpression__Group__1__Impl"
    // InternalXcore.g:18585:1: rule__XForLoopExpression__Group__1__Impl : ( ( rule__XForLoopExpression__ForExpressionAssignment_1 ) ) ;
    public final void rule__XForLoopExpression__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:18589:1: ( ( ( rule__XForLoopExpression__ForExpressionAssignment_1 ) ) )
            // InternalXcore.g:18590:1: ( ( rule__XForLoopExpression__ForExpressionAssignment_1 ) )
            {
            // InternalXcore.g:18590:1: ( ( rule__XForLoopExpression__ForExpressionAssignment_1 ) )
            // InternalXcore.g:18591:1: ( rule__XForLoopExpression__ForExpressionAssignment_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXForLoopExpressionAccess().getForExpressionAssignment_1()); 
            }
            // InternalXcore.g:18592:1: ( rule__XForLoopExpression__ForExpressionAssignment_1 )
            // InternalXcore.g:18592:2: rule__XForLoopExpression__ForExpressionAssignment_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XForLoopExpression__ForExpressionAssignment_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXForLoopExpressionAccess().getForExpressionAssignment_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XForLoopExpression__Group__1__Impl"


    // $ANTLR start "rule__XForLoopExpression__Group__2"
    // InternalXcore.g:18602:1: rule__XForLoopExpression__Group__2 : rule__XForLoopExpression__Group__2__Impl rule__XForLoopExpression__Group__3 ;
    public final void rule__XForLoopExpression__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:18606:1: ( rule__XForLoopExpression__Group__2__Impl rule__XForLoopExpression__Group__3 )
            // InternalXcore.g:18607:2: rule__XForLoopExpression__Group__2__Impl rule__XForLoopExpression__Group__3
            {
            pushFollow(FollowSets000.FOLLOW_72);
            rule__XForLoopExpression__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XForLoopExpression__Group__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XForLoopExpression__Group__2"


    // $ANTLR start "rule__XForLoopExpression__Group__2__Impl"
    // InternalXcore.g:18614:1: rule__XForLoopExpression__Group__2__Impl : ( ')' ) ;
    public final void rule__XForLoopExpression__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:18618:1: ( ( ')' ) )
            // InternalXcore.g:18619:1: ( ')' )
            {
            // InternalXcore.g:18619:1: ( ')' )
            // InternalXcore.g:18620:1: ')'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXForLoopExpressionAccess().getRightParenthesisKeyword_2()); 
            }
            match(input,86,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXForLoopExpressionAccess().getRightParenthesisKeyword_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XForLoopExpression__Group__2__Impl"


    // $ANTLR start "rule__XForLoopExpression__Group__3"
    // InternalXcore.g:18633:1: rule__XForLoopExpression__Group__3 : rule__XForLoopExpression__Group__3__Impl ;
    public final void rule__XForLoopExpression__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:18637:1: ( rule__XForLoopExpression__Group__3__Impl )
            // InternalXcore.g:18638:2: rule__XForLoopExpression__Group__3__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XForLoopExpression__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XForLoopExpression__Group__3"


    // $ANTLR start "rule__XForLoopExpression__Group__3__Impl"
    // InternalXcore.g:18644:1: rule__XForLoopExpression__Group__3__Impl : ( ( rule__XForLoopExpression__EachExpressionAssignment_3 ) ) ;
    public final void rule__XForLoopExpression__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:18648:1: ( ( ( rule__XForLoopExpression__EachExpressionAssignment_3 ) ) )
            // InternalXcore.g:18649:1: ( ( rule__XForLoopExpression__EachExpressionAssignment_3 ) )
            {
            // InternalXcore.g:18649:1: ( ( rule__XForLoopExpression__EachExpressionAssignment_3 ) )
            // InternalXcore.g:18650:1: ( rule__XForLoopExpression__EachExpressionAssignment_3 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXForLoopExpressionAccess().getEachExpressionAssignment_3()); 
            }
            // InternalXcore.g:18651:1: ( rule__XForLoopExpression__EachExpressionAssignment_3 )
            // InternalXcore.g:18651:2: rule__XForLoopExpression__EachExpressionAssignment_3
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XForLoopExpression__EachExpressionAssignment_3();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXForLoopExpressionAccess().getEachExpressionAssignment_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XForLoopExpression__Group__3__Impl"


    // $ANTLR start "rule__XForLoopExpression__Group_0__0"
    // InternalXcore.g:18669:1: rule__XForLoopExpression__Group_0__0 : rule__XForLoopExpression__Group_0__0__Impl ;
    public final void rule__XForLoopExpression__Group_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:18673:1: ( rule__XForLoopExpression__Group_0__0__Impl )
            // InternalXcore.g:18674:2: rule__XForLoopExpression__Group_0__0__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XForLoopExpression__Group_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XForLoopExpression__Group_0__0"


    // $ANTLR start "rule__XForLoopExpression__Group_0__0__Impl"
    // InternalXcore.g:18680:1: rule__XForLoopExpression__Group_0__0__Impl : ( ( rule__XForLoopExpression__Group_0_0__0 ) ) ;
    public final void rule__XForLoopExpression__Group_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:18684:1: ( ( ( rule__XForLoopExpression__Group_0_0__0 ) ) )
            // InternalXcore.g:18685:1: ( ( rule__XForLoopExpression__Group_0_0__0 ) )
            {
            // InternalXcore.g:18685:1: ( ( rule__XForLoopExpression__Group_0_0__0 ) )
            // InternalXcore.g:18686:1: ( rule__XForLoopExpression__Group_0_0__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXForLoopExpressionAccess().getGroup_0_0()); 
            }
            // InternalXcore.g:18687:1: ( rule__XForLoopExpression__Group_0_0__0 )
            // InternalXcore.g:18687:2: rule__XForLoopExpression__Group_0_0__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XForLoopExpression__Group_0_0__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXForLoopExpressionAccess().getGroup_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XForLoopExpression__Group_0__0__Impl"


    // $ANTLR start "rule__XForLoopExpression__Group_0_0__0"
    // InternalXcore.g:18699:1: rule__XForLoopExpression__Group_0_0__0 : rule__XForLoopExpression__Group_0_0__0__Impl rule__XForLoopExpression__Group_0_0__1 ;
    public final void rule__XForLoopExpression__Group_0_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:18703:1: ( rule__XForLoopExpression__Group_0_0__0__Impl rule__XForLoopExpression__Group_0_0__1 )
            // InternalXcore.g:18704:2: rule__XForLoopExpression__Group_0_0__0__Impl rule__XForLoopExpression__Group_0_0__1
            {
            pushFollow(FollowSets000.FOLLOW_117);
            rule__XForLoopExpression__Group_0_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XForLoopExpression__Group_0_0__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XForLoopExpression__Group_0_0__0"


    // $ANTLR start "rule__XForLoopExpression__Group_0_0__0__Impl"
    // InternalXcore.g:18711:1: rule__XForLoopExpression__Group_0_0__0__Impl : ( () ) ;
    public final void rule__XForLoopExpression__Group_0_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:18715:1: ( ( () ) )
            // InternalXcore.g:18716:1: ( () )
            {
            // InternalXcore.g:18716:1: ( () )
            // InternalXcore.g:18717:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXForLoopExpressionAccess().getXForLoopExpressionAction_0_0_0()); 
            }
            // InternalXcore.g:18718:1: ()
            // InternalXcore.g:18720:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXForLoopExpressionAccess().getXForLoopExpressionAction_0_0_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XForLoopExpression__Group_0_0__0__Impl"


    // $ANTLR start "rule__XForLoopExpression__Group_0_0__1"
    // InternalXcore.g:18730:1: rule__XForLoopExpression__Group_0_0__1 : rule__XForLoopExpression__Group_0_0__1__Impl rule__XForLoopExpression__Group_0_0__2 ;
    public final void rule__XForLoopExpression__Group_0_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:18734:1: ( rule__XForLoopExpression__Group_0_0__1__Impl rule__XForLoopExpression__Group_0_0__2 )
            // InternalXcore.g:18735:2: rule__XForLoopExpression__Group_0_0__1__Impl rule__XForLoopExpression__Group_0_0__2
            {
            pushFollow(FollowSets000.FOLLOW_12);
            rule__XForLoopExpression__Group_0_0__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XForLoopExpression__Group_0_0__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XForLoopExpression__Group_0_0__1"


    // $ANTLR start "rule__XForLoopExpression__Group_0_0__1__Impl"
    // InternalXcore.g:18742:1: rule__XForLoopExpression__Group_0_0__1__Impl : ( 'for' ) ;
    public final void rule__XForLoopExpression__Group_0_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:18746:1: ( ( 'for' ) )
            // InternalXcore.g:18747:1: ( 'for' )
            {
            // InternalXcore.g:18747:1: ( 'for' )
            // InternalXcore.g:18748:1: 'for'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXForLoopExpressionAccess().getForKeyword_0_0_1()); 
            }
            match(input,103,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXForLoopExpressionAccess().getForKeyword_0_0_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XForLoopExpression__Group_0_0__1__Impl"


    // $ANTLR start "rule__XForLoopExpression__Group_0_0__2"
    // InternalXcore.g:18761:1: rule__XForLoopExpression__Group_0_0__2 : rule__XForLoopExpression__Group_0_0__2__Impl rule__XForLoopExpression__Group_0_0__3 ;
    public final void rule__XForLoopExpression__Group_0_0__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:18765:1: ( rule__XForLoopExpression__Group_0_0__2__Impl rule__XForLoopExpression__Group_0_0__3 )
            // InternalXcore.g:18766:2: rule__XForLoopExpression__Group_0_0__2__Impl rule__XForLoopExpression__Group_0_0__3
            {
            pushFollow(FollowSets000.FOLLOW_22);
            rule__XForLoopExpression__Group_0_0__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XForLoopExpression__Group_0_0__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XForLoopExpression__Group_0_0__2"


    // $ANTLR start "rule__XForLoopExpression__Group_0_0__2__Impl"
    // InternalXcore.g:18773:1: rule__XForLoopExpression__Group_0_0__2__Impl : ( '(' ) ;
    public final void rule__XForLoopExpression__Group_0_0__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:18777:1: ( ( '(' ) )
            // InternalXcore.g:18778:1: ( '(' )
            {
            // InternalXcore.g:18778:1: ( '(' )
            // InternalXcore.g:18779:1: '('
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXForLoopExpressionAccess().getLeftParenthesisKeyword_0_0_2()); 
            }
            match(input,85,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXForLoopExpressionAccess().getLeftParenthesisKeyword_0_0_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XForLoopExpression__Group_0_0__2__Impl"


    // $ANTLR start "rule__XForLoopExpression__Group_0_0__3"
    // InternalXcore.g:18792:1: rule__XForLoopExpression__Group_0_0__3 : rule__XForLoopExpression__Group_0_0__3__Impl rule__XForLoopExpression__Group_0_0__4 ;
    public final void rule__XForLoopExpression__Group_0_0__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:18796:1: ( rule__XForLoopExpression__Group_0_0__3__Impl rule__XForLoopExpression__Group_0_0__4 )
            // InternalXcore.g:18797:2: rule__XForLoopExpression__Group_0_0__3__Impl rule__XForLoopExpression__Group_0_0__4
            {
            pushFollow(FollowSets000.FOLLOW_115);
            rule__XForLoopExpression__Group_0_0__3__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XForLoopExpression__Group_0_0__4();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XForLoopExpression__Group_0_0__3"


    // $ANTLR start "rule__XForLoopExpression__Group_0_0__3__Impl"
    // InternalXcore.g:18804:1: rule__XForLoopExpression__Group_0_0__3__Impl : ( ( rule__XForLoopExpression__DeclaredParamAssignment_0_0_3 ) ) ;
    public final void rule__XForLoopExpression__Group_0_0__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:18808:1: ( ( ( rule__XForLoopExpression__DeclaredParamAssignment_0_0_3 ) ) )
            // InternalXcore.g:18809:1: ( ( rule__XForLoopExpression__DeclaredParamAssignment_0_0_3 ) )
            {
            // InternalXcore.g:18809:1: ( ( rule__XForLoopExpression__DeclaredParamAssignment_0_0_3 ) )
            // InternalXcore.g:18810:1: ( rule__XForLoopExpression__DeclaredParamAssignment_0_0_3 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXForLoopExpressionAccess().getDeclaredParamAssignment_0_0_3()); 
            }
            // InternalXcore.g:18811:1: ( rule__XForLoopExpression__DeclaredParamAssignment_0_0_3 )
            // InternalXcore.g:18811:2: rule__XForLoopExpression__DeclaredParamAssignment_0_0_3
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XForLoopExpression__DeclaredParamAssignment_0_0_3();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXForLoopExpressionAccess().getDeclaredParamAssignment_0_0_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XForLoopExpression__Group_0_0__3__Impl"


    // $ANTLR start "rule__XForLoopExpression__Group_0_0__4"
    // InternalXcore.g:18821:1: rule__XForLoopExpression__Group_0_0__4 : rule__XForLoopExpression__Group_0_0__4__Impl ;
    public final void rule__XForLoopExpression__Group_0_0__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:18825:1: ( rule__XForLoopExpression__Group_0_0__4__Impl )
            // InternalXcore.g:18826:2: rule__XForLoopExpression__Group_0_0__4__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XForLoopExpression__Group_0_0__4__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XForLoopExpression__Group_0_0__4"


    // $ANTLR start "rule__XForLoopExpression__Group_0_0__4__Impl"
    // InternalXcore.g:18832:1: rule__XForLoopExpression__Group_0_0__4__Impl : ( ':' ) ;
    public final void rule__XForLoopExpression__Group_0_0__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:18836:1: ( ( ':' ) )
            // InternalXcore.g:18837:1: ( ':' )
            {
            // InternalXcore.g:18837:1: ( ':' )
            // InternalXcore.g:18838:1: ':'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXForLoopExpressionAccess().getColonKeyword_0_0_4()); 
            }
            match(input,100,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXForLoopExpressionAccess().getColonKeyword_0_0_4()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XForLoopExpression__Group_0_0__4__Impl"


    // $ANTLR start "rule__XBasicForLoopExpression__Group__0"
    // InternalXcore.g:18861:1: rule__XBasicForLoopExpression__Group__0 : rule__XBasicForLoopExpression__Group__0__Impl rule__XBasicForLoopExpression__Group__1 ;
    public final void rule__XBasicForLoopExpression__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:18865:1: ( rule__XBasicForLoopExpression__Group__0__Impl rule__XBasicForLoopExpression__Group__1 )
            // InternalXcore.g:18866:2: rule__XBasicForLoopExpression__Group__0__Impl rule__XBasicForLoopExpression__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_117);
            rule__XBasicForLoopExpression__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XBasicForLoopExpression__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XBasicForLoopExpression__Group__0"


    // $ANTLR start "rule__XBasicForLoopExpression__Group__0__Impl"
    // InternalXcore.g:18873:1: rule__XBasicForLoopExpression__Group__0__Impl : ( () ) ;
    public final void rule__XBasicForLoopExpression__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:18877:1: ( ( () ) )
            // InternalXcore.g:18878:1: ( () )
            {
            // InternalXcore.g:18878:1: ( () )
            // InternalXcore.g:18879:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXBasicForLoopExpressionAccess().getXBasicForLoopExpressionAction_0()); 
            }
            // InternalXcore.g:18880:1: ()
            // InternalXcore.g:18882:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXBasicForLoopExpressionAccess().getXBasicForLoopExpressionAction_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XBasicForLoopExpression__Group__0__Impl"


    // $ANTLR start "rule__XBasicForLoopExpression__Group__1"
    // InternalXcore.g:18892:1: rule__XBasicForLoopExpression__Group__1 : rule__XBasicForLoopExpression__Group__1__Impl rule__XBasicForLoopExpression__Group__2 ;
    public final void rule__XBasicForLoopExpression__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:18896:1: ( rule__XBasicForLoopExpression__Group__1__Impl rule__XBasicForLoopExpression__Group__2 )
            // InternalXcore.g:18897:2: rule__XBasicForLoopExpression__Group__1__Impl rule__XBasicForLoopExpression__Group__2
            {
            pushFollow(FollowSets000.FOLLOW_12);
            rule__XBasicForLoopExpression__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XBasicForLoopExpression__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XBasicForLoopExpression__Group__1"


    // $ANTLR start "rule__XBasicForLoopExpression__Group__1__Impl"
    // InternalXcore.g:18904:1: rule__XBasicForLoopExpression__Group__1__Impl : ( 'for' ) ;
    public final void rule__XBasicForLoopExpression__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:18908:1: ( ( 'for' ) )
            // InternalXcore.g:18909:1: ( 'for' )
            {
            // InternalXcore.g:18909:1: ( 'for' )
            // InternalXcore.g:18910:1: 'for'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXBasicForLoopExpressionAccess().getForKeyword_1()); 
            }
            match(input,103,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXBasicForLoopExpressionAccess().getForKeyword_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XBasicForLoopExpression__Group__1__Impl"


    // $ANTLR start "rule__XBasicForLoopExpression__Group__2"
    // InternalXcore.g:18923:1: rule__XBasicForLoopExpression__Group__2 : rule__XBasicForLoopExpression__Group__2__Impl rule__XBasicForLoopExpression__Group__3 ;
    public final void rule__XBasicForLoopExpression__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:18927:1: ( rule__XBasicForLoopExpression__Group__2__Impl rule__XBasicForLoopExpression__Group__3 )
            // InternalXcore.g:18928:2: rule__XBasicForLoopExpression__Group__2__Impl rule__XBasicForLoopExpression__Group__3
            {
            pushFollow(FollowSets000.FOLLOW_118);
            rule__XBasicForLoopExpression__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XBasicForLoopExpression__Group__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XBasicForLoopExpression__Group__2"


    // $ANTLR start "rule__XBasicForLoopExpression__Group__2__Impl"
    // InternalXcore.g:18935:1: rule__XBasicForLoopExpression__Group__2__Impl : ( '(' ) ;
    public final void rule__XBasicForLoopExpression__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:18939:1: ( ( '(' ) )
            // InternalXcore.g:18940:1: ( '(' )
            {
            // InternalXcore.g:18940:1: ( '(' )
            // InternalXcore.g:18941:1: '('
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXBasicForLoopExpressionAccess().getLeftParenthesisKeyword_2()); 
            }
            match(input,85,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXBasicForLoopExpressionAccess().getLeftParenthesisKeyword_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XBasicForLoopExpression__Group__2__Impl"


    // $ANTLR start "rule__XBasicForLoopExpression__Group__3"
    // InternalXcore.g:18954:1: rule__XBasicForLoopExpression__Group__3 : rule__XBasicForLoopExpression__Group__3__Impl rule__XBasicForLoopExpression__Group__4 ;
    public final void rule__XBasicForLoopExpression__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:18958:1: ( rule__XBasicForLoopExpression__Group__3__Impl rule__XBasicForLoopExpression__Group__4 )
            // InternalXcore.g:18959:2: rule__XBasicForLoopExpression__Group__3__Impl rule__XBasicForLoopExpression__Group__4
            {
            pushFollow(FollowSets000.FOLLOW_118);
            rule__XBasicForLoopExpression__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XBasicForLoopExpression__Group__4();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XBasicForLoopExpression__Group__3"


    // $ANTLR start "rule__XBasicForLoopExpression__Group__3__Impl"
    // InternalXcore.g:18966:1: rule__XBasicForLoopExpression__Group__3__Impl : ( ( rule__XBasicForLoopExpression__Group_3__0 )? ) ;
    public final void rule__XBasicForLoopExpression__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:18970:1: ( ( ( rule__XBasicForLoopExpression__Group_3__0 )? ) )
            // InternalXcore.g:18971:1: ( ( rule__XBasicForLoopExpression__Group_3__0 )? )
            {
            // InternalXcore.g:18971:1: ( ( rule__XBasicForLoopExpression__Group_3__0 )? )
            // InternalXcore.g:18972:1: ( rule__XBasicForLoopExpression__Group_3__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXBasicForLoopExpressionAccess().getGroup_3()); 
            }
            // InternalXcore.g:18973:1: ( rule__XBasicForLoopExpression__Group_3__0 )?
            int alt154=2;
            int LA154_0 = input.LA(1);

            if ( ((LA154_0>=RULE_INT && LA154_0<=RULE_STRING)||LA154_0==16||(LA154_0>=19 && LA154_0<=54)||LA154_0==66||LA154_0==73||LA154_0==77||(LA154_0>=81 && LA154_0<=83)||LA154_0==85||LA154_0==89||LA154_0==92||(LA154_0>=96 && LA154_0<=97)||LA154_0==99||(LA154_0>=103 && LA154_0<=111)||LA154_0==113||(LA154_0>=118 && LA154_0<=119)) ) {
                alt154=1;
            }
            switch (alt154) {
                case 1 :
                    // InternalXcore.g:18973:2: rule__XBasicForLoopExpression__Group_3__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XBasicForLoopExpression__Group_3__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXBasicForLoopExpressionAccess().getGroup_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XBasicForLoopExpression__Group__3__Impl"


    // $ANTLR start "rule__XBasicForLoopExpression__Group__4"
    // InternalXcore.g:18983:1: rule__XBasicForLoopExpression__Group__4 : rule__XBasicForLoopExpression__Group__4__Impl rule__XBasicForLoopExpression__Group__5 ;
    public final void rule__XBasicForLoopExpression__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:18987:1: ( rule__XBasicForLoopExpression__Group__4__Impl rule__XBasicForLoopExpression__Group__5 )
            // InternalXcore.g:18988:2: rule__XBasicForLoopExpression__Group__4__Impl rule__XBasicForLoopExpression__Group__5
            {
            pushFollow(FollowSets000.FOLLOW_118);
            rule__XBasicForLoopExpression__Group__4__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XBasicForLoopExpression__Group__5();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XBasicForLoopExpression__Group__4"


    // $ANTLR start "rule__XBasicForLoopExpression__Group__4__Impl"
    // InternalXcore.g:18995:1: rule__XBasicForLoopExpression__Group__4__Impl : ( ';' ) ;
    public final void rule__XBasicForLoopExpression__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:18999:1: ( ( ';' ) )
            // InternalXcore.g:19000:1: ( ';' )
            {
            // InternalXcore.g:19000:1: ( ';' )
            // InternalXcore.g:19001:1: ';'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXBasicForLoopExpressionAccess().getSemicolonKeyword_4()); 
            }
            match(input,94,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXBasicForLoopExpressionAccess().getSemicolonKeyword_4()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XBasicForLoopExpression__Group__4__Impl"


    // $ANTLR start "rule__XBasicForLoopExpression__Group__5"
    // InternalXcore.g:19014:1: rule__XBasicForLoopExpression__Group__5 : rule__XBasicForLoopExpression__Group__5__Impl rule__XBasicForLoopExpression__Group__6 ;
    public final void rule__XBasicForLoopExpression__Group__5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:19018:1: ( rule__XBasicForLoopExpression__Group__5__Impl rule__XBasicForLoopExpression__Group__6 )
            // InternalXcore.g:19019:2: rule__XBasicForLoopExpression__Group__5__Impl rule__XBasicForLoopExpression__Group__6
            {
            pushFollow(FollowSets000.FOLLOW_118);
            rule__XBasicForLoopExpression__Group__5__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XBasicForLoopExpression__Group__6();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XBasicForLoopExpression__Group__5"


    // $ANTLR start "rule__XBasicForLoopExpression__Group__5__Impl"
    // InternalXcore.g:19026:1: rule__XBasicForLoopExpression__Group__5__Impl : ( ( rule__XBasicForLoopExpression__ExpressionAssignment_5 )? ) ;
    public final void rule__XBasicForLoopExpression__Group__5__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:19030:1: ( ( ( rule__XBasicForLoopExpression__ExpressionAssignment_5 )? ) )
            // InternalXcore.g:19031:1: ( ( rule__XBasicForLoopExpression__ExpressionAssignment_5 )? )
            {
            // InternalXcore.g:19031:1: ( ( rule__XBasicForLoopExpression__ExpressionAssignment_5 )? )
            // InternalXcore.g:19032:1: ( rule__XBasicForLoopExpression__ExpressionAssignment_5 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXBasicForLoopExpressionAccess().getExpressionAssignment_5()); 
            }
            // InternalXcore.g:19033:1: ( rule__XBasicForLoopExpression__ExpressionAssignment_5 )?
            int alt155=2;
            int LA155_0 = input.LA(1);

            if ( ((LA155_0>=RULE_INT && LA155_0<=RULE_STRING)||LA155_0==16||(LA155_0>=19 && LA155_0<=54)||LA155_0==66||LA155_0==73||LA155_0==77||(LA155_0>=82 && LA155_0<=83)||LA155_0==85||LA155_0==89||LA155_0==92||(LA155_0>=96 && LA155_0<=97)||LA155_0==99||(LA155_0>=103 && LA155_0<=111)||LA155_0==113||LA155_0==119) ) {
                alt155=1;
            }
            switch (alt155) {
                case 1 :
                    // InternalXcore.g:19033:2: rule__XBasicForLoopExpression__ExpressionAssignment_5
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XBasicForLoopExpression__ExpressionAssignment_5();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXBasicForLoopExpressionAccess().getExpressionAssignment_5()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XBasicForLoopExpression__Group__5__Impl"


    // $ANTLR start "rule__XBasicForLoopExpression__Group__6"
    // InternalXcore.g:19043:1: rule__XBasicForLoopExpression__Group__6 : rule__XBasicForLoopExpression__Group__6__Impl rule__XBasicForLoopExpression__Group__7 ;
    public final void rule__XBasicForLoopExpression__Group__6() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:19047:1: ( rule__XBasicForLoopExpression__Group__6__Impl rule__XBasicForLoopExpression__Group__7 )
            // InternalXcore.g:19048:2: rule__XBasicForLoopExpression__Group__6__Impl rule__XBasicForLoopExpression__Group__7
            {
            pushFollow(FollowSets000.FOLLOW_119);
            rule__XBasicForLoopExpression__Group__6__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XBasicForLoopExpression__Group__7();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XBasicForLoopExpression__Group__6"


    // $ANTLR start "rule__XBasicForLoopExpression__Group__6__Impl"
    // InternalXcore.g:19055:1: rule__XBasicForLoopExpression__Group__6__Impl : ( ';' ) ;
    public final void rule__XBasicForLoopExpression__Group__6__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:19059:1: ( ( ';' ) )
            // InternalXcore.g:19060:1: ( ';' )
            {
            // InternalXcore.g:19060:1: ( ';' )
            // InternalXcore.g:19061:1: ';'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXBasicForLoopExpressionAccess().getSemicolonKeyword_6()); 
            }
            match(input,94,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXBasicForLoopExpressionAccess().getSemicolonKeyword_6()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XBasicForLoopExpression__Group__6__Impl"


    // $ANTLR start "rule__XBasicForLoopExpression__Group__7"
    // InternalXcore.g:19074:1: rule__XBasicForLoopExpression__Group__7 : rule__XBasicForLoopExpression__Group__7__Impl rule__XBasicForLoopExpression__Group__8 ;
    public final void rule__XBasicForLoopExpression__Group__7() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:19078:1: ( rule__XBasicForLoopExpression__Group__7__Impl rule__XBasicForLoopExpression__Group__8 )
            // InternalXcore.g:19079:2: rule__XBasicForLoopExpression__Group__7__Impl rule__XBasicForLoopExpression__Group__8
            {
            pushFollow(FollowSets000.FOLLOW_119);
            rule__XBasicForLoopExpression__Group__7__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XBasicForLoopExpression__Group__8();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XBasicForLoopExpression__Group__7"


    // $ANTLR start "rule__XBasicForLoopExpression__Group__7__Impl"
    // InternalXcore.g:19086:1: rule__XBasicForLoopExpression__Group__7__Impl : ( ( rule__XBasicForLoopExpression__Group_7__0 )? ) ;
    public final void rule__XBasicForLoopExpression__Group__7__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:19090:1: ( ( ( rule__XBasicForLoopExpression__Group_7__0 )? ) )
            // InternalXcore.g:19091:1: ( ( rule__XBasicForLoopExpression__Group_7__0 )? )
            {
            // InternalXcore.g:19091:1: ( ( rule__XBasicForLoopExpression__Group_7__0 )? )
            // InternalXcore.g:19092:1: ( rule__XBasicForLoopExpression__Group_7__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXBasicForLoopExpressionAccess().getGroup_7()); 
            }
            // InternalXcore.g:19093:1: ( rule__XBasicForLoopExpression__Group_7__0 )?
            int alt156=2;
            int LA156_0 = input.LA(1);

            if ( ((LA156_0>=RULE_INT && LA156_0<=RULE_STRING)||LA156_0==16||(LA156_0>=19 && LA156_0<=54)||LA156_0==66||LA156_0==73||LA156_0==77||(LA156_0>=82 && LA156_0<=83)||LA156_0==85||LA156_0==89||LA156_0==92||(LA156_0>=96 && LA156_0<=97)||LA156_0==99||(LA156_0>=103 && LA156_0<=111)||LA156_0==113||LA156_0==119) ) {
                alt156=1;
            }
            switch (alt156) {
                case 1 :
                    // InternalXcore.g:19093:2: rule__XBasicForLoopExpression__Group_7__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XBasicForLoopExpression__Group_7__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXBasicForLoopExpressionAccess().getGroup_7()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XBasicForLoopExpression__Group__7__Impl"


    // $ANTLR start "rule__XBasicForLoopExpression__Group__8"
    // InternalXcore.g:19103:1: rule__XBasicForLoopExpression__Group__8 : rule__XBasicForLoopExpression__Group__8__Impl rule__XBasicForLoopExpression__Group__9 ;
    public final void rule__XBasicForLoopExpression__Group__8() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:19107:1: ( rule__XBasicForLoopExpression__Group__8__Impl rule__XBasicForLoopExpression__Group__9 )
            // InternalXcore.g:19108:2: rule__XBasicForLoopExpression__Group__8__Impl rule__XBasicForLoopExpression__Group__9
            {
            pushFollow(FollowSets000.FOLLOW_72);
            rule__XBasicForLoopExpression__Group__8__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XBasicForLoopExpression__Group__9();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XBasicForLoopExpression__Group__8"


    // $ANTLR start "rule__XBasicForLoopExpression__Group__8__Impl"
    // InternalXcore.g:19115:1: rule__XBasicForLoopExpression__Group__8__Impl : ( ')' ) ;
    public final void rule__XBasicForLoopExpression__Group__8__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:19119:1: ( ( ')' ) )
            // InternalXcore.g:19120:1: ( ')' )
            {
            // InternalXcore.g:19120:1: ( ')' )
            // InternalXcore.g:19121:1: ')'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXBasicForLoopExpressionAccess().getRightParenthesisKeyword_8()); 
            }
            match(input,86,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXBasicForLoopExpressionAccess().getRightParenthesisKeyword_8()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XBasicForLoopExpression__Group__8__Impl"


    // $ANTLR start "rule__XBasicForLoopExpression__Group__9"
    // InternalXcore.g:19134:1: rule__XBasicForLoopExpression__Group__9 : rule__XBasicForLoopExpression__Group__9__Impl ;
    public final void rule__XBasicForLoopExpression__Group__9() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:19138:1: ( rule__XBasicForLoopExpression__Group__9__Impl )
            // InternalXcore.g:19139:2: rule__XBasicForLoopExpression__Group__9__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XBasicForLoopExpression__Group__9__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XBasicForLoopExpression__Group__9"


    // $ANTLR start "rule__XBasicForLoopExpression__Group__9__Impl"
    // InternalXcore.g:19145:1: rule__XBasicForLoopExpression__Group__9__Impl : ( ( rule__XBasicForLoopExpression__EachExpressionAssignment_9 ) ) ;
    public final void rule__XBasicForLoopExpression__Group__9__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:19149:1: ( ( ( rule__XBasicForLoopExpression__EachExpressionAssignment_9 ) ) )
            // InternalXcore.g:19150:1: ( ( rule__XBasicForLoopExpression__EachExpressionAssignment_9 ) )
            {
            // InternalXcore.g:19150:1: ( ( rule__XBasicForLoopExpression__EachExpressionAssignment_9 ) )
            // InternalXcore.g:19151:1: ( rule__XBasicForLoopExpression__EachExpressionAssignment_9 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXBasicForLoopExpressionAccess().getEachExpressionAssignment_9()); 
            }
            // InternalXcore.g:19152:1: ( rule__XBasicForLoopExpression__EachExpressionAssignment_9 )
            // InternalXcore.g:19152:2: rule__XBasicForLoopExpression__EachExpressionAssignment_9
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XBasicForLoopExpression__EachExpressionAssignment_9();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXBasicForLoopExpressionAccess().getEachExpressionAssignment_9()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XBasicForLoopExpression__Group__9__Impl"


    // $ANTLR start "rule__XBasicForLoopExpression__Group_3__0"
    // InternalXcore.g:19182:1: rule__XBasicForLoopExpression__Group_3__0 : rule__XBasicForLoopExpression__Group_3__0__Impl rule__XBasicForLoopExpression__Group_3__1 ;
    public final void rule__XBasicForLoopExpression__Group_3__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:19186:1: ( rule__XBasicForLoopExpression__Group_3__0__Impl rule__XBasicForLoopExpression__Group_3__1 )
            // InternalXcore.g:19187:2: rule__XBasicForLoopExpression__Group_3__0__Impl rule__XBasicForLoopExpression__Group_3__1
            {
            pushFollow(FollowSets000.FOLLOW_38);
            rule__XBasicForLoopExpression__Group_3__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XBasicForLoopExpression__Group_3__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XBasicForLoopExpression__Group_3__0"


    // $ANTLR start "rule__XBasicForLoopExpression__Group_3__0__Impl"
    // InternalXcore.g:19194:1: rule__XBasicForLoopExpression__Group_3__0__Impl : ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 ) ) ;
    public final void rule__XBasicForLoopExpression__Group_3__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:19198:1: ( ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 ) ) )
            // InternalXcore.g:19199:1: ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 ) )
            {
            // InternalXcore.g:19199:1: ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 ) )
            // InternalXcore.g:19200:1: ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXBasicForLoopExpressionAccess().getInitExpressionsAssignment_3_0()); 
            }
            // InternalXcore.g:19201:1: ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 )
            // InternalXcore.g:19201:2: rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXBasicForLoopExpressionAccess().getInitExpressionsAssignment_3_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XBasicForLoopExpression__Group_3__0__Impl"


    // $ANTLR start "rule__XBasicForLoopExpression__Group_3__1"
    // InternalXcore.g:19211:1: rule__XBasicForLoopExpression__Group_3__1 : rule__XBasicForLoopExpression__Group_3__1__Impl ;
    public final void rule__XBasicForLoopExpression__Group_3__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:19215:1: ( rule__XBasicForLoopExpression__Group_3__1__Impl )
            // InternalXcore.g:19216:2: rule__XBasicForLoopExpression__Group_3__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XBasicForLoopExpression__Group_3__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XBasicForLoopExpression__Group_3__1"


    // $ANTLR start "rule__XBasicForLoopExpression__Group_3__1__Impl"
    // InternalXcore.g:19222:1: rule__XBasicForLoopExpression__Group_3__1__Impl : ( ( rule__XBasicForLoopExpression__Group_3_1__0 )* ) ;
    public final void rule__XBasicForLoopExpression__Group_3__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:19226:1: ( ( ( rule__XBasicForLoopExpression__Group_3_1__0 )* ) )
            // InternalXcore.g:19227:1: ( ( rule__XBasicForLoopExpression__Group_3_1__0 )* )
            {
            // InternalXcore.g:19227:1: ( ( rule__XBasicForLoopExpression__Group_3_1__0 )* )
            // InternalXcore.g:19228:1: ( rule__XBasicForLoopExpression__Group_3_1__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXBasicForLoopExpressionAccess().getGroup_3_1()); 
            }
            // InternalXcore.g:19229:1: ( rule__XBasicForLoopExpression__Group_3_1__0 )*
            loop157:
            do {
                int alt157=2;
                int LA157_0 = input.LA(1);

                if ( (LA157_0==87) ) {
                    alt157=1;
                }


                switch (alt157) {
            	case 1 :
            	    // InternalXcore.g:19229:2: rule__XBasicForLoopExpression__Group_3_1__0
            	    {
            	    pushFollow(FollowSets000.FOLLOW_14);
            	    rule__XBasicForLoopExpression__Group_3_1__0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop157;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXBasicForLoopExpressionAccess().getGroup_3_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XBasicForLoopExpression__Group_3__1__Impl"


    // $ANTLR start "rule__XBasicForLoopExpression__Group_3_1__0"
    // InternalXcore.g:19243:1: rule__XBasicForLoopExpression__Group_3_1__0 : rule__XBasicForLoopExpression__Group_3_1__0__Impl rule__XBasicForLoopExpression__Group_3_1__1 ;
    public final void rule__XBasicForLoopExpression__Group_3_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:19247:1: ( rule__XBasicForLoopExpression__Group_3_1__0__Impl rule__XBasicForLoopExpression__Group_3_1__1 )
            // InternalXcore.g:19248:2: rule__XBasicForLoopExpression__Group_3_1__0__Impl rule__XBasicForLoopExpression__Group_3_1__1
            {
            pushFollow(FollowSets000.FOLLOW_72);
            rule__XBasicForLoopExpression__Group_3_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XBasicForLoopExpression__Group_3_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XBasicForLoopExpression__Group_3_1__0"


    // $ANTLR start "rule__XBasicForLoopExpression__Group_3_1__0__Impl"
    // InternalXcore.g:19255:1: rule__XBasicForLoopExpression__Group_3_1__0__Impl : ( ',' ) ;
    public final void rule__XBasicForLoopExpression__Group_3_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:19259:1: ( ( ',' ) )
            // InternalXcore.g:19260:1: ( ',' )
            {
            // InternalXcore.g:19260:1: ( ',' )
            // InternalXcore.g:19261:1: ','
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXBasicForLoopExpressionAccess().getCommaKeyword_3_1_0()); 
            }
            match(input,87,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXBasicForLoopExpressionAccess().getCommaKeyword_3_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XBasicForLoopExpression__Group_3_1__0__Impl"


    // $ANTLR start "rule__XBasicForLoopExpression__Group_3_1__1"
    // InternalXcore.g:19274:1: rule__XBasicForLoopExpression__Group_3_1__1 : rule__XBasicForLoopExpression__Group_3_1__1__Impl ;
    public final void rule__XBasicForLoopExpression__Group_3_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:19278:1: ( rule__XBasicForLoopExpression__Group_3_1__1__Impl )
            // InternalXcore.g:19279:2: rule__XBasicForLoopExpression__Group_3_1__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XBasicForLoopExpression__Group_3_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XBasicForLoopExpression__Group_3_1__1"


    // $ANTLR start "rule__XBasicForLoopExpression__Group_3_1__1__Impl"
    // InternalXcore.g:19285:1: rule__XBasicForLoopExpression__Group_3_1__1__Impl : ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1 ) ) ;
    public final void rule__XBasicForLoopExpression__Group_3_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:19289:1: ( ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1 ) ) )
            // InternalXcore.g:19290:1: ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1 ) )
            {
            // InternalXcore.g:19290:1: ( ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1 ) )
            // InternalXcore.g:19291:1: ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXBasicForLoopExpressionAccess().getInitExpressionsAssignment_3_1_1()); 
            }
            // InternalXcore.g:19292:1: ( rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1 )
            // InternalXcore.g:19292:2: rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXBasicForLoopExpressionAccess().getInitExpressionsAssignment_3_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XBasicForLoopExpression__Group_3_1__1__Impl"


    // $ANTLR start "rule__XBasicForLoopExpression__Group_7__0"
    // InternalXcore.g:19306:1: rule__XBasicForLoopExpression__Group_7__0 : rule__XBasicForLoopExpression__Group_7__0__Impl rule__XBasicForLoopExpression__Group_7__1 ;
    public final void rule__XBasicForLoopExpression__Group_7__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:19310:1: ( rule__XBasicForLoopExpression__Group_7__0__Impl rule__XBasicForLoopExpression__Group_7__1 )
            // InternalXcore.g:19311:2: rule__XBasicForLoopExpression__Group_7__0__Impl rule__XBasicForLoopExpression__Group_7__1
            {
            pushFollow(FollowSets000.FOLLOW_38);
            rule__XBasicForLoopExpression__Group_7__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XBasicForLoopExpression__Group_7__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XBasicForLoopExpression__Group_7__0"


    // $ANTLR start "rule__XBasicForLoopExpression__Group_7__0__Impl"
    // InternalXcore.g:19318:1: rule__XBasicForLoopExpression__Group_7__0__Impl : ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 ) ) ;
    public final void rule__XBasicForLoopExpression__Group_7__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:19322:1: ( ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 ) ) )
            // InternalXcore.g:19323:1: ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 ) )
            {
            // InternalXcore.g:19323:1: ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 ) )
            // InternalXcore.g:19324:1: ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXBasicForLoopExpressionAccess().getUpdateExpressionsAssignment_7_0()); 
            }
            // InternalXcore.g:19325:1: ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 )
            // InternalXcore.g:19325:2: rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXBasicForLoopExpressionAccess().getUpdateExpressionsAssignment_7_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XBasicForLoopExpression__Group_7__0__Impl"


    // $ANTLR start "rule__XBasicForLoopExpression__Group_7__1"
    // InternalXcore.g:19335:1: rule__XBasicForLoopExpression__Group_7__1 : rule__XBasicForLoopExpression__Group_7__1__Impl ;
    public final void rule__XBasicForLoopExpression__Group_7__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:19339:1: ( rule__XBasicForLoopExpression__Group_7__1__Impl )
            // InternalXcore.g:19340:2: rule__XBasicForLoopExpression__Group_7__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XBasicForLoopExpression__Group_7__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XBasicForLoopExpression__Group_7__1"


    // $ANTLR start "rule__XBasicForLoopExpression__Group_7__1__Impl"
    // InternalXcore.g:19346:1: rule__XBasicForLoopExpression__Group_7__1__Impl : ( ( rule__XBasicForLoopExpression__Group_7_1__0 )* ) ;
    public final void rule__XBasicForLoopExpression__Group_7__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:19350:1: ( ( ( rule__XBasicForLoopExpression__Group_7_1__0 )* ) )
            // InternalXcore.g:19351:1: ( ( rule__XBasicForLoopExpression__Group_7_1__0 )* )
            {
            // InternalXcore.g:19351:1: ( ( rule__XBasicForLoopExpression__Group_7_1__0 )* )
            // InternalXcore.g:19352:1: ( rule__XBasicForLoopExpression__Group_7_1__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXBasicForLoopExpressionAccess().getGroup_7_1()); 
            }
            // InternalXcore.g:19353:1: ( rule__XBasicForLoopExpression__Group_7_1__0 )*
            loop158:
            do {
                int alt158=2;
                int LA158_0 = input.LA(1);

                if ( (LA158_0==87) ) {
                    alt158=1;
                }


                switch (alt158) {
            	case 1 :
            	    // InternalXcore.g:19353:2: rule__XBasicForLoopExpression__Group_7_1__0
            	    {
            	    pushFollow(FollowSets000.FOLLOW_14);
            	    rule__XBasicForLoopExpression__Group_7_1__0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop158;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXBasicForLoopExpressionAccess().getGroup_7_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XBasicForLoopExpression__Group_7__1__Impl"


    // $ANTLR start "rule__XBasicForLoopExpression__Group_7_1__0"
    // InternalXcore.g:19367:1: rule__XBasicForLoopExpression__Group_7_1__0 : rule__XBasicForLoopExpression__Group_7_1__0__Impl rule__XBasicForLoopExpression__Group_7_1__1 ;
    public final void rule__XBasicForLoopExpression__Group_7_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:19371:1: ( rule__XBasicForLoopExpression__Group_7_1__0__Impl rule__XBasicForLoopExpression__Group_7_1__1 )
            // InternalXcore.g:19372:2: rule__XBasicForLoopExpression__Group_7_1__0__Impl rule__XBasicForLoopExpression__Group_7_1__1
            {
            pushFollow(FollowSets000.FOLLOW_72);
            rule__XBasicForLoopExpression__Group_7_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XBasicForLoopExpression__Group_7_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XBasicForLoopExpression__Group_7_1__0"


    // $ANTLR start "rule__XBasicForLoopExpression__Group_7_1__0__Impl"
    // InternalXcore.g:19379:1: rule__XBasicForLoopExpression__Group_7_1__0__Impl : ( ',' ) ;
    public final void rule__XBasicForLoopExpression__Group_7_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:19383:1: ( ( ',' ) )
            // InternalXcore.g:19384:1: ( ',' )
            {
            // InternalXcore.g:19384:1: ( ',' )
            // InternalXcore.g:19385:1: ','
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXBasicForLoopExpressionAccess().getCommaKeyword_7_1_0()); 
            }
            match(input,87,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXBasicForLoopExpressionAccess().getCommaKeyword_7_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XBasicForLoopExpression__Group_7_1__0__Impl"


    // $ANTLR start "rule__XBasicForLoopExpression__Group_7_1__1"
    // InternalXcore.g:19398:1: rule__XBasicForLoopExpression__Group_7_1__1 : rule__XBasicForLoopExpression__Group_7_1__1__Impl ;
    public final void rule__XBasicForLoopExpression__Group_7_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:19402:1: ( rule__XBasicForLoopExpression__Group_7_1__1__Impl )
            // InternalXcore.g:19403:2: rule__XBasicForLoopExpression__Group_7_1__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XBasicForLoopExpression__Group_7_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XBasicForLoopExpression__Group_7_1__1"


    // $ANTLR start "rule__XBasicForLoopExpression__Group_7_1__1__Impl"
    // InternalXcore.g:19409:1: rule__XBasicForLoopExpression__Group_7_1__1__Impl : ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1 ) ) ;
    public final void rule__XBasicForLoopExpression__Group_7_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:19413:1: ( ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1 ) ) )
            // InternalXcore.g:19414:1: ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1 ) )
            {
            // InternalXcore.g:19414:1: ( ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1 ) )
            // InternalXcore.g:19415:1: ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXBasicForLoopExpressionAccess().getUpdateExpressionsAssignment_7_1_1()); 
            }
            // InternalXcore.g:19416:1: ( rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1 )
            // InternalXcore.g:19416:2: rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXBasicForLoopExpressionAccess().getUpdateExpressionsAssignment_7_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XBasicForLoopExpression__Group_7_1__1__Impl"


    // $ANTLR start "rule__XWhileExpression__Group__0"
    // InternalXcore.g:19430:1: rule__XWhileExpression__Group__0 : rule__XWhileExpression__Group__0__Impl rule__XWhileExpression__Group__1 ;
    public final void rule__XWhileExpression__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:19434:1: ( rule__XWhileExpression__Group__0__Impl rule__XWhileExpression__Group__1 )
            // InternalXcore.g:19435:2: rule__XWhileExpression__Group__0__Impl rule__XWhileExpression__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_120);
            rule__XWhileExpression__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XWhileExpression__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XWhileExpression__Group__0"


    // $ANTLR start "rule__XWhileExpression__Group__0__Impl"
    // InternalXcore.g:19442:1: rule__XWhileExpression__Group__0__Impl : ( () ) ;
    public final void rule__XWhileExpression__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:19446:1: ( ( () ) )
            // InternalXcore.g:19447:1: ( () )
            {
            // InternalXcore.g:19447:1: ( () )
            // InternalXcore.g:19448:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXWhileExpressionAccess().getXWhileExpressionAction_0()); 
            }
            // InternalXcore.g:19449:1: ()
            // InternalXcore.g:19451:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXWhileExpressionAccess().getXWhileExpressionAction_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XWhileExpression__Group__0__Impl"


    // $ANTLR start "rule__XWhileExpression__Group__1"
    // InternalXcore.g:19461:1: rule__XWhileExpression__Group__1 : rule__XWhileExpression__Group__1__Impl rule__XWhileExpression__Group__2 ;
    public final void rule__XWhileExpression__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:19465:1: ( rule__XWhileExpression__Group__1__Impl rule__XWhileExpression__Group__2 )
            // InternalXcore.g:19466:2: rule__XWhileExpression__Group__1__Impl rule__XWhileExpression__Group__2
            {
            pushFollow(FollowSets000.FOLLOW_12);
            rule__XWhileExpression__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XWhileExpression__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XWhileExpression__Group__1"


    // $ANTLR start "rule__XWhileExpression__Group__1__Impl"
    // InternalXcore.g:19473:1: rule__XWhileExpression__Group__1__Impl : ( 'while' ) ;
    public final void rule__XWhileExpression__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:19477:1: ( ( 'while' ) )
            // InternalXcore.g:19478:1: ( 'while' )
            {
            // InternalXcore.g:19478:1: ( 'while' )
            // InternalXcore.g:19479:1: 'while'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXWhileExpressionAccess().getWhileKeyword_1()); 
            }
            match(input,104,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXWhileExpressionAccess().getWhileKeyword_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XWhileExpression__Group__1__Impl"


    // $ANTLR start "rule__XWhileExpression__Group__2"
    // InternalXcore.g:19492:1: rule__XWhileExpression__Group__2 : rule__XWhileExpression__Group__2__Impl rule__XWhileExpression__Group__3 ;
    public final void rule__XWhileExpression__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:19496:1: ( rule__XWhileExpression__Group__2__Impl rule__XWhileExpression__Group__3 )
            // InternalXcore.g:19497:2: rule__XWhileExpression__Group__2__Impl rule__XWhileExpression__Group__3
            {
            pushFollow(FollowSets000.FOLLOW_72);
            rule__XWhileExpression__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XWhileExpression__Group__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XWhileExpression__Group__2"


    // $ANTLR start "rule__XWhileExpression__Group__2__Impl"
    // InternalXcore.g:19504:1: rule__XWhileExpression__Group__2__Impl : ( '(' ) ;
    public final void rule__XWhileExpression__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:19508:1: ( ( '(' ) )
            // InternalXcore.g:19509:1: ( '(' )
            {
            // InternalXcore.g:19509:1: ( '(' )
            // InternalXcore.g:19510:1: '('
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXWhileExpressionAccess().getLeftParenthesisKeyword_2()); 
            }
            match(input,85,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXWhileExpressionAccess().getLeftParenthesisKeyword_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XWhileExpression__Group__2__Impl"


    // $ANTLR start "rule__XWhileExpression__Group__3"
    // InternalXcore.g:19523:1: rule__XWhileExpression__Group__3 : rule__XWhileExpression__Group__3__Impl rule__XWhileExpression__Group__4 ;
    public final void rule__XWhileExpression__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:19527:1: ( rule__XWhileExpression__Group__3__Impl rule__XWhileExpression__Group__4 )
            // InternalXcore.g:19528:2: rule__XWhileExpression__Group__3__Impl rule__XWhileExpression__Group__4
            {
            pushFollow(FollowSets000.FOLLOW_108);
            rule__XWhileExpression__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XWhileExpression__Group__4();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XWhileExpression__Group__3"


    // $ANTLR start "rule__XWhileExpression__Group__3__Impl"
    // InternalXcore.g:19535:1: rule__XWhileExpression__Group__3__Impl : ( ( rule__XWhileExpression__PredicateAssignment_3 ) ) ;
    public final void rule__XWhileExpression__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:19539:1: ( ( ( rule__XWhileExpression__PredicateAssignment_3 ) ) )
            // InternalXcore.g:19540:1: ( ( rule__XWhileExpression__PredicateAssignment_3 ) )
            {
            // InternalXcore.g:19540:1: ( ( rule__XWhileExpression__PredicateAssignment_3 ) )
            // InternalXcore.g:19541:1: ( rule__XWhileExpression__PredicateAssignment_3 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXWhileExpressionAccess().getPredicateAssignment_3()); 
            }
            // InternalXcore.g:19542:1: ( rule__XWhileExpression__PredicateAssignment_3 )
            // InternalXcore.g:19542:2: rule__XWhileExpression__PredicateAssignment_3
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XWhileExpression__PredicateAssignment_3();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXWhileExpressionAccess().getPredicateAssignment_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XWhileExpression__Group__3__Impl"


    // $ANTLR start "rule__XWhileExpression__Group__4"
    // InternalXcore.g:19552:1: rule__XWhileExpression__Group__4 : rule__XWhileExpression__Group__4__Impl rule__XWhileExpression__Group__5 ;
    public final void rule__XWhileExpression__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:19556:1: ( rule__XWhileExpression__Group__4__Impl rule__XWhileExpression__Group__5 )
            // InternalXcore.g:19557:2: rule__XWhileExpression__Group__4__Impl rule__XWhileExpression__Group__5
            {
            pushFollow(FollowSets000.FOLLOW_72);
            rule__XWhileExpression__Group__4__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XWhileExpression__Group__5();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XWhileExpression__Group__4"


    // $ANTLR start "rule__XWhileExpression__Group__4__Impl"
    // InternalXcore.g:19564:1: rule__XWhileExpression__Group__4__Impl : ( ')' ) ;
    public final void rule__XWhileExpression__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:19568:1: ( ( ')' ) )
            // InternalXcore.g:19569:1: ( ')' )
            {
            // InternalXcore.g:19569:1: ( ')' )
            // InternalXcore.g:19570:1: ')'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXWhileExpressionAccess().getRightParenthesisKeyword_4()); 
            }
            match(input,86,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXWhileExpressionAccess().getRightParenthesisKeyword_4()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XWhileExpression__Group__4__Impl"


    // $ANTLR start "rule__XWhileExpression__Group__5"
    // InternalXcore.g:19583:1: rule__XWhileExpression__Group__5 : rule__XWhileExpression__Group__5__Impl ;
    public final void rule__XWhileExpression__Group__5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:19587:1: ( rule__XWhileExpression__Group__5__Impl )
            // InternalXcore.g:19588:2: rule__XWhileExpression__Group__5__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XWhileExpression__Group__5__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XWhileExpression__Group__5"


    // $ANTLR start "rule__XWhileExpression__Group__5__Impl"
    // InternalXcore.g:19594:1: rule__XWhileExpression__Group__5__Impl : ( ( rule__XWhileExpression__BodyAssignment_5 ) ) ;
    public final void rule__XWhileExpression__Group__5__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:19598:1: ( ( ( rule__XWhileExpression__BodyAssignment_5 ) ) )
            // InternalXcore.g:19599:1: ( ( rule__XWhileExpression__BodyAssignment_5 ) )
            {
            // InternalXcore.g:19599:1: ( ( rule__XWhileExpression__BodyAssignment_5 ) )
            // InternalXcore.g:19600:1: ( rule__XWhileExpression__BodyAssignment_5 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXWhileExpressionAccess().getBodyAssignment_5()); 
            }
            // InternalXcore.g:19601:1: ( rule__XWhileExpression__BodyAssignment_5 )
            // InternalXcore.g:19601:2: rule__XWhileExpression__BodyAssignment_5
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XWhileExpression__BodyAssignment_5();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXWhileExpressionAccess().getBodyAssignment_5()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XWhileExpression__Group__5__Impl"


    // $ANTLR start "rule__XDoWhileExpression__Group__0"
    // InternalXcore.g:19623:1: rule__XDoWhileExpression__Group__0 : rule__XDoWhileExpression__Group__0__Impl rule__XDoWhileExpression__Group__1 ;
    public final void rule__XDoWhileExpression__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:19627:1: ( rule__XDoWhileExpression__Group__0__Impl rule__XDoWhileExpression__Group__1 )
            // InternalXcore.g:19628:2: rule__XDoWhileExpression__Group__0__Impl rule__XDoWhileExpression__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_121);
            rule__XDoWhileExpression__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XDoWhileExpression__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XDoWhileExpression__Group__0"


    // $ANTLR start "rule__XDoWhileExpression__Group__0__Impl"
    // InternalXcore.g:19635:1: rule__XDoWhileExpression__Group__0__Impl : ( () ) ;
    public final void rule__XDoWhileExpression__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:19639:1: ( ( () ) )
            // InternalXcore.g:19640:1: ( () )
            {
            // InternalXcore.g:19640:1: ( () )
            // InternalXcore.g:19641:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXDoWhileExpressionAccess().getXDoWhileExpressionAction_0()); 
            }
            // InternalXcore.g:19642:1: ()
            // InternalXcore.g:19644:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXDoWhileExpressionAccess().getXDoWhileExpressionAction_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XDoWhileExpression__Group__0__Impl"


    // $ANTLR start "rule__XDoWhileExpression__Group__1"
    // InternalXcore.g:19654:1: rule__XDoWhileExpression__Group__1 : rule__XDoWhileExpression__Group__1__Impl rule__XDoWhileExpression__Group__2 ;
    public final void rule__XDoWhileExpression__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:19658:1: ( rule__XDoWhileExpression__Group__1__Impl rule__XDoWhileExpression__Group__2 )
            // InternalXcore.g:19659:2: rule__XDoWhileExpression__Group__1__Impl rule__XDoWhileExpression__Group__2
            {
            pushFollow(FollowSets000.FOLLOW_72);
            rule__XDoWhileExpression__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XDoWhileExpression__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XDoWhileExpression__Group__1"


    // $ANTLR start "rule__XDoWhileExpression__Group__1__Impl"
    // InternalXcore.g:19666:1: rule__XDoWhileExpression__Group__1__Impl : ( 'do' ) ;
    public final void rule__XDoWhileExpression__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:19670:1: ( ( 'do' ) )
            // InternalXcore.g:19671:1: ( 'do' )
            {
            // InternalXcore.g:19671:1: ( 'do' )
            // InternalXcore.g:19672:1: 'do'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXDoWhileExpressionAccess().getDoKeyword_1()); 
            }
            match(input,105,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXDoWhileExpressionAccess().getDoKeyword_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XDoWhileExpression__Group__1__Impl"


    // $ANTLR start "rule__XDoWhileExpression__Group__2"
    // InternalXcore.g:19685:1: rule__XDoWhileExpression__Group__2 : rule__XDoWhileExpression__Group__2__Impl rule__XDoWhileExpression__Group__3 ;
    public final void rule__XDoWhileExpression__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:19689:1: ( rule__XDoWhileExpression__Group__2__Impl rule__XDoWhileExpression__Group__3 )
            // InternalXcore.g:19690:2: rule__XDoWhileExpression__Group__2__Impl rule__XDoWhileExpression__Group__3
            {
            pushFollow(FollowSets000.FOLLOW_120);
            rule__XDoWhileExpression__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XDoWhileExpression__Group__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XDoWhileExpression__Group__2"


    // $ANTLR start "rule__XDoWhileExpression__Group__2__Impl"
    // InternalXcore.g:19697:1: rule__XDoWhileExpression__Group__2__Impl : ( ( rule__XDoWhileExpression__BodyAssignment_2 ) ) ;
    public final void rule__XDoWhileExpression__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:19701:1: ( ( ( rule__XDoWhileExpression__BodyAssignment_2 ) ) )
            // InternalXcore.g:19702:1: ( ( rule__XDoWhileExpression__BodyAssignment_2 ) )
            {
            // InternalXcore.g:19702:1: ( ( rule__XDoWhileExpression__BodyAssignment_2 ) )
            // InternalXcore.g:19703:1: ( rule__XDoWhileExpression__BodyAssignment_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXDoWhileExpressionAccess().getBodyAssignment_2()); 
            }
            // InternalXcore.g:19704:1: ( rule__XDoWhileExpression__BodyAssignment_2 )
            // InternalXcore.g:19704:2: rule__XDoWhileExpression__BodyAssignment_2
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XDoWhileExpression__BodyAssignment_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXDoWhileExpressionAccess().getBodyAssignment_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XDoWhileExpression__Group__2__Impl"


    // $ANTLR start "rule__XDoWhileExpression__Group__3"
    // InternalXcore.g:19714:1: rule__XDoWhileExpression__Group__3 : rule__XDoWhileExpression__Group__3__Impl rule__XDoWhileExpression__Group__4 ;
    public final void rule__XDoWhileExpression__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:19718:1: ( rule__XDoWhileExpression__Group__3__Impl rule__XDoWhileExpression__Group__4 )
            // InternalXcore.g:19719:2: rule__XDoWhileExpression__Group__3__Impl rule__XDoWhileExpression__Group__4
            {
            pushFollow(FollowSets000.FOLLOW_12);
            rule__XDoWhileExpression__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XDoWhileExpression__Group__4();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XDoWhileExpression__Group__3"


    // $ANTLR start "rule__XDoWhileExpression__Group__3__Impl"
    // InternalXcore.g:19726:1: rule__XDoWhileExpression__Group__3__Impl : ( 'while' ) ;
    public final void rule__XDoWhileExpression__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:19730:1: ( ( 'while' ) )
            // InternalXcore.g:19731:1: ( 'while' )
            {
            // InternalXcore.g:19731:1: ( 'while' )
            // InternalXcore.g:19732:1: 'while'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXDoWhileExpressionAccess().getWhileKeyword_3()); 
            }
            match(input,104,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXDoWhileExpressionAccess().getWhileKeyword_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XDoWhileExpression__Group__3__Impl"


    // $ANTLR start "rule__XDoWhileExpression__Group__4"
    // InternalXcore.g:19745:1: rule__XDoWhileExpression__Group__4 : rule__XDoWhileExpression__Group__4__Impl rule__XDoWhileExpression__Group__5 ;
    public final void rule__XDoWhileExpression__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:19749:1: ( rule__XDoWhileExpression__Group__4__Impl rule__XDoWhileExpression__Group__5 )
            // InternalXcore.g:19750:2: rule__XDoWhileExpression__Group__4__Impl rule__XDoWhileExpression__Group__5
            {
            pushFollow(FollowSets000.FOLLOW_72);
            rule__XDoWhileExpression__Group__4__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XDoWhileExpression__Group__5();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XDoWhileExpression__Group__4"


    // $ANTLR start "rule__XDoWhileExpression__Group__4__Impl"
    // InternalXcore.g:19757:1: rule__XDoWhileExpression__Group__4__Impl : ( '(' ) ;
    public final void rule__XDoWhileExpression__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:19761:1: ( ( '(' ) )
            // InternalXcore.g:19762:1: ( '(' )
            {
            // InternalXcore.g:19762:1: ( '(' )
            // InternalXcore.g:19763:1: '('
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXDoWhileExpressionAccess().getLeftParenthesisKeyword_4()); 
            }
            match(input,85,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXDoWhileExpressionAccess().getLeftParenthesisKeyword_4()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XDoWhileExpression__Group__4__Impl"


    // $ANTLR start "rule__XDoWhileExpression__Group__5"
    // InternalXcore.g:19776:1: rule__XDoWhileExpression__Group__5 : rule__XDoWhileExpression__Group__5__Impl rule__XDoWhileExpression__Group__6 ;
    public final void rule__XDoWhileExpression__Group__5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:19780:1: ( rule__XDoWhileExpression__Group__5__Impl rule__XDoWhileExpression__Group__6 )
            // InternalXcore.g:19781:2: rule__XDoWhileExpression__Group__5__Impl rule__XDoWhileExpression__Group__6
            {
            pushFollow(FollowSets000.FOLLOW_108);
            rule__XDoWhileExpression__Group__5__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XDoWhileExpression__Group__6();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XDoWhileExpression__Group__5"


    // $ANTLR start "rule__XDoWhileExpression__Group__5__Impl"
    // InternalXcore.g:19788:1: rule__XDoWhileExpression__Group__5__Impl : ( ( rule__XDoWhileExpression__PredicateAssignment_5 ) ) ;
    public final void rule__XDoWhileExpression__Group__5__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:19792:1: ( ( ( rule__XDoWhileExpression__PredicateAssignment_5 ) ) )
            // InternalXcore.g:19793:1: ( ( rule__XDoWhileExpression__PredicateAssignment_5 ) )
            {
            // InternalXcore.g:19793:1: ( ( rule__XDoWhileExpression__PredicateAssignment_5 ) )
            // InternalXcore.g:19794:1: ( rule__XDoWhileExpression__PredicateAssignment_5 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXDoWhileExpressionAccess().getPredicateAssignment_5()); 
            }
            // InternalXcore.g:19795:1: ( rule__XDoWhileExpression__PredicateAssignment_5 )
            // InternalXcore.g:19795:2: rule__XDoWhileExpression__PredicateAssignment_5
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XDoWhileExpression__PredicateAssignment_5();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXDoWhileExpressionAccess().getPredicateAssignment_5()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XDoWhileExpression__Group__5__Impl"


    // $ANTLR start "rule__XDoWhileExpression__Group__6"
    // InternalXcore.g:19805:1: rule__XDoWhileExpression__Group__6 : rule__XDoWhileExpression__Group__6__Impl ;
    public final void rule__XDoWhileExpression__Group__6() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:19809:1: ( rule__XDoWhileExpression__Group__6__Impl )
            // InternalXcore.g:19810:2: rule__XDoWhileExpression__Group__6__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XDoWhileExpression__Group__6__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XDoWhileExpression__Group__6"


    // $ANTLR start "rule__XDoWhileExpression__Group__6__Impl"
    // InternalXcore.g:19816:1: rule__XDoWhileExpression__Group__6__Impl : ( ')' ) ;
    public final void rule__XDoWhileExpression__Group__6__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:19820:1: ( ( ')' ) )
            // InternalXcore.g:19821:1: ( ')' )
            {
            // InternalXcore.g:19821:1: ( ')' )
            // InternalXcore.g:19822:1: ')'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXDoWhileExpressionAccess().getRightParenthesisKeyword_6()); 
            }
            match(input,86,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXDoWhileExpressionAccess().getRightParenthesisKeyword_6()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XDoWhileExpression__Group__6__Impl"


    // $ANTLR start "rule__XVariableDeclaration__Group__0"
    // InternalXcore.g:19849:1: rule__XVariableDeclaration__Group__0 : rule__XVariableDeclaration__Group__0__Impl rule__XVariableDeclaration__Group__1 ;
    public final void rule__XVariableDeclaration__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:19853:1: ( rule__XVariableDeclaration__Group__0__Impl rule__XVariableDeclaration__Group__1 )
            // InternalXcore.g:19854:2: rule__XVariableDeclaration__Group__0__Impl rule__XVariableDeclaration__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_122);
            rule__XVariableDeclaration__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XVariableDeclaration__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XVariableDeclaration__Group__0"


    // $ANTLR start "rule__XVariableDeclaration__Group__0__Impl"
    // InternalXcore.g:19861:1: rule__XVariableDeclaration__Group__0__Impl : ( () ) ;
    public final void rule__XVariableDeclaration__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:19865:1: ( ( () ) )
            // InternalXcore.g:19866:1: ( () )
            {
            // InternalXcore.g:19866:1: ( () )
            // InternalXcore.g:19867:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXVariableDeclarationAccess().getXVariableDeclarationAction_0()); 
            }
            // InternalXcore.g:19868:1: ()
            // InternalXcore.g:19870:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXVariableDeclarationAccess().getXVariableDeclarationAction_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XVariableDeclaration__Group__0__Impl"


    // $ANTLR start "rule__XVariableDeclaration__Group__1"
    // InternalXcore.g:19880:1: rule__XVariableDeclaration__Group__1 : rule__XVariableDeclaration__Group__1__Impl rule__XVariableDeclaration__Group__2 ;
    public final void rule__XVariableDeclaration__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:19884:1: ( rule__XVariableDeclaration__Group__1__Impl rule__XVariableDeclaration__Group__2 )
            // InternalXcore.g:19885:2: rule__XVariableDeclaration__Group__1__Impl rule__XVariableDeclaration__Group__2
            {
            pushFollow(FollowSets000.FOLLOW_22);
            rule__XVariableDeclaration__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XVariableDeclaration__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XVariableDeclaration__Group__1"


    // $ANTLR start "rule__XVariableDeclaration__Group__1__Impl"
    // InternalXcore.g:19892:1: rule__XVariableDeclaration__Group__1__Impl : ( ( rule__XVariableDeclaration__Alternatives_1 ) ) ;
    public final void rule__XVariableDeclaration__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:19896:1: ( ( ( rule__XVariableDeclaration__Alternatives_1 ) ) )
            // InternalXcore.g:19897:1: ( ( rule__XVariableDeclaration__Alternatives_1 ) )
            {
            // InternalXcore.g:19897:1: ( ( rule__XVariableDeclaration__Alternatives_1 ) )
            // InternalXcore.g:19898:1: ( rule__XVariableDeclaration__Alternatives_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXVariableDeclarationAccess().getAlternatives_1()); 
            }
            // InternalXcore.g:19899:1: ( rule__XVariableDeclaration__Alternatives_1 )
            // InternalXcore.g:19899:2: rule__XVariableDeclaration__Alternatives_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XVariableDeclaration__Alternatives_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXVariableDeclarationAccess().getAlternatives_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XVariableDeclaration__Group__1__Impl"


    // $ANTLR start "rule__XVariableDeclaration__Group__2"
    // InternalXcore.g:19909:1: rule__XVariableDeclaration__Group__2 : rule__XVariableDeclaration__Group__2__Impl rule__XVariableDeclaration__Group__3 ;
    public final void rule__XVariableDeclaration__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:19913:1: ( rule__XVariableDeclaration__Group__2__Impl rule__XVariableDeclaration__Group__3 )
            // InternalXcore.g:19914:2: rule__XVariableDeclaration__Group__2__Impl rule__XVariableDeclaration__Group__3
            {
            pushFollow(FollowSets000.FOLLOW_15);
            rule__XVariableDeclaration__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XVariableDeclaration__Group__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XVariableDeclaration__Group__2"


    // $ANTLR start "rule__XVariableDeclaration__Group__2__Impl"
    // InternalXcore.g:19921:1: rule__XVariableDeclaration__Group__2__Impl : ( ( rule__XVariableDeclaration__Alternatives_2 ) ) ;
    public final void rule__XVariableDeclaration__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:19925:1: ( ( ( rule__XVariableDeclaration__Alternatives_2 ) ) )
            // InternalXcore.g:19926:1: ( ( rule__XVariableDeclaration__Alternatives_2 ) )
            {
            // InternalXcore.g:19926:1: ( ( rule__XVariableDeclaration__Alternatives_2 ) )
            // InternalXcore.g:19927:1: ( rule__XVariableDeclaration__Alternatives_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXVariableDeclarationAccess().getAlternatives_2()); 
            }
            // InternalXcore.g:19928:1: ( rule__XVariableDeclaration__Alternatives_2 )
            // InternalXcore.g:19928:2: rule__XVariableDeclaration__Alternatives_2
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XVariableDeclaration__Alternatives_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXVariableDeclarationAccess().getAlternatives_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XVariableDeclaration__Group__2__Impl"


    // $ANTLR start "rule__XVariableDeclaration__Group__3"
    // InternalXcore.g:19938:1: rule__XVariableDeclaration__Group__3 : rule__XVariableDeclaration__Group__3__Impl ;
    public final void rule__XVariableDeclaration__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:19942:1: ( rule__XVariableDeclaration__Group__3__Impl )
            // InternalXcore.g:19943:2: rule__XVariableDeclaration__Group__3__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XVariableDeclaration__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XVariableDeclaration__Group__3"


    // $ANTLR start "rule__XVariableDeclaration__Group__3__Impl"
    // InternalXcore.g:19949:1: rule__XVariableDeclaration__Group__3__Impl : ( ( rule__XVariableDeclaration__Group_3__0 )? ) ;
    public final void rule__XVariableDeclaration__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:19953:1: ( ( ( rule__XVariableDeclaration__Group_3__0 )? ) )
            // InternalXcore.g:19954:1: ( ( rule__XVariableDeclaration__Group_3__0 )? )
            {
            // InternalXcore.g:19954:1: ( ( rule__XVariableDeclaration__Group_3__0 )? )
            // InternalXcore.g:19955:1: ( rule__XVariableDeclaration__Group_3__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXVariableDeclarationAccess().getGroup_3()); 
            }
            // InternalXcore.g:19956:1: ( rule__XVariableDeclaration__Group_3__0 )?
            int alt159=2;
            int LA159_0 = input.LA(1);

            if ( (LA159_0==13) ) {
                alt159=1;
            }
            switch (alt159) {
                case 1 :
                    // InternalXcore.g:19956:2: rule__XVariableDeclaration__Group_3__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XVariableDeclaration__Group_3__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXVariableDeclarationAccess().getGroup_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XVariableDeclaration__Group__3__Impl"


    // $ANTLR start "rule__XVariableDeclaration__Group_2_0__0"
    // InternalXcore.g:19974:1: rule__XVariableDeclaration__Group_2_0__0 : rule__XVariableDeclaration__Group_2_0__0__Impl ;
    public final void rule__XVariableDeclaration__Group_2_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:19978:1: ( rule__XVariableDeclaration__Group_2_0__0__Impl )
            // InternalXcore.g:19979:2: rule__XVariableDeclaration__Group_2_0__0__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XVariableDeclaration__Group_2_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XVariableDeclaration__Group_2_0__0"


    // $ANTLR start "rule__XVariableDeclaration__Group_2_0__0__Impl"
    // InternalXcore.g:19985:1: rule__XVariableDeclaration__Group_2_0__0__Impl : ( ( rule__XVariableDeclaration__Group_2_0_0__0 ) ) ;
    public final void rule__XVariableDeclaration__Group_2_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:19989:1: ( ( ( rule__XVariableDeclaration__Group_2_0_0__0 ) ) )
            // InternalXcore.g:19990:1: ( ( rule__XVariableDeclaration__Group_2_0_0__0 ) )
            {
            // InternalXcore.g:19990:1: ( ( rule__XVariableDeclaration__Group_2_0_0__0 ) )
            // InternalXcore.g:19991:1: ( rule__XVariableDeclaration__Group_2_0_0__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXVariableDeclarationAccess().getGroup_2_0_0()); 
            }
            // InternalXcore.g:19992:1: ( rule__XVariableDeclaration__Group_2_0_0__0 )
            // InternalXcore.g:19992:2: rule__XVariableDeclaration__Group_2_0_0__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XVariableDeclaration__Group_2_0_0__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXVariableDeclarationAccess().getGroup_2_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XVariableDeclaration__Group_2_0__0__Impl"


    // $ANTLR start "rule__XVariableDeclaration__Group_2_0_0__0"
    // InternalXcore.g:20004:1: rule__XVariableDeclaration__Group_2_0_0__0 : rule__XVariableDeclaration__Group_2_0_0__0__Impl rule__XVariableDeclaration__Group_2_0_0__1 ;
    public final void rule__XVariableDeclaration__Group_2_0_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:20008:1: ( rule__XVariableDeclaration__Group_2_0_0__0__Impl rule__XVariableDeclaration__Group_2_0_0__1 )
            // InternalXcore.g:20009:2: rule__XVariableDeclaration__Group_2_0_0__0__Impl rule__XVariableDeclaration__Group_2_0_0__1
            {
            pushFollow(FollowSets000.FOLLOW_6);
            rule__XVariableDeclaration__Group_2_0_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XVariableDeclaration__Group_2_0_0__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XVariableDeclaration__Group_2_0_0__0"


    // $ANTLR start "rule__XVariableDeclaration__Group_2_0_0__0__Impl"
    // InternalXcore.g:20016:1: rule__XVariableDeclaration__Group_2_0_0__0__Impl : ( ( rule__XVariableDeclaration__TypeAssignment_2_0_0_0 ) ) ;
    public final void rule__XVariableDeclaration__Group_2_0_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:20020:1: ( ( ( rule__XVariableDeclaration__TypeAssignment_2_0_0_0 ) ) )
            // InternalXcore.g:20021:1: ( ( rule__XVariableDeclaration__TypeAssignment_2_0_0_0 ) )
            {
            // InternalXcore.g:20021:1: ( ( rule__XVariableDeclaration__TypeAssignment_2_0_0_0 ) )
            // InternalXcore.g:20022:1: ( rule__XVariableDeclaration__TypeAssignment_2_0_0_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXVariableDeclarationAccess().getTypeAssignment_2_0_0_0()); 
            }
            // InternalXcore.g:20023:1: ( rule__XVariableDeclaration__TypeAssignment_2_0_0_0 )
            // InternalXcore.g:20023:2: rule__XVariableDeclaration__TypeAssignment_2_0_0_0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XVariableDeclaration__TypeAssignment_2_0_0_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXVariableDeclarationAccess().getTypeAssignment_2_0_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XVariableDeclaration__Group_2_0_0__0__Impl"


    // $ANTLR start "rule__XVariableDeclaration__Group_2_0_0__1"
    // InternalXcore.g:20033:1: rule__XVariableDeclaration__Group_2_0_0__1 : rule__XVariableDeclaration__Group_2_0_0__1__Impl ;
    public final void rule__XVariableDeclaration__Group_2_0_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:20037:1: ( rule__XVariableDeclaration__Group_2_0_0__1__Impl )
            // InternalXcore.g:20038:2: rule__XVariableDeclaration__Group_2_0_0__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XVariableDeclaration__Group_2_0_0__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XVariableDeclaration__Group_2_0_0__1"


    // $ANTLR start "rule__XVariableDeclaration__Group_2_0_0__1__Impl"
    // InternalXcore.g:20044:1: rule__XVariableDeclaration__Group_2_0_0__1__Impl : ( ( rule__XVariableDeclaration__NameAssignment_2_0_0_1 ) ) ;
    public final void rule__XVariableDeclaration__Group_2_0_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:20048:1: ( ( ( rule__XVariableDeclaration__NameAssignment_2_0_0_1 ) ) )
            // InternalXcore.g:20049:1: ( ( rule__XVariableDeclaration__NameAssignment_2_0_0_1 ) )
            {
            // InternalXcore.g:20049:1: ( ( rule__XVariableDeclaration__NameAssignment_2_0_0_1 ) )
            // InternalXcore.g:20050:1: ( rule__XVariableDeclaration__NameAssignment_2_0_0_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXVariableDeclarationAccess().getNameAssignment_2_0_0_1()); 
            }
            // InternalXcore.g:20051:1: ( rule__XVariableDeclaration__NameAssignment_2_0_0_1 )
            // InternalXcore.g:20051:2: rule__XVariableDeclaration__NameAssignment_2_0_0_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XVariableDeclaration__NameAssignment_2_0_0_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXVariableDeclarationAccess().getNameAssignment_2_0_0_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XVariableDeclaration__Group_2_0_0__1__Impl"


    // $ANTLR start "rule__XVariableDeclaration__Group_3__0"
    // InternalXcore.g:20065:1: rule__XVariableDeclaration__Group_3__0 : rule__XVariableDeclaration__Group_3__0__Impl rule__XVariableDeclaration__Group_3__1 ;
    public final void rule__XVariableDeclaration__Group_3__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:20069:1: ( rule__XVariableDeclaration__Group_3__0__Impl rule__XVariableDeclaration__Group_3__1 )
            // InternalXcore.g:20070:2: rule__XVariableDeclaration__Group_3__0__Impl rule__XVariableDeclaration__Group_3__1
            {
            pushFollow(FollowSets000.FOLLOW_72);
            rule__XVariableDeclaration__Group_3__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XVariableDeclaration__Group_3__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XVariableDeclaration__Group_3__0"


    // $ANTLR start "rule__XVariableDeclaration__Group_3__0__Impl"
    // InternalXcore.g:20077:1: rule__XVariableDeclaration__Group_3__0__Impl : ( '=' ) ;
    public final void rule__XVariableDeclaration__Group_3__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:20081:1: ( ( '=' ) )
            // InternalXcore.g:20082:1: ( '=' )
            {
            // InternalXcore.g:20082:1: ( '=' )
            // InternalXcore.g:20083:1: '='
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXVariableDeclarationAccess().getEqualsSignKeyword_3_0()); 
            }
            match(input,13,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXVariableDeclarationAccess().getEqualsSignKeyword_3_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XVariableDeclaration__Group_3__0__Impl"


    // $ANTLR start "rule__XVariableDeclaration__Group_3__1"
    // InternalXcore.g:20096:1: rule__XVariableDeclaration__Group_3__1 : rule__XVariableDeclaration__Group_3__1__Impl ;
    public final void rule__XVariableDeclaration__Group_3__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:20100:1: ( rule__XVariableDeclaration__Group_3__1__Impl )
            // InternalXcore.g:20101:2: rule__XVariableDeclaration__Group_3__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XVariableDeclaration__Group_3__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XVariableDeclaration__Group_3__1"


    // $ANTLR start "rule__XVariableDeclaration__Group_3__1__Impl"
    // InternalXcore.g:20107:1: rule__XVariableDeclaration__Group_3__1__Impl : ( ( rule__XVariableDeclaration__RightAssignment_3_1 ) ) ;
    public final void rule__XVariableDeclaration__Group_3__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:20111:1: ( ( ( rule__XVariableDeclaration__RightAssignment_3_1 ) ) )
            // InternalXcore.g:20112:1: ( ( rule__XVariableDeclaration__RightAssignment_3_1 ) )
            {
            // InternalXcore.g:20112:1: ( ( rule__XVariableDeclaration__RightAssignment_3_1 ) )
            // InternalXcore.g:20113:1: ( rule__XVariableDeclaration__RightAssignment_3_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXVariableDeclarationAccess().getRightAssignment_3_1()); 
            }
            // InternalXcore.g:20114:1: ( rule__XVariableDeclaration__RightAssignment_3_1 )
            // InternalXcore.g:20114:2: rule__XVariableDeclaration__RightAssignment_3_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XVariableDeclaration__RightAssignment_3_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXVariableDeclarationAccess().getRightAssignment_3_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XVariableDeclaration__Group_3__1__Impl"


    // $ANTLR start "rule__JvmFormalParameter__Group__0"
    // InternalXcore.g:20128:1: rule__JvmFormalParameter__Group__0 : rule__JvmFormalParameter__Group__0__Impl rule__JvmFormalParameter__Group__1 ;
    public final void rule__JvmFormalParameter__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:20132:1: ( rule__JvmFormalParameter__Group__0__Impl rule__JvmFormalParameter__Group__1 )
            // InternalXcore.g:20133:2: rule__JvmFormalParameter__Group__0__Impl rule__JvmFormalParameter__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_22);
            rule__JvmFormalParameter__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__JvmFormalParameter__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmFormalParameter__Group__0"


    // $ANTLR start "rule__JvmFormalParameter__Group__0__Impl"
    // InternalXcore.g:20140:1: rule__JvmFormalParameter__Group__0__Impl : ( ( rule__JvmFormalParameter__ParameterTypeAssignment_0 )? ) ;
    public final void rule__JvmFormalParameter__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:20144:1: ( ( ( rule__JvmFormalParameter__ParameterTypeAssignment_0 )? ) )
            // InternalXcore.g:20145:1: ( ( rule__JvmFormalParameter__ParameterTypeAssignment_0 )? )
            {
            // InternalXcore.g:20145:1: ( ( rule__JvmFormalParameter__ParameterTypeAssignment_0 )? )
            // InternalXcore.g:20146:1: ( rule__JvmFormalParameter__ParameterTypeAssignment_0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmFormalParameterAccess().getParameterTypeAssignment_0()); 
            }
            // InternalXcore.g:20147:1: ( rule__JvmFormalParameter__ParameterTypeAssignment_0 )?
            int alt160=2;
            switch ( input.LA(1) ) {
                case RULE_ID:
                    {
                    int LA160_1 = input.LA(2);

                    if ( (LA160_1==RULE_ID||LA160_1==16||(LA160_1>=20 && LA160_1<=23)||LA160_1==66||LA160_1==80||LA160_1==92) ) {
                        alt160=1;
                    }
                    }
                    break;
                case 20:
                    {
                    int LA160_2 = input.LA(2);

                    if ( (LA160_2==RULE_ID||LA160_2==16||(LA160_2>=20 && LA160_2<=23)||LA160_2==66||LA160_2==80||LA160_2==92) ) {
                        alt160=1;
                    }
                    }
                    break;
                case 21:
                    {
                    int LA160_3 = input.LA(2);

                    if ( (LA160_3==RULE_ID||LA160_3==16||(LA160_3>=20 && LA160_3<=23)||LA160_3==66||LA160_3==80||LA160_3==92) ) {
                        alt160=1;
                    }
                    }
                    break;
                case 22:
                    {
                    int LA160_4 = input.LA(2);

                    if ( (LA160_4==RULE_ID||LA160_4==16||(LA160_4>=20 && LA160_4<=23)||LA160_4==66||LA160_4==80||LA160_4==92) ) {
                        alt160=1;
                    }
                    }
                    break;
                case 23:
                    {
                    int LA160_5 = input.LA(2);

                    if ( (LA160_5==RULE_ID||LA160_5==16||(LA160_5>=20 && LA160_5<=23)||LA160_5==66||LA160_5==80||LA160_5==92) ) {
                        alt160=1;
                    }
                    }
                    break;
                case 16:
                    {
                    int LA160_6 = input.LA(2);

                    if ( (LA160_6==RULE_ID||LA160_6==16||(LA160_6>=20 && LA160_6<=23)||LA160_6==66||LA160_6==80||LA160_6==92) ) {
                        alt160=1;
                    }
                    }
                    break;
                case 70:
                case 85:
                    {
                    alt160=1;
                    }
                    break;
            }

            switch (alt160) {
                case 1 :
                    // InternalXcore.g:20147:2: rule__JvmFormalParameter__ParameterTypeAssignment_0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__JvmFormalParameter__ParameterTypeAssignment_0();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getJvmFormalParameterAccess().getParameterTypeAssignment_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmFormalParameter__Group__0__Impl"


    // $ANTLR start "rule__JvmFormalParameter__Group__1"
    // InternalXcore.g:20157:1: rule__JvmFormalParameter__Group__1 : rule__JvmFormalParameter__Group__1__Impl ;
    public final void rule__JvmFormalParameter__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:20161:1: ( rule__JvmFormalParameter__Group__1__Impl )
            // InternalXcore.g:20162:2: rule__JvmFormalParameter__Group__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__JvmFormalParameter__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmFormalParameter__Group__1"


    // $ANTLR start "rule__JvmFormalParameter__Group__1__Impl"
    // InternalXcore.g:20168:1: rule__JvmFormalParameter__Group__1__Impl : ( ( rule__JvmFormalParameter__NameAssignment_1 ) ) ;
    public final void rule__JvmFormalParameter__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:20172:1: ( ( ( rule__JvmFormalParameter__NameAssignment_1 ) ) )
            // InternalXcore.g:20173:1: ( ( rule__JvmFormalParameter__NameAssignment_1 ) )
            {
            // InternalXcore.g:20173:1: ( ( rule__JvmFormalParameter__NameAssignment_1 ) )
            // InternalXcore.g:20174:1: ( rule__JvmFormalParameter__NameAssignment_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmFormalParameterAccess().getNameAssignment_1()); 
            }
            // InternalXcore.g:20175:1: ( rule__JvmFormalParameter__NameAssignment_1 )
            // InternalXcore.g:20175:2: rule__JvmFormalParameter__NameAssignment_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__JvmFormalParameter__NameAssignment_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getJvmFormalParameterAccess().getNameAssignment_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmFormalParameter__Group__1__Impl"


    // $ANTLR start "rule__FullJvmFormalParameter__Group__0"
    // InternalXcore.g:20189:1: rule__FullJvmFormalParameter__Group__0 : rule__FullJvmFormalParameter__Group__0__Impl rule__FullJvmFormalParameter__Group__1 ;
    public final void rule__FullJvmFormalParameter__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:20193:1: ( rule__FullJvmFormalParameter__Group__0__Impl rule__FullJvmFormalParameter__Group__1 )
            // InternalXcore.g:20194:2: rule__FullJvmFormalParameter__Group__0__Impl rule__FullJvmFormalParameter__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_6);
            rule__FullJvmFormalParameter__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__FullJvmFormalParameter__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__FullJvmFormalParameter__Group__0"


    // $ANTLR start "rule__FullJvmFormalParameter__Group__0__Impl"
    // InternalXcore.g:20201:1: rule__FullJvmFormalParameter__Group__0__Impl : ( ( rule__FullJvmFormalParameter__ParameterTypeAssignment_0 ) ) ;
    public final void rule__FullJvmFormalParameter__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:20205:1: ( ( ( rule__FullJvmFormalParameter__ParameterTypeAssignment_0 ) ) )
            // InternalXcore.g:20206:1: ( ( rule__FullJvmFormalParameter__ParameterTypeAssignment_0 ) )
            {
            // InternalXcore.g:20206:1: ( ( rule__FullJvmFormalParameter__ParameterTypeAssignment_0 ) )
            // InternalXcore.g:20207:1: ( rule__FullJvmFormalParameter__ParameterTypeAssignment_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getFullJvmFormalParameterAccess().getParameterTypeAssignment_0()); 
            }
            // InternalXcore.g:20208:1: ( rule__FullJvmFormalParameter__ParameterTypeAssignment_0 )
            // InternalXcore.g:20208:2: rule__FullJvmFormalParameter__ParameterTypeAssignment_0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__FullJvmFormalParameter__ParameterTypeAssignment_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getFullJvmFormalParameterAccess().getParameterTypeAssignment_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__FullJvmFormalParameter__Group__0__Impl"


    // $ANTLR start "rule__FullJvmFormalParameter__Group__1"
    // InternalXcore.g:20218:1: rule__FullJvmFormalParameter__Group__1 : rule__FullJvmFormalParameter__Group__1__Impl ;
    public final void rule__FullJvmFormalParameter__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:20222:1: ( rule__FullJvmFormalParameter__Group__1__Impl )
            // InternalXcore.g:20223:2: rule__FullJvmFormalParameter__Group__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__FullJvmFormalParameter__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__FullJvmFormalParameter__Group__1"


    // $ANTLR start "rule__FullJvmFormalParameter__Group__1__Impl"
    // InternalXcore.g:20229:1: rule__FullJvmFormalParameter__Group__1__Impl : ( ( rule__FullJvmFormalParameter__NameAssignment_1 ) ) ;
    public final void rule__FullJvmFormalParameter__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:20233:1: ( ( ( rule__FullJvmFormalParameter__NameAssignment_1 ) ) )
            // InternalXcore.g:20234:1: ( ( rule__FullJvmFormalParameter__NameAssignment_1 ) )
            {
            // InternalXcore.g:20234:1: ( ( rule__FullJvmFormalParameter__NameAssignment_1 ) )
            // InternalXcore.g:20235:1: ( rule__FullJvmFormalParameter__NameAssignment_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getFullJvmFormalParameterAccess().getNameAssignment_1()); 
            }
            // InternalXcore.g:20236:1: ( rule__FullJvmFormalParameter__NameAssignment_1 )
            // InternalXcore.g:20236:2: rule__FullJvmFormalParameter__NameAssignment_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__FullJvmFormalParameter__NameAssignment_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getFullJvmFormalParameterAccess().getNameAssignment_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__FullJvmFormalParameter__Group__1__Impl"


    // $ANTLR start "rule__XFeatureCall__Group__0"
    // InternalXcore.g:20250:1: rule__XFeatureCall__Group__0 : rule__XFeatureCall__Group__0__Impl rule__XFeatureCall__Group__1 ;
    public final void rule__XFeatureCall__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:20254:1: ( rule__XFeatureCall__Group__0__Impl rule__XFeatureCall__Group__1 )
            // InternalXcore.g:20255:2: rule__XFeatureCall__Group__0__Impl rule__XFeatureCall__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_98);
            rule__XFeatureCall__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XFeatureCall__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XFeatureCall__Group__0"


    // $ANTLR start "rule__XFeatureCall__Group__0__Impl"
    // InternalXcore.g:20262:1: rule__XFeatureCall__Group__0__Impl : ( () ) ;
    public final void rule__XFeatureCall__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:20266:1: ( ( () ) )
            // InternalXcore.g:20267:1: ( () )
            {
            // InternalXcore.g:20267:1: ( () )
            // InternalXcore.g:20268:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXFeatureCallAccess().getXFeatureCallAction_0()); 
            }
            // InternalXcore.g:20269:1: ()
            // InternalXcore.g:20271:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXFeatureCallAccess().getXFeatureCallAction_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XFeatureCall__Group__0__Impl"


    // $ANTLR start "rule__XFeatureCall__Group__1"
    // InternalXcore.g:20281:1: rule__XFeatureCall__Group__1 : rule__XFeatureCall__Group__1__Impl rule__XFeatureCall__Group__2 ;
    public final void rule__XFeatureCall__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:20285:1: ( rule__XFeatureCall__Group__1__Impl rule__XFeatureCall__Group__2 )
            // InternalXcore.g:20286:2: rule__XFeatureCall__Group__1__Impl rule__XFeatureCall__Group__2
            {
            pushFollow(FollowSets000.FOLLOW_98);
            rule__XFeatureCall__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XFeatureCall__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XFeatureCall__Group__1"


    // $ANTLR start "rule__XFeatureCall__Group__1__Impl"
    // InternalXcore.g:20293:1: rule__XFeatureCall__Group__1__Impl : ( ( rule__XFeatureCall__Group_1__0 )? ) ;
    public final void rule__XFeatureCall__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:20297:1: ( ( ( rule__XFeatureCall__Group_1__0 )? ) )
            // InternalXcore.g:20298:1: ( ( rule__XFeatureCall__Group_1__0 )? )
            {
            // InternalXcore.g:20298:1: ( ( rule__XFeatureCall__Group_1__0 )? )
            // InternalXcore.g:20299:1: ( rule__XFeatureCall__Group_1__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXFeatureCallAccess().getGroup_1()); 
            }
            // InternalXcore.g:20300:1: ( rule__XFeatureCall__Group_1__0 )?
            int alt161=2;
            int LA161_0 = input.LA(1);

            if ( (LA161_0==66) ) {
                alt161=1;
            }
            switch (alt161) {
                case 1 :
                    // InternalXcore.g:20300:2: rule__XFeatureCall__Group_1__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XFeatureCall__Group_1__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXFeatureCallAccess().getGroup_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XFeatureCall__Group__1__Impl"


    // $ANTLR start "rule__XFeatureCall__Group__2"
    // InternalXcore.g:20310:1: rule__XFeatureCall__Group__2 : rule__XFeatureCall__Group__2__Impl rule__XFeatureCall__Group__3 ;
    public final void rule__XFeatureCall__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:20314:1: ( rule__XFeatureCall__Group__2__Impl rule__XFeatureCall__Group__3 )
            // InternalXcore.g:20315:2: rule__XFeatureCall__Group__2__Impl rule__XFeatureCall__Group__3
            {
            pushFollow(FollowSets000.FOLLOW_99);
            rule__XFeatureCall__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XFeatureCall__Group__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XFeatureCall__Group__2"


    // $ANTLR start "rule__XFeatureCall__Group__2__Impl"
    // InternalXcore.g:20322:1: rule__XFeatureCall__Group__2__Impl : ( ( rule__XFeatureCall__FeatureAssignment_2 ) ) ;
    public final void rule__XFeatureCall__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:20326:1: ( ( ( rule__XFeatureCall__FeatureAssignment_2 ) ) )
            // InternalXcore.g:20327:1: ( ( rule__XFeatureCall__FeatureAssignment_2 ) )
            {
            // InternalXcore.g:20327:1: ( ( rule__XFeatureCall__FeatureAssignment_2 ) )
            // InternalXcore.g:20328:1: ( rule__XFeatureCall__FeatureAssignment_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXFeatureCallAccess().getFeatureAssignment_2()); 
            }
            // InternalXcore.g:20329:1: ( rule__XFeatureCall__FeatureAssignment_2 )
            // InternalXcore.g:20329:2: rule__XFeatureCall__FeatureAssignment_2
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XFeatureCall__FeatureAssignment_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXFeatureCallAccess().getFeatureAssignment_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XFeatureCall__Group__2__Impl"


    // $ANTLR start "rule__XFeatureCall__Group__3"
    // InternalXcore.g:20339:1: rule__XFeatureCall__Group__3 : rule__XFeatureCall__Group__3__Impl rule__XFeatureCall__Group__4 ;
    public final void rule__XFeatureCall__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:20343:1: ( rule__XFeatureCall__Group__3__Impl rule__XFeatureCall__Group__4 )
            // InternalXcore.g:20344:2: rule__XFeatureCall__Group__3__Impl rule__XFeatureCall__Group__4
            {
            pushFollow(FollowSets000.FOLLOW_99);
            rule__XFeatureCall__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XFeatureCall__Group__4();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XFeatureCall__Group__3"


    // $ANTLR start "rule__XFeatureCall__Group__3__Impl"
    // InternalXcore.g:20351:1: rule__XFeatureCall__Group__3__Impl : ( ( rule__XFeatureCall__Group_3__0 )? ) ;
    public final void rule__XFeatureCall__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:20355:1: ( ( ( rule__XFeatureCall__Group_3__0 )? ) )
            // InternalXcore.g:20356:1: ( ( rule__XFeatureCall__Group_3__0 )? )
            {
            // InternalXcore.g:20356:1: ( ( rule__XFeatureCall__Group_3__0 )? )
            // InternalXcore.g:20357:1: ( rule__XFeatureCall__Group_3__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXFeatureCallAccess().getGroup_3()); 
            }
            // InternalXcore.g:20358:1: ( rule__XFeatureCall__Group_3__0 )?
            int alt162=2;
            alt162 = dfa162.predict(input);
            switch (alt162) {
                case 1 :
                    // InternalXcore.g:20358:2: rule__XFeatureCall__Group_3__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XFeatureCall__Group_3__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXFeatureCallAccess().getGroup_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XFeatureCall__Group__3__Impl"


    // $ANTLR start "rule__XFeatureCall__Group__4"
    // InternalXcore.g:20368:1: rule__XFeatureCall__Group__4 : rule__XFeatureCall__Group__4__Impl ;
    public final void rule__XFeatureCall__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:20372:1: ( rule__XFeatureCall__Group__4__Impl )
            // InternalXcore.g:20373:2: rule__XFeatureCall__Group__4__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XFeatureCall__Group__4__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XFeatureCall__Group__4"


    // $ANTLR start "rule__XFeatureCall__Group__4__Impl"
    // InternalXcore.g:20379:1: rule__XFeatureCall__Group__4__Impl : ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )? ) ;
    public final void rule__XFeatureCall__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:20383:1: ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )? ) )
            // InternalXcore.g:20384:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )? )
            {
            // InternalXcore.g:20384:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )? )
            // InternalXcore.g:20385:1: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_4()); 
            }
            // InternalXcore.g:20386:1: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )?
            int alt163=2;
            alt163 = dfa163.predict(input);
            switch (alt163) {
                case 1 :
                    // InternalXcore.g:20386:2: rule__XFeatureCall__FeatureCallArgumentsAssignment_4
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XFeatureCall__FeatureCallArgumentsAssignment_4();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_4()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XFeatureCall__Group__4__Impl"


    // $ANTLR start "rule__XFeatureCall__Group_1__0"
    // InternalXcore.g:20406:1: rule__XFeatureCall__Group_1__0 : rule__XFeatureCall__Group_1__0__Impl rule__XFeatureCall__Group_1__1 ;
    public final void rule__XFeatureCall__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:20410:1: ( rule__XFeatureCall__Group_1__0__Impl rule__XFeatureCall__Group_1__1 )
            // InternalXcore.g:20411:2: rule__XFeatureCall__Group_1__0__Impl rule__XFeatureCall__Group_1__1
            {
            pushFollow(FollowSets000.FOLLOW_100);
            rule__XFeatureCall__Group_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XFeatureCall__Group_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XFeatureCall__Group_1__0"


    // $ANTLR start "rule__XFeatureCall__Group_1__0__Impl"
    // InternalXcore.g:20418:1: rule__XFeatureCall__Group_1__0__Impl : ( '<' ) ;
    public final void rule__XFeatureCall__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:20422:1: ( ( '<' ) )
            // InternalXcore.g:20423:1: ( '<' )
            {
            // InternalXcore.g:20423:1: ( '<' )
            // InternalXcore.g:20424:1: '<'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXFeatureCallAccess().getLessThanSignKeyword_1_0()); 
            }
            match(input,66,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXFeatureCallAccess().getLessThanSignKeyword_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XFeatureCall__Group_1__0__Impl"


    // $ANTLR start "rule__XFeatureCall__Group_1__1"
    // InternalXcore.g:20437:1: rule__XFeatureCall__Group_1__1 : rule__XFeatureCall__Group_1__1__Impl rule__XFeatureCall__Group_1__2 ;
    public final void rule__XFeatureCall__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:20441:1: ( rule__XFeatureCall__Group_1__1__Impl rule__XFeatureCall__Group_1__2 )
            // InternalXcore.g:20442:2: rule__XFeatureCall__Group_1__1__Impl rule__XFeatureCall__Group_1__2
            {
            pushFollow(FollowSets000.FOLLOW_25);
            rule__XFeatureCall__Group_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XFeatureCall__Group_1__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XFeatureCall__Group_1__1"


    // $ANTLR start "rule__XFeatureCall__Group_1__1__Impl"
    // InternalXcore.g:20449:1: rule__XFeatureCall__Group_1__1__Impl : ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_1 ) ) ;
    public final void rule__XFeatureCall__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:20453:1: ( ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_1 ) ) )
            // InternalXcore.g:20454:1: ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_1 ) )
            {
            // InternalXcore.g:20454:1: ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_1 ) )
            // InternalXcore.g:20455:1: ( rule__XFeatureCall__TypeArgumentsAssignment_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXFeatureCallAccess().getTypeArgumentsAssignment_1_1()); 
            }
            // InternalXcore.g:20456:1: ( rule__XFeatureCall__TypeArgumentsAssignment_1_1 )
            // InternalXcore.g:20456:2: rule__XFeatureCall__TypeArgumentsAssignment_1_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XFeatureCall__TypeArgumentsAssignment_1_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXFeatureCallAccess().getTypeArgumentsAssignment_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XFeatureCall__Group_1__1__Impl"


    // $ANTLR start "rule__XFeatureCall__Group_1__2"
    // InternalXcore.g:20466:1: rule__XFeatureCall__Group_1__2 : rule__XFeatureCall__Group_1__2__Impl rule__XFeatureCall__Group_1__3 ;
    public final void rule__XFeatureCall__Group_1__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:20470:1: ( rule__XFeatureCall__Group_1__2__Impl rule__XFeatureCall__Group_1__3 )
            // InternalXcore.g:20471:2: rule__XFeatureCall__Group_1__2__Impl rule__XFeatureCall__Group_1__3
            {
            pushFollow(FollowSets000.FOLLOW_25);
            rule__XFeatureCall__Group_1__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XFeatureCall__Group_1__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XFeatureCall__Group_1__2"


    // $ANTLR start "rule__XFeatureCall__Group_1__2__Impl"
    // InternalXcore.g:20478:1: rule__XFeatureCall__Group_1__2__Impl : ( ( rule__XFeatureCall__Group_1_2__0 )* ) ;
    public final void rule__XFeatureCall__Group_1__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:20482:1: ( ( ( rule__XFeatureCall__Group_1_2__0 )* ) )
            // InternalXcore.g:20483:1: ( ( rule__XFeatureCall__Group_1_2__0 )* )
            {
            // InternalXcore.g:20483:1: ( ( rule__XFeatureCall__Group_1_2__0 )* )
            // InternalXcore.g:20484:1: ( rule__XFeatureCall__Group_1_2__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXFeatureCallAccess().getGroup_1_2()); 
            }
            // InternalXcore.g:20485:1: ( rule__XFeatureCall__Group_1_2__0 )*
            loop164:
            do {
                int alt164=2;
                int LA164_0 = input.LA(1);

                if ( (LA164_0==87) ) {
                    alt164=1;
                }


                switch (alt164) {
            	case 1 :
            	    // InternalXcore.g:20485:2: rule__XFeatureCall__Group_1_2__0
            	    {
            	    pushFollow(FollowSets000.FOLLOW_14);
            	    rule__XFeatureCall__Group_1_2__0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop164;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXFeatureCallAccess().getGroup_1_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XFeatureCall__Group_1__2__Impl"


    // $ANTLR start "rule__XFeatureCall__Group_1__3"
    // InternalXcore.g:20495:1: rule__XFeatureCall__Group_1__3 : rule__XFeatureCall__Group_1__3__Impl ;
    public final void rule__XFeatureCall__Group_1__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:20499:1: ( rule__XFeatureCall__Group_1__3__Impl )
            // InternalXcore.g:20500:2: rule__XFeatureCall__Group_1__3__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XFeatureCall__Group_1__3__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XFeatureCall__Group_1__3"


    // $ANTLR start "rule__XFeatureCall__Group_1__3__Impl"
    // InternalXcore.g:20506:1: rule__XFeatureCall__Group_1__3__Impl : ( '>' ) ;
    public final void rule__XFeatureCall__Group_1__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:20510:1: ( ( '>' ) )
            // InternalXcore.g:20511:1: ( '>' )
            {
            // InternalXcore.g:20511:1: ( '>' )
            // InternalXcore.g:20512:1: '>'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXFeatureCallAccess().getGreaterThanSignKeyword_1_3()); 
            }
            match(input,65,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXFeatureCallAccess().getGreaterThanSignKeyword_1_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XFeatureCall__Group_1__3__Impl"


    // $ANTLR start "rule__XFeatureCall__Group_1_2__0"
    // InternalXcore.g:20533:1: rule__XFeatureCall__Group_1_2__0 : rule__XFeatureCall__Group_1_2__0__Impl rule__XFeatureCall__Group_1_2__1 ;
    public final void rule__XFeatureCall__Group_1_2__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:20537:1: ( rule__XFeatureCall__Group_1_2__0__Impl rule__XFeatureCall__Group_1_2__1 )
            // InternalXcore.g:20538:2: rule__XFeatureCall__Group_1_2__0__Impl rule__XFeatureCall__Group_1_2__1
            {
            pushFollow(FollowSets000.FOLLOW_100);
            rule__XFeatureCall__Group_1_2__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XFeatureCall__Group_1_2__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XFeatureCall__Group_1_2__0"


    // $ANTLR start "rule__XFeatureCall__Group_1_2__0__Impl"
    // InternalXcore.g:20545:1: rule__XFeatureCall__Group_1_2__0__Impl : ( ',' ) ;
    public final void rule__XFeatureCall__Group_1_2__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:20549:1: ( ( ',' ) )
            // InternalXcore.g:20550:1: ( ',' )
            {
            // InternalXcore.g:20550:1: ( ',' )
            // InternalXcore.g:20551:1: ','
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXFeatureCallAccess().getCommaKeyword_1_2_0()); 
            }
            match(input,87,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXFeatureCallAccess().getCommaKeyword_1_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XFeatureCall__Group_1_2__0__Impl"


    // $ANTLR start "rule__XFeatureCall__Group_1_2__1"
    // InternalXcore.g:20564:1: rule__XFeatureCall__Group_1_2__1 : rule__XFeatureCall__Group_1_2__1__Impl ;
    public final void rule__XFeatureCall__Group_1_2__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:20568:1: ( rule__XFeatureCall__Group_1_2__1__Impl )
            // InternalXcore.g:20569:2: rule__XFeatureCall__Group_1_2__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XFeatureCall__Group_1_2__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XFeatureCall__Group_1_2__1"


    // $ANTLR start "rule__XFeatureCall__Group_1_2__1__Impl"
    // InternalXcore.g:20575:1: rule__XFeatureCall__Group_1_2__1__Impl : ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 ) ) ;
    public final void rule__XFeatureCall__Group_1_2__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:20579:1: ( ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 ) ) )
            // InternalXcore.g:20580:1: ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 ) )
            {
            // InternalXcore.g:20580:1: ( ( rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 ) )
            // InternalXcore.g:20581:1: ( rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXFeatureCallAccess().getTypeArgumentsAssignment_1_2_1()); 
            }
            // InternalXcore.g:20582:1: ( rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 )
            // InternalXcore.g:20582:2: rule__XFeatureCall__TypeArgumentsAssignment_1_2_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XFeatureCall__TypeArgumentsAssignment_1_2_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXFeatureCallAccess().getTypeArgumentsAssignment_1_2_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XFeatureCall__Group_1_2__1__Impl"


    // $ANTLR start "rule__XFeatureCall__Group_3__0"
    // InternalXcore.g:20596:1: rule__XFeatureCall__Group_3__0 : rule__XFeatureCall__Group_3__0__Impl rule__XFeatureCall__Group_3__1 ;
    public final void rule__XFeatureCall__Group_3__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:20600:1: ( rule__XFeatureCall__Group_3__0__Impl rule__XFeatureCall__Group_3__1 )
            // InternalXcore.g:20601:2: rule__XFeatureCall__Group_3__0__Impl rule__XFeatureCall__Group_3__1
            {
            pushFollow(FollowSets000.FOLLOW_101);
            rule__XFeatureCall__Group_3__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XFeatureCall__Group_3__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XFeatureCall__Group_3__0"


    // $ANTLR start "rule__XFeatureCall__Group_3__0__Impl"
    // InternalXcore.g:20608:1: rule__XFeatureCall__Group_3__0__Impl : ( ( rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 ) ) ;
    public final void rule__XFeatureCall__Group_3__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:20612:1: ( ( ( rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 ) ) )
            // InternalXcore.g:20613:1: ( ( rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 ) )
            {
            // InternalXcore.g:20613:1: ( ( rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 ) )
            // InternalXcore.g:20614:1: ( rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXFeatureCallAccess().getExplicitOperationCallAssignment_3_0()); 
            }
            // InternalXcore.g:20615:1: ( rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 )
            // InternalXcore.g:20615:2: rule__XFeatureCall__ExplicitOperationCallAssignment_3_0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XFeatureCall__ExplicitOperationCallAssignment_3_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXFeatureCallAccess().getExplicitOperationCallAssignment_3_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XFeatureCall__Group_3__0__Impl"


    // $ANTLR start "rule__XFeatureCall__Group_3__1"
    // InternalXcore.g:20625:1: rule__XFeatureCall__Group_3__1 : rule__XFeatureCall__Group_3__1__Impl rule__XFeatureCall__Group_3__2 ;
    public final void rule__XFeatureCall__Group_3__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:20629:1: ( rule__XFeatureCall__Group_3__1__Impl rule__XFeatureCall__Group_3__2 )
            // InternalXcore.g:20630:2: rule__XFeatureCall__Group_3__1__Impl rule__XFeatureCall__Group_3__2
            {
            pushFollow(FollowSets000.FOLLOW_101);
            rule__XFeatureCall__Group_3__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XFeatureCall__Group_3__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XFeatureCall__Group_3__1"


    // $ANTLR start "rule__XFeatureCall__Group_3__1__Impl"
    // InternalXcore.g:20637:1: rule__XFeatureCall__Group_3__1__Impl : ( ( rule__XFeatureCall__Alternatives_3_1 )? ) ;
    public final void rule__XFeatureCall__Group_3__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:20641:1: ( ( ( rule__XFeatureCall__Alternatives_3_1 )? ) )
            // InternalXcore.g:20642:1: ( ( rule__XFeatureCall__Alternatives_3_1 )? )
            {
            // InternalXcore.g:20642:1: ( ( rule__XFeatureCall__Alternatives_3_1 )? )
            // InternalXcore.g:20643:1: ( rule__XFeatureCall__Alternatives_3_1 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXFeatureCallAccess().getAlternatives_3_1()); 
            }
            // InternalXcore.g:20644:1: ( rule__XFeatureCall__Alternatives_3_1 )?
            int alt165=2;
            int LA165_0 = input.LA(1);

            if ( ((LA165_0>=RULE_INT && LA165_0<=RULE_STRING)||LA165_0==16||(LA165_0>=19 && LA165_0<=54)||LA165_0==66||LA165_0==70||LA165_0==73||LA165_0==77||(LA165_0>=82 && LA165_0<=83)||LA165_0==85||LA165_0==89||LA165_0==92||(LA165_0>=96 && LA165_0<=97)||LA165_0==99||(LA165_0>=103 && LA165_0<=111)||LA165_0==113||LA165_0==117||LA165_0==119) ) {
                alt165=1;
            }
            switch (alt165) {
                case 1 :
                    // InternalXcore.g:20644:2: rule__XFeatureCall__Alternatives_3_1
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XFeatureCall__Alternatives_3_1();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXFeatureCallAccess().getAlternatives_3_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XFeatureCall__Group_3__1__Impl"


    // $ANTLR start "rule__XFeatureCall__Group_3__2"
    // InternalXcore.g:20654:1: rule__XFeatureCall__Group_3__2 : rule__XFeatureCall__Group_3__2__Impl ;
    public final void rule__XFeatureCall__Group_3__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:20658:1: ( rule__XFeatureCall__Group_3__2__Impl )
            // InternalXcore.g:20659:2: rule__XFeatureCall__Group_3__2__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XFeatureCall__Group_3__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XFeatureCall__Group_3__2"


    // $ANTLR start "rule__XFeatureCall__Group_3__2__Impl"
    // InternalXcore.g:20665:1: rule__XFeatureCall__Group_3__2__Impl : ( ')' ) ;
    public final void rule__XFeatureCall__Group_3__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:20669:1: ( ( ')' ) )
            // InternalXcore.g:20670:1: ( ')' )
            {
            // InternalXcore.g:20670:1: ( ')' )
            // InternalXcore.g:20671:1: ')'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXFeatureCallAccess().getRightParenthesisKeyword_3_2()); 
            }
            match(input,86,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXFeatureCallAccess().getRightParenthesisKeyword_3_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XFeatureCall__Group_3__2__Impl"


    // $ANTLR start "rule__XFeatureCall__Group_3_1_1__0"
    // InternalXcore.g:20690:1: rule__XFeatureCall__Group_3_1_1__0 : rule__XFeatureCall__Group_3_1_1__0__Impl rule__XFeatureCall__Group_3_1_1__1 ;
    public final void rule__XFeatureCall__Group_3_1_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:20694:1: ( rule__XFeatureCall__Group_3_1_1__0__Impl rule__XFeatureCall__Group_3_1_1__1 )
            // InternalXcore.g:20695:2: rule__XFeatureCall__Group_3_1_1__0__Impl rule__XFeatureCall__Group_3_1_1__1
            {
            pushFollow(FollowSets000.FOLLOW_38);
            rule__XFeatureCall__Group_3_1_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XFeatureCall__Group_3_1_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XFeatureCall__Group_3_1_1__0"


    // $ANTLR start "rule__XFeatureCall__Group_3_1_1__0__Impl"
    // InternalXcore.g:20702:1: rule__XFeatureCall__Group_3_1_1__0__Impl : ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 ) ) ;
    public final void rule__XFeatureCall__Group_3_1_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:20706:1: ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 ) ) )
            // InternalXcore.g:20707:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 ) )
            {
            // InternalXcore.g:20707:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 ) )
            // InternalXcore.g:20708:1: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_3_1_1_0()); 
            }
            // InternalXcore.g:20709:1: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 )
            // InternalXcore.g:20709:2: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_3_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XFeatureCall__Group_3_1_1__0__Impl"


    // $ANTLR start "rule__XFeatureCall__Group_3_1_1__1"
    // InternalXcore.g:20719:1: rule__XFeatureCall__Group_3_1_1__1 : rule__XFeatureCall__Group_3_1_1__1__Impl ;
    public final void rule__XFeatureCall__Group_3_1_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:20723:1: ( rule__XFeatureCall__Group_3_1_1__1__Impl )
            // InternalXcore.g:20724:2: rule__XFeatureCall__Group_3_1_1__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XFeatureCall__Group_3_1_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XFeatureCall__Group_3_1_1__1"


    // $ANTLR start "rule__XFeatureCall__Group_3_1_1__1__Impl"
    // InternalXcore.g:20730:1: rule__XFeatureCall__Group_3_1_1__1__Impl : ( ( rule__XFeatureCall__Group_3_1_1_1__0 )* ) ;
    public final void rule__XFeatureCall__Group_3_1_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:20734:1: ( ( ( rule__XFeatureCall__Group_3_1_1_1__0 )* ) )
            // InternalXcore.g:20735:1: ( ( rule__XFeatureCall__Group_3_1_1_1__0 )* )
            {
            // InternalXcore.g:20735:1: ( ( rule__XFeatureCall__Group_3_1_1_1__0 )* )
            // InternalXcore.g:20736:1: ( rule__XFeatureCall__Group_3_1_1_1__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXFeatureCallAccess().getGroup_3_1_1_1()); 
            }
            // InternalXcore.g:20737:1: ( rule__XFeatureCall__Group_3_1_1_1__0 )*
            loop166:
            do {
                int alt166=2;
                int LA166_0 = input.LA(1);

                if ( (LA166_0==87) ) {
                    alt166=1;
                }


                switch (alt166) {
            	case 1 :
            	    // InternalXcore.g:20737:2: rule__XFeatureCall__Group_3_1_1_1__0
            	    {
            	    pushFollow(FollowSets000.FOLLOW_14);
            	    rule__XFeatureCall__Group_3_1_1_1__0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop166;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXFeatureCallAccess().getGroup_3_1_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XFeatureCall__Group_3_1_1__1__Impl"


    // $ANTLR start "rule__XFeatureCall__Group_3_1_1_1__0"
    // InternalXcore.g:20751:1: rule__XFeatureCall__Group_3_1_1_1__0 : rule__XFeatureCall__Group_3_1_1_1__0__Impl rule__XFeatureCall__Group_3_1_1_1__1 ;
    public final void rule__XFeatureCall__Group_3_1_1_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:20755:1: ( rule__XFeatureCall__Group_3_1_1_1__0__Impl rule__XFeatureCall__Group_3_1_1_1__1 )
            // InternalXcore.g:20756:2: rule__XFeatureCall__Group_3_1_1_1__0__Impl rule__XFeatureCall__Group_3_1_1_1__1
            {
            pushFollow(FollowSets000.FOLLOW_72);
            rule__XFeatureCall__Group_3_1_1_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XFeatureCall__Group_3_1_1_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XFeatureCall__Group_3_1_1_1__0"


    // $ANTLR start "rule__XFeatureCall__Group_3_1_1_1__0__Impl"
    // InternalXcore.g:20763:1: rule__XFeatureCall__Group_3_1_1_1__0__Impl : ( ',' ) ;
    public final void rule__XFeatureCall__Group_3_1_1_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:20767:1: ( ( ',' ) )
            // InternalXcore.g:20768:1: ( ',' )
            {
            // InternalXcore.g:20768:1: ( ',' )
            // InternalXcore.g:20769:1: ','
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXFeatureCallAccess().getCommaKeyword_3_1_1_1_0()); 
            }
            match(input,87,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXFeatureCallAccess().getCommaKeyword_3_1_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XFeatureCall__Group_3_1_1_1__0__Impl"


    // $ANTLR start "rule__XFeatureCall__Group_3_1_1_1__1"
    // InternalXcore.g:20782:1: rule__XFeatureCall__Group_3_1_1_1__1 : rule__XFeatureCall__Group_3_1_1_1__1__Impl ;
    public final void rule__XFeatureCall__Group_3_1_1_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:20786:1: ( rule__XFeatureCall__Group_3_1_1_1__1__Impl )
            // InternalXcore.g:20787:2: rule__XFeatureCall__Group_3_1_1_1__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XFeatureCall__Group_3_1_1_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XFeatureCall__Group_3_1_1_1__1"


    // $ANTLR start "rule__XFeatureCall__Group_3_1_1_1__1__Impl"
    // InternalXcore.g:20793:1: rule__XFeatureCall__Group_3_1_1_1__1__Impl : ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 ) ) ;
    public final void rule__XFeatureCall__Group_3_1_1_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:20797:1: ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 ) ) )
            // InternalXcore.g:20798:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 ) )
            {
            // InternalXcore.g:20798:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 ) )
            // InternalXcore.g:20799:1: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_3_1_1_1_1()); 
            }
            // InternalXcore.g:20800:1: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 )
            // InternalXcore.g:20800:2: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_3_1_1_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XFeatureCall__Group_3_1_1_1__1__Impl"


    // $ANTLR start "rule__XConstructorCall__Group__0"
    // InternalXcore.g:20814:1: rule__XConstructorCall__Group__0 : rule__XConstructorCall__Group__0__Impl rule__XConstructorCall__Group__1 ;
    public final void rule__XConstructorCall__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:20818:1: ( rule__XConstructorCall__Group__0__Impl rule__XConstructorCall__Group__1 )
            // InternalXcore.g:20819:2: rule__XConstructorCall__Group__0__Impl rule__XConstructorCall__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_123);
            rule__XConstructorCall__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XConstructorCall__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XConstructorCall__Group__0"


    // $ANTLR start "rule__XConstructorCall__Group__0__Impl"
    // InternalXcore.g:20826:1: rule__XConstructorCall__Group__0__Impl : ( () ) ;
    public final void rule__XConstructorCall__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:20830:1: ( ( () ) )
            // InternalXcore.g:20831:1: ( () )
            {
            // InternalXcore.g:20831:1: ( () )
            // InternalXcore.g:20832:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXConstructorCallAccess().getXConstructorCallAction_0()); 
            }
            // InternalXcore.g:20833:1: ()
            // InternalXcore.g:20835:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXConstructorCallAccess().getXConstructorCallAction_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XConstructorCall__Group__0__Impl"


    // $ANTLR start "rule__XConstructorCall__Group__1"
    // InternalXcore.g:20845:1: rule__XConstructorCall__Group__1 : rule__XConstructorCall__Group__1__Impl rule__XConstructorCall__Group__2 ;
    public final void rule__XConstructorCall__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:20849:1: ( rule__XConstructorCall__Group__1__Impl rule__XConstructorCall__Group__2 )
            // InternalXcore.g:20850:2: rule__XConstructorCall__Group__1__Impl rule__XConstructorCall__Group__2
            {
            pushFollow(FollowSets000.FOLLOW_6);
            rule__XConstructorCall__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XConstructorCall__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XConstructorCall__Group__1"


    // $ANTLR start "rule__XConstructorCall__Group__1__Impl"
    // InternalXcore.g:20857:1: rule__XConstructorCall__Group__1__Impl : ( 'new' ) ;
    public final void rule__XConstructorCall__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:20861:1: ( ( 'new' ) )
            // InternalXcore.g:20862:1: ( 'new' )
            {
            // InternalXcore.g:20862:1: ( 'new' )
            // InternalXcore.g:20863:1: 'new'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXConstructorCallAccess().getNewKeyword_1()); 
            }
            match(input,106,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXConstructorCallAccess().getNewKeyword_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XConstructorCall__Group__1__Impl"


    // $ANTLR start "rule__XConstructorCall__Group__2"
    // InternalXcore.g:20876:1: rule__XConstructorCall__Group__2 : rule__XConstructorCall__Group__2__Impl rule__XConstructorCall__Group__3 ;
    public final void rule__XConstructorCall__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:20880:1: ( rule__XConstructorCall__Group__2__Impl rule__XConstructorCall__Group__3 )
            // InternalXcore.g:20881:2: rule__XConstructorCall__Group__2__Impl rule__XConstructorCall__Group__3
            {
            pushFollow(FollowSets000.FOLLOW_124);
            rule__XConstructorCall__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XConstructorCall__Group__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XConstructorCall__Group__2"


    // $ANTLR start "rule__XConstructorCall__Group__2__Impl"
    // InternalXcore.g:20888:1: rule__XConstructorCall__Group__2__Impl : ( ( rule__XConstructorCall__ConstructorAssignment_2 ) ) ;
    public final void rule__XConstructorCall__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:20892:1: ( ( ( rule__XConstructorCall__ConstructorAssignment_2 ) ) )
            // InternalXcore.g:20893:1: ( ( rule__XConstructorCall__ConstructorAssignment_2 ) )
            {
            // InternalXcore.g:20893:1: ( ( rule__XConstructorCall__ConstructorAssignment_2 ) )
            // InternalXcore.g:20894:1: ( rule__XConstructorCall__ConstructorAssignment_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXConstructorCallAccess().getConstructorAssignment_2()); 
            }
            // InternalXcore.g:20895:1: ( rule__XConstructorCall__ConstructorAssignment_2 )
            // InternalXcore.g:20895:2: rule__XConstructorCall__ConstructorAssignment_2
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XConstructorCall__ConstructorAssignment_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXConstructorCallAccess().getConstructorAssignment_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XConstructorCall__Group__2__Impl"


    // $ANTLR start "rule__XConstructorCall__Group__3"
    // InternalXcore.g:20905:1: rule__XConstructorCall__Group__3 : rule__XConstructorCall__Group__3__Impl rule__XConstructorCall__Group__4 ;
    public final void rule__XConstructorCall__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:20909:1: ( rule__XConstructorCall__Group__3__Impl rule__XConstructorCall__Group__4 )
            // InternalXcore.g:20910:2: rule__XConstructorCall__Group__3__Impl rule__XConstructorCall__Group__4
            {
            pushFollow(FollowSets000.FOLLOW_124);
            rule__XConstructorCall__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XConstructorCall__Group__4();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XConstructorCall__Group__3"


    // $ANTLR start "rule__XConstructorCall__Group__3__Impl"
    // InternalXcore.g:20917:1: rule__XConstructorCall__Group__3__Impl : ( ( rule__XConstructorCall__Group_3__0 )? ) ;
    public final void rule__XConstructorCall__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:20921:1: ( ( ( rule__XConstructorCall__Group_3__0 )? ) )
            // InternalXcore.g:20922:1: ( ( rule__XConstructorCall__Group_3__0 )? )
            {
            // InternalXcore.g:20922:1: ( ( rule__XConstructorCall__Group_3__0 )? )
            // InternalXcore.g:20923:1: ( rule__XConstructorCall__Group_3__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXConstructorCallAccess().getGroup_3()); 
            }
            // InternalXcore.g:20924:1: ( rule__XConstructorCall__Group_3__0 )?
            int alt167=2;
            alt167 = dfa167.predict(input);
            switch (alt167) {
                case 1 :
                    // InternalXcore.g:20924:2: rule__XConstructorCall__Group_3__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XConstructorCall__Group_3__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXConstructorCallAccess().getGroup_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XConstructorCall__Group__3__Impl"


    // $ANTLR start "rule__XConstructorCall__Group__4"
    // InternalXcore.g:20934:1: rule__XConstructorCall__Group__4 : rule__XConstructorCall__Group__4__Impl rule__XConstructorCall__Group__5 ;
    public final void rule__XConstructorCall__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:20938:1: ( rule__XConstructorCall__Group__4__Impl rule__XConstructorCall__Group__5 )
            // InternalXcore.g:20939:2: rule__XConstructorCall__Group__4__Impl rule__XConstructorCall__Group__5
            {
            pushFollow(FollowSets000.FOLLOW_124);
            rule__XConstructorCall__Group__4__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XConstructorCall__Group__5();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XConstructorCall__Group__4"


    // $ANTLR start "rule__XConstructorCall__Group__4__Impl"
    // InternalXcore.g:20946:1: rule__XConstructorCall__Group__4__Impl : ( ( rule__XConstructorCall__Group_4__0 )? ) ;
    public final void rule__XConstructorCall__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:20950:1: ( ( ( rule__XConstructorCall__Group_4__0 )? ) )
            // InternalXcore.g:20951:1: ( ( rule__XConstructorCall__Group_4__0 )? )
            {
            // InternalXcore.g:20951:1: ( ( rule__XConstructorCall__Group_4__0 )? )
            // InternalXcore.g:20952:1: ( rule__XConstructorCall__Group_4__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXConstructorCallAccess().getGroup_4()); 
            }
            // InternalXcore.g:20953:1: ( rule__XConstructorCall__Group_4__0 )?
            int alt168=2;
            alt168 = dfa168.predict(input);
            switch (alt168) {
                case 1 :
                    // InternalXcore.g:20953:2: rule__XConstructorCall__Group_4__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XConstructorCall__Group_4__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXConstructorCallAccess().getGroup_4()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XConstructorCall__Group__4__Impl"


    // $ANTLR start "rule__XConstructorCall__Group__5"
    // InternalXcore.g:20963:1: rule__XConstructorCall__Group__5 : rule__XConstructorCall__Group__5__Impl ;
    public final void rule__XConstructorCall__Group__5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:20967:1: ( rule__XConstructorCall__Group__5__Impl )
            // InternalXcore.g:20968:2: rule__XConstructorCall__Group__5__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XConstructorCall__Group__5__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XConstructorCall__Group__5"


    // $ANTLR start "rule__XConstructorCall__Group__5__Impl"
    // InternalXcore.g:20974:1: rule__XConstructorCall__Group__5__Impl : ( ( rule__XConstructorCall__ArgumentsAssignment_5 )? ) ;
    public final void rule__XConstructorCall__Group__5__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:20978:1: ( ( ( rule__XConstructorCall__ArgumentsAssignment_5 )? ) )
            // InternalXcore.g:20979:1: ( ( rule__XConstructorCall__ArgumentsAssignment_5 )? )
            {
            // InternalXcore.g:20979:1: ( ( rule__XConstructorCall__ArgumentsAssignment_5 )? )
            // InternalXcore.g:20980:1: ( rule__XConstructorCall__ArgumentsAssignment_5 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_5()); 
            }
            // InternalXcore.g:20981:1: ( rule__XConstructorCall__ArgumentsAssignment_5 )?
            int alt169=2;
            alt169 = dfa169.predict(input);
            switch (alt169) {
                case 1 :
                    // InternalXcore.g:20981:2: rule__XConstructorCall__ArgumentsAssignment_5
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XConstructorCall__ArgumentsAssignment_5();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_5()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XConstructorCall__Group__5__Impl"


    // $ANTLR start "rule__XConstructorCall__Group_3__0"
    // InternalXcore.g:21003:1: rule__XConstructorCall__Group_3__0 : rule__XConstructorCall__Group_3__0__Impl rule__XConstructorCall__Group_3__1 ;
    public final void rule__XConstructorCall__Group_3__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:21007:1: ( rule__XConstructorCall__Group_3__0__Impl rule__XConstructorCall__Group_3__1 )
            // InternalXcore.g:21008:2: rule__XConstructorCall__Group_3__0__Impl rule__XConstructorCall__Group_3__1
            {
            pushFollow(FollowSets000.FOLLOW_100);
            rule__XConstructorCall__Group_3__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XConstructorCall__Group_3__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XConstructorCall__Group_3__0"


    // $ANTLR start "rule__XConstructorCall__Group_3__0__Impl"
    // InternalXcore.g:21015:1: rule__XConstructorCall__Group_3__0__Impl : ( ( '<' ) ) ;
    public final void rule__XConstructorCall__Group_3__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:21019:1: ( ( ( '<' ) ) )
            // InternalXcore.g:21020:1: ( ( '<' ) )
            {
            // InternalXcore.g:21020:1: ( ( '<' ) )
            // InternalXcore.g:21021:1: ( '<' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXConstructorCallAccess().getLessThanSignKeyword_3_0()); 
            }
            // InternalXcore.g:21022:1: ( '<' )
            // InternalXcore.g:21023:2: '<'
            {
            match(input,66,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXConstructorCallAccess().getLessThanSignKeyword_3_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XConstructorCall__Group_3__0__Impl"


    // $ANTLR start "rule__XConstructorCall__Group_3__1"
    // InternalXcore.g:21034:1: rule__XConstructorCall__Group_3__1 : rule__XConstructorCall__Group_3__1__Impl rule__XConstructorCall__Group_3__2 ;
    public final void rule__XConstructorCall__Group_3__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:21038:1: ( rule__XConstructorCall__Group_3__1__Impl rule__XConstructorCall__Group_3__2 )
            // InternalXcore.g:21039:2: rule__XConstructorCall__Group_3__1__Impl rule__XConstructorCall__Group_3__2
            {
            pushFollow(FollowSets000.FOLLOW_25);
            rule__XConstructorCall__Group_3__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XConstructorCall__Group_3__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XConstructorCall__Group_3__1"


    // $ANTLR start "rule__XConstructorCall__Group_3__1__Impl"
    // InternalXcore.g:21046:1: rule__XConstructorCall__Group_3__1__Impl : ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_1 ) ) ;
    public final void rule__XConstructorCall__Group_3__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:21050:1: ( ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_1 ) ) )
            // InternalXcore.g:21051:1: ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_1 ) )
            {
            // InternalXcore.g:21051:1: ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_1 ) )
            // InternalXcore.g:21052:1: ( rule__XConstructorCall__TypeArgumentsAssignment_3_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXConstructorCallAccess().getTypeArgumentsAssignment_3_1()); 
            }
            // InternalXcore.g:21053:1: ( rule__XConstructorCall__TypeArgumentsAssignment_3_1 )
            // InternalXcore.g:21053:2: rule__XConstructorCall__TypeArgumentsAssignment_3_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XConstructorCall__TypeArgumentsAssignment_3_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXConstructorCallAccess().getTypeArgumentsAssignment_3_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XConstructorCall__Group_3__1__Impl"


    // $ANTLR start "rule__XConstructorCall__Group_3__2"
    // InternalXcore.g:21063:1: rule__XConstructorCall__Group_3__2 : rule__XConstructorCall__Group_3__2__Impl rule__XConstructorCall__Group_3__3 ;
    public final void rule__XConstructorCall__Group_3__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:21067:1: ( rule__XConstructorCall__Group_3__2__Impl rule__XConstructorCall__Group_3__3 )
            // InternalXcore.g:21068:2: rule__XConstructorCall__Group_3__2__Impl rule__XConstructorCall__Group_3__3
            {
            pushFollow(FollowSets000.FOLLOW_25);
            rule__XConstructorCall__Group_3__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XConstructorCall__Group_3__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XConstructorCall__Group_3__2"


    // $ANTLR start "rule__XConstructorCall__Group_3__2__Impl"
    // InternalXcore.g:21075:1: rule__XConstructorCall__Group_3__2__Impl : ( ( rule__XConstructorCall__Group_3_2__0 )* ) ;
    public final void rule__XConstructorCall__Group_3__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:21079:1: ( ( ( rule__XConstructorCall__Group_3_2__0 )* ) )
            // InternalXcore.g:21080:1: ( ( rule__XConstructorCall__Group_3_2__0 )* )
            {
            // InternalXcore.g:21080:1: ( ( rule__XConstructorCall__Group_3_2__0 )* )
            // InternalXcore.g:21081:1: ( rule__XConstructorCall__Group_3_2__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXConstructorCallAccess().getGroup_3_2()); 
            }
            // InternalXcore.g:21082:1: ( rule__XConstructorCall__Group_3_2__0 )*
            loop170:
            do {
                int alt170=2;
                int LA170_0 = input.LA(1);

                if ( (LA170_0==87) ) {
                    alt170=1;
                }


                switch (alt170) {
            	case 1 :
            	    // InternalXcore.g:21082:2: rule__XConstructorCall__Group_3_2__0
            	    {
            	    pushFollow(FollowSets000.FOLLOW_14);
            	    rule__XConstructorCall__Group_3_2__0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop170;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXConstructorCallAccess().getGroup_3_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XConstructorCall__Group_3__2__Impl"


    // $ANTLR start "rule__XConstructorCall__Group_3__3"
    // InternalXcore.g:21092:1: rule__XConstructorCall__Group_3__3 : rule__XConstructorCall__Group_3__3__Impl ;
    public final void rule__XConstructorCall__Group_3__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:21096:1: ( rule__XConstructorCall__Group_3__3__Impl )
            // InternalXcore.g:21097:2: rule__XConstructorCall__Group_3__3__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XConstructorCall__Group_3__3__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XConstructorCall__Group_3__3"


    // $ANTLR start "rule__XConstructorCall__Group_3__3__Impl"
    // InternalXcore.g:21103:1: rule__XConstructorCall__Group_3__3__Impl : ( '>' ) ;
    public final void rule__XConstructorCall__Group_3__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:21107:1: ( ( '>' ) )
            // InternalXcore.g:21108:1: ( '>' )
            {
            // InternalXcore.g:21108:1: ( '>' )
            // InternalXcore.g:21109:1: '>'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXConstructorCallAccess().getGreaterThanSignKeyword_3_3()); 
            }
            match(input,65,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXConstructorCallAccess().getGreaterThanSignKeyword_3_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XConstructorCall__Group_3__3__Impl"


    // $ANTLR start "rule__XConstructorCall__Group_3_2__0"
    // InternalXcore.g:21130:1: rule__XConstructorCall__Group_3_2__0 : rule__XConstructorCall__Group_3_2__0__Impl rule__XConstructorCall__Group_3_2__1 ;
    public final void rule__XConstructorCall__Group_3_2__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:21134:1: ( rule__XConstructorCall__Group_3_2__0__Impl rule__XConstructorCall__Group_3_2__1 )
            // InternalXcore.g:21135:2: rule__XConstructorCall__Group_3_2__0__Impl rule__XConstructorCall__Group_3_2__1
            {
            pushFollow(FollowSets000.FOLLOW_100);
            rule__XConstructorCall__Group_3_2__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XConstructorCall__Group_3_2__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XConstructorCall__Group_3_2__0"


    // $ANTLR start "rule__XConstructorCall__Group_3_2__0__Impl"
    // InternalXcore.g:21142:1: rule__XConstructorCall__Group_3_2__0__Impl : ( ',' ) ;
    public final void rule__XConstructorCall__Group_3_2__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:21146:1: ( ( ',' ) )
            // InternalXcore.g:21147:1: ( ',' )
            {
            // InternalXcore.g:21147:1: ( ',' )
            // InternalXcore.g:21148:1: ','
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXConstructorCallAccess().getCommaKeyword_3_2_0()); 
            }
            match(input,87,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXConstructorCallAccess().getCommaKeyword_3_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XConstructorCall__Group_3_2__0__Impl"


    // $ANTLR start "rule__XConstructorCall__Group_3_2__1"
    // InternalXcore.g:21161:1: rule__XConstructorCall__Group_3_2__1 : rule__XConstructorCall__Group_3_2__1__Impl ;
    public final void rule__XConstructorCall__Group_3_2__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:21165:1: ( rule__XConstructorCall__Group_3_2__1__Impl )
            // InternalXcore.g:21166:2: rule__XConstructorCall__Group_3_2__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XConstructorCall__Group_3_2__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XConstructorCall__Group_3_2__1"


    // $ANTLR start "rule__XConstructorCall__Group_3_2__1__Impl"
    // InternalXcore.g:21172:1: rule__XConstructorCall__Group_3_2__1__Impl : ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 ) ) ;
    public final void rule__XConstructorCall__Group_3_2__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:21176:1: ( ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 ) ) )
            // InternalXcore.g:21177:1: ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 ) )
            {
            // InternalXcore.g:21177:1: ( ( rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 ) )
            // InternalXcore.g:21178:1: ( rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXConstructorCallAccess().getTypeArgumentsAssignment_3_2_1()); 
            }
            // InternalXcore.g:21179:1: ( rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 )
            // InternalXcore.g:21179:2: rule__XConstructorCall__TypeArgumentsAssignment_3_2_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XConstructorCall__TypeArgumentsAssignment_3_2_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXConstructorCallAccess().getTypeArgumentsAssignment_3_2_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XConstructorCall__Group_3_2__1__Impl"


    // $ANTLR start "rule__XConstructorCall__Group_4__0"
    // InternalXcore.g:21193:1: rule__XConstructorCall__Group_4__0 : rule__XConstructorCall__Group_4__0__Impl rule__XConstructorCall__Group_4__1 ;
    public final void rule__XConstructorCall__Group_4__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:21197:1: ( rule__XConstructorCall__Group_4__0__Impl rule__XConstructorCall__Group_4__1 )
            // InternalXcore.g:21198:2: rule__XConstructorCall__Group_4__0__Impl rule__XConstructorCall__Group_4__1
            {
            pushFollow(FollowSets000.FOLLOW_101);
            rule__XConstructorCall__Group_4__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XConstructorCall__Group_4__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XConstructorCall__Group_4__0"


    // $ANTLR start "rule__XConstructorCall__Group_4__0__Impl"
    // InternalXcore.g:21205:1: rule__XConstructorCall__Group_4__0__Impl : ( ( rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 ) ) ;
    public final void rule__XConstructorCall__Group_4__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:21209:1: ( ( ( rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 ) ) )
            // InternalXcore.g:21210:1: ( ( rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 ) )
            {
            // InternalXcore.g:21210:1: ( ( rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 ) )
            // InternalXcore.g:21211:1: ( rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXConstructorCallAccess().getExplicitConstructorCallAssignment_4_0()); 
            }
            // InternalXcore.g:21212:1: ( rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 )
            // InternalXcore.g:21212:2: rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXConstructorCallAccess().getExplicitConstructorCallAssignment_4_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XConstructorCall__Group_4__0__Impl"


    // $ANTLR start "rule__XConstructorCall__Group_4__1"
    // InternalXcore.g:21222:1: rule__XConstructorCall__Group_4__1 : rule__XConstructorCall__Group_4__1__Impl rule__XConstructorCall__Group_4__2 ;
    public final void rule__XConstructorCall__Group_4__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:21226:1: ( rule__XConstructorCall__Group_4__1__Impl rule__XConstructorCall__Group_4__2 )
            // InternalXcore.g:21227:2: rule__XConstructorCall__Group_4__1__Impl rule__XConstructorCall__Group_4__2
            {
            pushFollow(FollowSets000.FOLLOW_101);
            rule__XConstructorCall__Group_4__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XConstructorCall__Group_4__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XConstructorCall__Group_4__1"


    // $ANTLR start "rule__XConstructorCall__Group_4__1__Impl"
    // InternalXcore.g:21234:1: rule__XConstructorCall__Group_4__1__Impl : ( ( rule__XConstructorCall__Alternatives_4_1 )? ) ;
    public final void rule__XConstructorCall__Group_4__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:21238:1: ( ( ( rule__XConstructorCall__Alternatives_4_1 )? ) )
            // InternalXcore.g:21239:1: ( ( rule__XConstructorCall__Alternatives_4_1 )? )
            {
            // InternalXcore.g:21239:1: ( ( rule__XConstructorCall__Alternatives_4_1 )? )
            // InternalXcore.g:21240:1: ( rule__XConstructorCall__Alternatives_4_1 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXConstructorCallAccess().getAlternatives_4_1()); 
            }
            // InternalXcore.g:21241:1: ( rule__XConstructorCall__Alternatives_4_1 )?
            int alt171=2;
            int LA171_0 = input.LA(1);

            if ( ((LA171_0>=RULE_INT && LA171_0<=RULE_STRING)||LA171_0==16||(LA171_0>=19 && LA171_0<=54)||LA171_0==66||LA171_0==70||LA171_0==73||LA171_0==77||(LA171_0>=82 && LA171_0<=83)||LA171_0==85||LA171_0==89||LA171_0==92||(LA171_0>=96 && LA171_0<=97)||LA171_0==99||(LA171_0>=103 && LA171_0<=111)||LA171_0==113||LA171_0==117||LA171_0==119) ) {
                alt171=1;
            }
            switch (alt171) {
                case 1 :
                    // InternalXcore.g:21241:2: rule__XConstructorCall__Alternatives_4_1
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XConstructorCall__Alternatives_4_1();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXConstructorCallAccess().getAlternatives_4_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XConstructorCall__Group_4__1__Impl"


    // $ANTLR start "rule__XConstructorCall__Group_4__2"
    // InternalXcore.g:21251:1: rule__XConstructorCall__Group_4__2 : rule__XConstructorCall__Group_4__2__Impl ;
    public final void rule__XConstructorCall__Group_4__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:21255:1: ( rule__XConstructorCall__Group_4__2__Impl )
            // InternalXcore.g:21256:2: rule__XConstructorCall__Group_4__2__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XConstructorCall__Group_4__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XConstructorCall__Group_4__2"


    // $ANTLR start "rule__XConstructorCall__Group_4__2__Impl"
    // InternalXcore.g:21262:1: rule__XConstructorCall__Group_4__2__Impl : ( ')' ) ;
    public final void rule__XConstructorCall__Group_4__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:21266:1: ( ( ')' ) )
            // InternalXcore.g:21267:1: ( ')' )
            {
            // InternalXcore.g:21267:1: ( ')' )
            // InternalXcore.g:21268:1: ')'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXConstructorCallAccess().getRightParenthesisKeyword_4_2()); 
            }
            match(input,86,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXConstructorCallAccess().getRightParenthesisKeyword_4_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XConstructorCall__Group_4__2__Impl"


    // $ANTLR start "rule__XConstructorCall__Group_4_1_1__0"
    // InternalXcore.g:21287:1: rule__XConstructorCall__Group_4_1_1__0 : rule__XConstructorCall__Group_4_1_1__0__Impl rule__XConstructorCall__Group_4_1_1__1 ;
    public final void rule__XConstructorCall__Group_4_1_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:21291:1: ( rule__XConstructorCall__Group_4_1_1__0__Impl rule__XConstructorCall__Group_4_1_1__1 )
            // InternalXcore.g:21292:2: rule__XConstructorCall__Group_4_1_1__0__Impl rule__XConstructorCall__Group_4_1_1__1
            {
            pushFollow(FollowSets000.FOLLOW_38);
            rule__XConstructorCall__Group_4_1_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XConstructorCall__Group_4_1_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XConstructorCall__Group_4_1_1__0"


    // $ANTLR start "rule__XConstructorCall__Group_4_1_1__0__Impl"
    // InternalXcore.g:21299:1: rule__XConstructorCall__Group_4_1_1__0__Impl : ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 ) ) ;
    public final void rule__XConstructorCall__Group_4_1_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:21303:1: ( ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 ) ) )
            // InternalXcore.g:21304:1: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 ) )
            {
            // InternalXcore.g:21304:1: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 ) )
            // InternalXcore.g:21305:1: ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_4_1_1_0()); 
            }
            // InternalXcore.g:21306:1: ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 )
            // InternalXcore.g:21306:2: rule__XConstructorCall__ArgumentsAssignment_4_1_1_0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XConstructorCall__ArgumentsAssignment_4_1_1_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_4_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XConstructorCall__Group_4_1_1__0__Impl"


    // $ANTLR start "rule__XConstructorCall__Group_4_1_1__1"
    // InternalXcore.g:21316:1: rule__XConstructorCall__Group_4_1_1__1 : rule__XConstructorCall__Group_4_1_1__1__Impl ;
    public final void rule__XConstructorCall__Group_4_1_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:21320:1: ( rule__XConstructorCall__Group_4_1_1__1__Impl )
            // InternalXcore.g:21321:2: rule__XConstructorCall__Group_4_1_1__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XConstructorCall__Group_4_1_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XConstructorCall__Group_4_1_1__1"


    // $ANTLR start "rule__XConstructorCall__Group_4_1_1__1__Impl"
    // InternalXcore.g:21327:1: rule__XConstructorCall__Group_4_1_1__1__Impl : ( ( rule__XConstructorCall__Group_4_1_1_1__0 )* ) ;
    public final void rule__XConstructorCall__Group_4_1_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:21331:1: ( ( ( rule__XConstructorCall__Group_4_1_1_1__0 )* ) )
            // InternalXcore.g:21332:1: ( ( rule__XConstructorCall__Group_4_1_1_1__0 )* )
            {
            // InternalXcore.g:21332:1: ( ( rule__XConstructorCall__Group_4_1_1_1__0 )* )
            // InternalXcore.g:21333:1: ( rule__XConstructorCall__Group_4_1_1_1__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXConstructorCallAccess().getGroup_4_1_1_1()); 
            }
            // InternalXcore.g:21334:1: ( rule__XConstructorCall__Group_4_1_1_1__0 )*
            loop172:
            do {
                int alt172=2;
                int LA172_0 = input.LA(1);

                if ( (LA172_0==87) ) {
                    alt172=1;
                }


                switch (alt172) {
            	case 1 :
            	    // InternalXcore.g:21334:2: rule__XConstructorCall__Group_4_1_1_1__0
            	    {
            	    pushFollow(FollowSets000.FOLLOW_14);
            	    rule__XConstructorCall__Group_4_1_1_1__0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop172;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXConstructorCallAccess().getGroup_4_1_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XConstructorCall__Group_4_1_1__1__Impl"


    // $ANTLR start "rule__XConstructorCall__Group_4_1_1_1__0"
    // InternalXcore.g:21348:1: rule__XConstructorCall__Group_4_1_1_1__0 : rule__XConstructorCall__Group_4_1_1_1__0__Impl rule__XConstructorCall__Group_4_1_1_1__1 ;
    public final void rule__XConstructorCall__Group_4_1_1_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:21352:1: ( rule__XConstructorCall__Group_4_1_1_1__0__Impl rule__XConstructorCall__Group_4_1_1_1__1 )
            // InternalXcore.g:21353:2: rule__XConstructorCall__Group_4_1_1_1__0__Impl rule__XConstructorCall__Group_4_1_1_1__1
            {
            pushFollow(FollowSets000.FOLLOW_72);
            rule__XConstructorCall__Group_4_1_1_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XConstructorCall__Group_4_1_1_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XConstructorCall__Group_4_1_1_1__0"


    // $ANTLR start "rule__XConstructorCall__Group_4_1_1_1__0__Impl"
    // InternalXcore.g:21360:1: rule__XConstructorCall__Group_4_1_1_1__0__Impl : ( ',' ) ;
    public final void rule__XConstructorCall__Group_4_1_1_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:21364:1: ( ( ',' ) )
            // InternalXcore.g:21365:1: ( ',' )
            {
            // InternalXcore.g:21365:1: ( ',' )
            // InternalXcore.g:21366:1: ','
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXConstructorCallAccess().getCommaKeyword_4_1_1_1_0()); 
            }
            match(input,87,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXConstructorCallAccess().getCommaKeyword_4_1_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XConstructorCall__Group_4_1_1_1__0__Impl"


    // $ANTLR start "rule__XConstructorCall__Group_4_1_1_1__1"
    // InternalXcore.g:21379:1: rule__XConstructorCall__Group_4_1_1_1__1 : rule__XConstructorCall__Group_4_1_1_1__1__Impl ;
    public final void rule__XConstructorCall__Group_4_1_1_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:21383:1: ( rule__XConstructorCall__Group_4_1_1_1__1__Impl )
            // InternalXcore.g:21384:2: rule__XConstructorCall__Group_4_1_1_1__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XConstructorCall__Group_4_1_1_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XConstructorCall__Group_4_1_1_1__1"


    // $ANTLR start "rule__XConstructorCall__Group_4_1_1_1__1__Impl"
    // InternalXcore.g:21390:1: rule__XConstructorCall__Group_4_1_1_1__1__Impl : ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 ) ) ;
    public final void rule__XConstructorCall__Group_4_1_1_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:21394:1: ( ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 ) ) )
            // InternalXcore.g:21395:1: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 ) )
            {
            // InternalXcore.g:21395:1: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 ) )
            // InternalXcore.g:21396:1: ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_4_1_1_1_1()); 
            }
            // InternalXcore.g:21397:1: ( rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 )
            // InternalXcore.g:21397:2: rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_4_1_1_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XConstructorCall__Group_4_1_1_1__1__Impl"


    // $ANTLR start "rule__XBooleanLiteral__Group__0"
    // InternalXcore.g:21411:1: rule__XBooleanLiteral__Group__0 : rule__XBooleanLiteral__Group__0__Impl rule__XBooleanLiteral__Group__1 ;
    public final void rule__XBooleanLiteral__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:21415:1: ( rule__XBooleanLiteral__Group__0__Impl rule__XBooleanLiteral__Group__1 )
            // InternalXcore.g:21416:2: rule__XBooleanLiteral__Group__0__Impl rule__XBooleanLiteral__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_125);
            rule__XBooleanLiteral__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XBooleanLiteral__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XBooleanLiteral__Group__0"


    // $ANTLR start "rule__XBooleanLiteral__Group__0__Impl"
    // InternalXcore.g:21423:1: rule__XBooleanLiteral__Group__0__Impl : ( () ) ;
    public final void rule__XBooleanLiteral__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:21427:1: ( ( () ) )
            // InternalXcore.g:21428:1: ( () )
            {
            // InternalXcore.g:21428:1: ( () )
            // InternalXcore.g:21429:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXBooleanLiteralAccess().getXBooleanLiteralAction_0()); 
            }
            // InternalXcore.g:21430:1: ()
            // InternalXcore.g:21432:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXBooleanLiteralAccess().getXBooleanLiteralAction_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XBooleanLiteral__Group__0__Impl"


    // $ANTLR start "rule__XBooleanLiteral__Group__1"
    // InternalXcore.g:21442:1: rule__XBooleanLiteral__Group__1 : rule__XBooleanLiteral__Group__1__Impl ;
    public final void rule__XBooleanLiteral__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:21446:1: ( rule__XBooleanLiteral__Group__1__Impl )
            // InternalXcore.g:21447:2: rule__XBooleanLiteral__Group__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XBooleanLiteral__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XBooleanLiteral__Group__1"


    // $ANTLR start "rule__XBooleanLiteral__Group__1__Impl"
    // InternalXcore.g:21453:1: rule__XBooleanLiteral__Group__1__Impl : ( ( rule__XBooleanLiteral__Alternatives_1 ) ) ;
    public final void rule__XBooleanLiteral__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:21457:1: ( ( ( rule__XBooleanLiteral__Alternatives_1 ) ) )
            // InternalXcore.g:21458:1: ( ( rule__XBooleanLiteral__Alternatives_1 ) )
            {
            // InternalXcore.g:21458:1: ( ( rule__XBooleanLiteral__Alternatives_1 ) )
            // InternalXcore.g:21459:1: ( rule__XBooleanLiteral__Alternatives_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXBooleanLiteralAccess().getAlternatives_1()); 
            }
            // InternalXcore.g:21460:1: ( rule__XBooleanLiteral__Alternatives_1 )
            // InternalXcore.g:21460:2: rule__XBooleanLiteral__Alternatives_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XBooleanLiteral__Alternatives_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXBooleanLiteralAccess().getAlternatives_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XBooleanLiteral__Group__1__Impl"


    // $ANTLR start "rule__XNullLiteral__Group__0"
    // InternalXcore.g:21474:1: rule__XNullLiteral__Group__0 : rule__XNullLiteral__Group__0__Impl rule__XNullLiteral__Group__1 ;
    public final void rule__XNullLiteral__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:21478:1: ( rule__XNullLiteral__Group__0__Impl rule__XNullLiteral__Group__1 )
            // InternalXcore.g:21479:2: rule__XNullLiteral__Group__0__Impl rule__XNullLiteral__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_126);
            rule__XNullLiteral__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XNullLiteral__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XNullLiteral__Group__0"


    // $ANTLR start "rule__XNullLiteral__Group__0__Impl"
    // InternalXcore.g:21486:1: rule__XNullLiteral__Group__0__Impl : ( () ) ;
    public final void rule__XNullLiteral__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:21490:1: ( ( () ) )
            // InternalXcore.g:21491:1: ( () )
            {
            // InternalXcore.g:21491:1: ( () )
            // InternalXcore.g:21492:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXNullLiteralAccess().getXNullLiteralAction_0()); 
            }
            // InternalXcore.g:21493:1: ()
            // InternalXcore.g:21495:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXNullLiteralAccess().getXNullLiteralAction_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XNullLiteral__Group__0__Impl"


    // $ANTLR start "rule__XNullLiteral__Group__1"
    // InternalXcore.g:21505:1: rule__XNullLiteral__Group__1 : rule__XNullLiteral__Group__1__Impl ;
    public final void rule__XNullLiteral__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:21509:1: ( rule__XNullLiteral__Group__1__Impl )
            // InternalXcore.g:21510:2: rule__XNullLiteral__Group__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XNullLiteral__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XNullLiteral__Group__1"


    // $ANTLR start "rule__XNullLiteral__Group__1__Impl"
    // InternalXcore.g:21516:1: rule__XNullLiteral__Group__1__Impl : ( 'null' ) ;
    public final void rule__XNullLiteral__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:21520:1: ( ( 'null' ) )
            // InternalXcore.g:21521:1: ( 'null' )
            {
            // InternalXcore.g:21521:1: ( 'null' )
            // InternalXcore.g:21522:1: 'null'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXNullLiteralAccess().getNullKeyword_1()); 
            }
            match(input,107,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXNullLiteralAccess().getNullKeyword_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XNullLiteral__Group__1__Impl"


    // $ANTLR start "rule__XNumberLiteral__Group__0"
    // InternalXcore.g:21539:1: rule__XNumberLiteral__Group__0 : rule__XNumberLiteral__Group__0__Impl rule__XNumberLiteral__Group__1 ;
    public final void rule__XNumberLiteral__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:21543:1: ( rule__XNumberLiteral__Group__0__Impl rule__XNumberLiteral__Group__1 )
            // InternalXcore.g:21544:2: rule__XNumberLiteral__Group__0__Impl rule__XNumberLiteral__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_127);
            rule__XNumberLiteral__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XNumberLiteral__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XNumberLiteral__Group__0"


    // $ANTLR start "rule__XNumberLiteral__Group__0__Impl"
    // InternalXcore.g:21551:1: rule__XNumberLiteral__Group__0__Impl : ( () ) ;
    public final void rule__XNumberLiteral__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:21555:1: ( ( () ) )
            // InternalXcore.g:21556:1: ( () )
            {
            // InternalXcore.g:21556:1: ( () )
            // InternalXcore.g:21557:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXNumberLiteralAccess().getXNumberLiteralAction_0()); 
            }
            // InternalXcore.g:21558:1: ()
            // InternalXcore.g:21560:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXNumberLiteralAccess().getXNumberLiteralAction_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XNumberLiteral__Group__0__Impl"


    // $ANTLR start "rule__XNumberLiteral__Group__1"
    // InternalXcore.g:21570:1: rule__XNumberLiteral__Group__1 : rule__XNumberLiteral__Group__1__Impl ;
    public final void rule__XNumberLiteral__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:21574:1: ( rule__XNumberLiteral__Group__1__Impl )
            // InternalXcore.g:21575:2: rule__XNumberLiteral__Group__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XNumberLiteral__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XNumberLiteral__Group__1"


    // $ANTLR start "rule__XNumberLiteral__Group__1__Impl"
    // InternalXcore.g:21581:1: rule__XNumberLiteral__Group__1__Impl : ( ( rule__XNumberLiteral__ValueAssignment_1 ) ) ;
    public final void rule__XNumberLiteral__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:21585:1: ( ( ( rule__XNumberLiteral__ValueAssignment_1 ) ) )
            // InternalXcore.g:21586:1: ( ( rule__XNumberLiteral__ValueAssignment_1 ) )
            {
            // InternalXcore.g:21586:1: ( ( rule__XNumberLiteral__ValueAssignment_1 ) )
            // InternalXcore.g:21587:1: ( rule__XNumberLiteral__ValueAssignment_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXNumberLiteralAccess().getValueAssignment_1()); 
            }
            // InternalXcore.g:21588:1: ( rule__XNumberLiteral__ValueAssignment_1 )
            // InternalXcore.g:21588:2: rule__XNumberLiteral__ValueAssignment_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XNumberLiteral__ValueAssignment_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXNumberLiteralAccess().getValueAssignment_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XNumberLiteral__Group__1__Impl"


    // $ANTLR start "rule__XStringLiteral__Group__0"
    // InternalXcore.g:21602:1: rule__XStringLiteral__Group__0 : rule__XStringLiteral__Group__0__Impl rule__XStringLiteral__Group__1 ;
    public final void rule__XStringLiteral__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:21606:1: ( rule__XStringLiteral__Group__0__Impl rule__XStringLiteral__Group__1 )
            // InternalXcore.g:21607:2: rule__XStringLiteral__Group__0__Impl rule__XStringLiteral__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_16);
            rule__XStringLiteral__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XStringLiteral__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XStringLiteral__Group__0"


    // $ANTLR start "rule__XStringLiteral__Group__0__Impl"
    // InternalXcore.g:21614:1: rule__XStringLiteral__Group__0__Impl : ( () ) ;
    public final void rule__XStringLiteral__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:21618:1: ( ( () ) )
            // InternalXcore.g:21619:1: ( () )
            {
            // InternalXcore.g:21619:1: ( () )
            // InternalXcore.g:21620:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXStringLiteralAccess().getXStringLiteralAction_0()); 
            }
            // InternalXcore.g:21621:1: ()
            // InternalXcore.g:21623:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXStringLiteralAccess().getXStringLiteralAction_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XStringLiteral__Group__0__Impl"


    // $ANTLR start "rule__XStringLiteral__Group__1"
    // InternalXcore.g:21633:1: rule__XStringLiteral__Group__1 : rule__XStringLiteral__Group__1__Impl ;
    public final void rule__XStringLiteral__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:21637:1: ( rule__XStringLiteral__Group__1__Impl )
            // InternalXcore.g:21638:2: rule__XStringLiteral__Group__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XStringLiteral__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XStringLiteral__Group__1"


    // $ANTLR start "rule__XStringLiteral__Group__1__Impl"
    // InternalXcore.g:21644:1: rule__XStringLiteral__Group__1__Impl : ( ( rule__XStringLiteral__ValueAssignment_1 ) ) ;
    public final void rule__XStringLiteral__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:21648:1: ( ( ( rule__XStringLiteral__ValueAssignment_1 ) ) )
            // InternalXcore.g:21649:1: ( ( rule__XStringLiteral__ValueAssignment_1 ) )
            {
            // InternalXcore.g:21649:1: ( ( rule__XStringLiteral__ValueAssignment_1 ) )
            // InternalXcore.g:21650:1: ( rule__XStringLiteral__ValueAssignment_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXStringLiteralAccess().getValueAssignment_1()); 
            }
            // InternalXcore.g:21651:1: ( rule__XStringLiteral__ValueAssignment_1 )
            // InternalXcore.g:21651:2: rule__XStringLiteral__ValueAssignment_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XStringLiteral__ValueAssignment_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXStringLiteralAccess().getValueAssignment_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XStringLiteral__Group__1__Impl"


    // $ANTLR start "rule__XTypeLiteral__Group__0"
    // InternalXcore.g:21665:1: rule__XTypeLiteral__Group__0 : rule__XTypeLiteral__Group__0__Impl rule__XTypeLiteral__Group__1 ;
    public final void rule__XTypeLiteral__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:21669:1: ( rule__XTypeLiteral__Group__0__Impl rule__XTypeLiteral__Group__1 )
            // InternalXcore.g:21670:2: rule__XTypeLiteral__Group__0__Impl rule__XTypeLiteral__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_128);
            rule__XTypeLiteral__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XTypeLiteral__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XTypeLiteral__Group__0"


    // $ANTLR start "rule__XTypeLiteral__Group__0__Impl"
    // InternalXcore.g:21677:1: rule__XTypeLiteral__Group__0__Impl : ( () ) ;
    public final void rule__XTypeLiteral__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:21681:1: ( ( () ) )
            // InternalXcore.g:21682:1: ( () )
            {
            // InternalXcore.g:21682:1: ( () )
            // InternalXcore.g:21683:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXTypeLiteralAccess().getXTypeLiteralAction_0()); 
            }
            // InternalXcore.g:21684:1: ()
            // InternalXcore.g:21686:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXTypeLiteralAccess().getXTypeLiteralAction_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XTypeLiteral__Group__0__Impl"


    // $ANTLR start "rule__XTypeLiteral__Group__1"
    // InternalXcore.g:21696:1: rule__XTypeLiteral__Group__1 : rule__XTypeLiteral__Group__1__Impl rule__XTypeLiteral__Group__2 ;
    public final void rule__XTypeLiteral__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:21700:1: ( rule__XTypeLiteral__Group__1__Impl rule__XTypeLiteral__Group__2 )
            // InternalXcore.g:21701:2: rule__XTypeLiteral__Group__1__Impl rule__XTypeLiteral__Group__2
            {
            pushFollow(FollowSets000.FOLLOW_12);
            rule__XTypeLiteral__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XTypeLiteral__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XTypeLiteral__Group__1"


    // $ANTLR start "rule__XTypeLiteral__Group__1__Impl"
    // InternalXcore.g:21708:1: rule__XTypeLiteral__Group__1__Impl : ( 'typeof' ) ;
    public final void rule__XTypeLiteral__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:21712:1: ( ( 'typeof' ) )
            // InternalXcore.g:21713:1: ( 'typeof' )
            {
            // InternalXcore.g:21713:1: ( 'typeof' )
            // InternalXcore.g:21714:1: 'typeof'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXTypeLiteralAccess().getTypeofKeyword_1()); 
            }
            match(input,108,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXTypeLiteralAccess().getTypeofKeyword_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XTypeLiteral__Group__1__Impl"


    // $ANTLR start "rule__XTypeLiteral__Group__2"
    // InternalXcore.g:21727:1: rule__XTypeLiteral__Group__2 : rule__XTypeLiteral__Group__2__Impl rule__XTypeLiteral__Group__3 ;
    public final void rule__XTypeLiteral__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:21731:1: ( rule__XTypeLiteral__Group__2__Impl rule__XTypeLiteral__Group__3 )
            // InternalXcore.g:21732:2: rule__XTypeLiteral__Group__2__Impl rule__XTypeLiteral__Group__3
            {
            pushFollow(FollowSets000.FOLLOW_6);
            rule__XTypeLiteral__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XTypeLiteral__Group__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XTypeLiteral__Group__2"


    // $ANTLR start "rule__XTypeLiteral__Group__2__Impl"
    // InternalXcore.g:21739:1: rule__XTypeLiteral__Group__2__Impl : ( '(' ) ;
    public final void rule__XTypeLiteral__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:21743:1: ( ( '(' ) )
            // InternalXcore.g:21744:1: ( '(' )
            {
            // InternalXcore.g:21744:1: ( '(' )
            // InternalXcore.g:21745:1: '('
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXTypeLiteralAccess().getLeftParenthesisKeyword_2()); 
            }
            match(input,85,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXTypeLiteralAccess().getLeftParenthesisKeyword_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XTypeLiteral__Group__2__Impl"


    // $ANTLR start "rule__XTypeLiteral__Group__3"
    // InternalXcore.g:21758:1: rule__XTypeLiteral__Group__3 : rule__XTypeLiteral__Group__3__Impl rule__XTypeLiteral__Group__4 ;
    public final void rule__XTypeLiteral__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:21762:1: ( rule__XTypeLiteral__Group__3__Impl rule__XTypeLiteral__Group__4 )
            // InternalXcore.g:21763:2: rule__XTypeLiteral__Group__3__Impl rule__XTypeLiteral__Group__4
            {
            pushFollow(FollowSets000.FOLLOW_129);
            rule__XTypeLiteral__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XTypeLiteral__Group__4();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XTypeLiteral__Group__3"


    // $ANTLR start "rule__XTypeLiteral__Group__3__Impl"
    // InternalXcore.g:21770:1: rule__XTypeLiteral__Group__3__Impl : ( ( rule__XTypeLiteral__TypeAssignment_3 ) ) ;
    public final void rule__XTypeLiteral__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:21774:1: ( ( ( rule__XTypeLiteral__TypeAssignment_3 ) ) )
            // InternalXcore.g:21775:1: ( ( rule__XTypeLiteral__TypeAssignment_3 ) )
            {
            // InternalXcore.g:21775:1: ( ( rule__XTypeLiteral__TypeAssignment_3 ) )
            // InternalXcore.g:21776:1: ( rule__XTypeLiteral__TypeAssignment_3 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXTypeLiteralAccess().getTypeAssignment_3()); 
            }
            // InternalXcore.g:21777:1: ( rule__XTypeLiteral__TypeAssignment_3 )
            // InternalXcore.g:21777:2: rule__XTypeLiteral__TypeAssignment_3
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XTypeLiteral__TypeAssignment_3();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXTypeLiteralAccess().getTypeAssignment_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XTypeLiteral__Group__3__Impl"


    // $ANTLR start "rule__XTypeLiteral__Group__4"
    // InternalXcore.g:21787:1: rule__XTypeLiteral__Group__4 : rule__XTypeLiteral__Group__4__Impl rule__XTypeLiteral__Group__5 ;
    public final void rule__XTypeLiteral__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:21791:1: ( rule__XTypeLiteral__Group__4__Impl rule__XTypeLiteral__Group__5 )
            // InternalXcore.g:21792:2: rule__XTypeLiteral__Group__4__Impl rule__XTypeLiteral__Group__5
            {
            pushFollow(FollowSets000.FOLLOW_129);
            rule__XTypeLiteral__Group__4__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XTypeLiteral__Group__5();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XTypeLiteral__Group__4"


    // $ANTLR start "rule__XTypeLiteral__Group__4__Impl"
    // InternalXcore.g:21799:1: rule__XTypeLiteral__Group__4__Impl : ( ( rule__XTypeLiteral__ArrayDimensionsAssignment_4 )* ) ;
    public final void rule__XTypeLiteral__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:21803:1: ( ( ( rule__XTypeLiteral__ArrayDimensionsAssignment_4 )* ) )
            // InternalXcore.g:21804:1: ( ( rule__XTypeLiteral__ArrayDimensionsAssignment_4 )* )
            {
            // InternalXcore.g:21804:1: ( ( rule__XTypeLiteral__ArrayDimensionsAssignment_4 )* )
            // InternalXcore.g:21805:1: ( rule__XTypeLiteral__ArrayDimensionsAssignment_4 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXTypeLiteralAccess().getArrayDimensionsAssignment_4()); 
            }
            // InternalXcore.g:21806:1: ( rule__XTypeLiteral__ArrayDimensionsAssignment_4 )*
            loop173:
            do {
                int alt173=2;
                int LA173_0 = input.LA(1);

                if ( (LA173_0==92) ) {
                    alt173=1;
                }


                switch (alt173) {
            	case 1 :
            	    // InternalXcore.g:21806:2: rule__XTypeLiteral__ArrayDimensionsAssignment_4
            	    {
            	    pushFollow(FollowSets000.FOLLOW_130);
            	    rule__XTypeLiteral__ArrayDimensionsAssignment_4();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop173;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXTypeLiteralAccess().getArrayDimensionsAssignment_4()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XTypeLiteral__Group__4__Impl"


    // $ANTLR start "rule__XTypeLiteral__Group__5"
    // InternalXcore.g:21816:1: rule__XTypeLiteral__Group__5 : rule__XTypeLiteral__Group__5__Impl ;
    public final void rule__XTypeLiteral__Group__5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:21820:1: ( rule__XTypeLiteral__Group__5__Impl )
            // InternalXcore.g:21821:2: rule__XTypeLiteral__Group__5__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XTypeLiteral__Group__5__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XTypeLiteral__Group__5"


    // $ANTLR start "rule__XTypeLiteral__Group__5__Impl"
    // InternalXcore.g:21827:1: rule__XTypeLiteral__Group__5__Impl : ( ')' ) ;
    public final void rule__XTypeLiteral__Group__5__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:21831:1: ( ( ')' ) )
            // InternalXcore.g:21832:1: ( ')' )
            {
            // InternalXcore.g:21832:1: ( ')' )
            // InternalXcore.g:21833:1: ')'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXTypeLiteralAccess().getRightParenthesisKeyword_5()); 
            }
            match(input,86,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXTypeLiteralAccess().getRightParenthesisKeyword_5()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XTypeLiteral__Group__5__Impl"


    // $ANTLR start "rule__XThrowExpression__Group__0"
    // InternalXcore.g:21858:1: rule__XThrowExpression__Group__0 : rule__XThrowExpression__Group__0__Impl rule__XThrowExpression__Group__1 ;
    public final void rule__XThrowExpression__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:21862:1: ( rule__XThrowExpression__Group__0__Impl rule__XThrowExpression__Group__1 )
            // InternalXcore.g:21863:2: rule__XThrowExpression__Group__0__Impl rule__XThrowExpression__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_131);
            rule__XThrowExpression__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XThrowExpression__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XThrowExpression__Group__0"


    // $ANTLR start "rule__XThrowExpression__Group__0__Impl"
    // InternalXcore.g:21870:1: rule__XThrowExpression__Group__0__Impl : ( () ) ;
    public final void rule__XThrowExpression__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:21874:1: ( ( () ) )
            // InternalXcore.g:21875:1: ( () )
            {
            // InternalXcore.g:21875:1: ( () )
            // InternalXcore.g:21876:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXThrowExpressionAccess().getXThrowExpressionAction_0()); 
            }
            // InternalXcore.g:21877:1: ()
            // InternalXcore.g:21879:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXThrowExpressionAccess().getXThrowExpressionAction_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XThrowExpression__Group__0__Impl"


    // $ANTLR start "rule__XThrowExpression__Group__1"
    // InternalXcore.g:21889:1: rule__XThrowExpression__Group__1 : rule__XThrowExpression__Group__1__Impl rule__XThrowExpression__Group__2 ;
    public final void rule__XThrowExpression__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:21893:1: ( rule__XThrowExpression__Group__1__Impl rule__XThrowExpression__Group__2 )
            // InternalXcore.g:21894:2: rule__XThrowExpression__Group__1__Impl rule__XThrowExpression__Group__2
            {
            pushFollow(FollowSets000.FOLLOW_72);
            rule__XThrowExpression__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XThrowExpression__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XThrowExpression__Group__1"


    // $ANTLR start "rule__XThrowExpression__Group__1__Impl"
    // InternalXcore.g:21901:1: rule__XThrowExpression__Group__1__Impl : ( 'throw' ) ;
    public final void rule__XThrowExpression__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:21905:1: ( ( 'throw' ) )
            // InternalXcore.g:21906:1: ( 'throw' )
            {
            // InternalXcore.g:21906:1: ( 'throw' )
            // InternalXcore.g:21907:1: 'throw'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXThrowExpressionAccess().getThrowKeyword_1()); 
            }
            match(input,109,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXThrowExpressionAccess().getThrowKeyword_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XThrowExpression__Group__1__Impl"


    // $ANTLR start "rule__XThrowExpression__Group__2"
    // InternalXcore.g:21920:1: rule__XThrowExpression__Group__2 : rule__XThrowExpression__Group__2__Impl ;
    public final void rule__XThrowExpression__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:21924:1: ( rule__XThrowExpression__Group__2__Impl )
            // InternalXcore.g:21925:2: rule__XThrowExpression__Group__2__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XThrowExpression__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XThrowExpression__Group__2"


    // $ANTLR start "rule__XThrowExpression__Group__2__Impl"
    // InternalXcore.g:21931:1: rule__XThrowExpression__Group__2__Impl : ( ( rule__XThrowExpression__ExpressionAssignment_2 ) ) ;
    public final void rule__XThrowExpression__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:21935:1: ( ( ( rule__XThrowExpression__ExpressionAssignment_2 ) ) )
            // InternalXcore.g:21936:1: ( ( rule__XThrowExpression__ExpressionAssignment_2 ) )
            {
            // InternalXcore.g:21936:1: ( ( rule__XThrowExpression__ExpressionAssignment_2 ) )
            // InternalXcore.g:21937:1: ( rule__XThrowExpression__ExpressionAssignment_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXThrowExpressionAccess().getExpressionAssignment_2()); 
            }
            // InternalXcore.g:21938:1: ( rule__XThrowExpression__ExpressionAssignment_2 )
            // InternalXcore.g:21938:2: rule__XThrowExpression__ExpressionAssignment_2
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XThrowExpression__ExpressionAssignment_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXThrowExpressionAccess().getExpressionAssignment_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XThrowExpression__Group__2__Impl"


    // $ANTLR start "rule__XReturnExpression__Group__0"
    // InternalXcore.g:21954:1: rule__XReturnExpression__Group__0 : rule__XReturnExpression__Group__0__Impl rule__XReturnExpression__Group__1 ;
    public final void rule__XReturnExpression__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:21958:1: ( rule__XReturnExpression__Group__0__Impl rule__XReturnExpression__Group__1 )
            // InternalXcore.g:21959:2: rule__XReturnExpression__Group__0__Impl rule__XReturnExpression__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_132);
            rule__XReturnExpression__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XReturnExpression__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReturnExpression__Group__0"


    // $ANTLR start "rule__XReturnExpression__Group__0__Impl"
    // InternalXcore.g:21966:1: rule__XReturnExpression__Group__0__Impl : ( () ) ;
    public final void rule__XReturnExpression__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:21970:1: ( ( () ) )
            // InternalXcore.g:21971:1: ( () )
            {
            // InternalXcore.g:21971:1: ( () )
            // InternalXcore.g:21972:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReturnExpressionAccess().getXReturnExpressionAction_0()); 
            }
            // InternalXcore.g:21973:1: ()
            // InternalXcore.g:21975:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXReturnExpressionAccess().getXReturnExpressionAction_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReturnExpression__Group__0__Impl"


    // $ANTLR start "rule__XReturnExpression__Group__1"
    // InternalXcore.g:21985:1: rule__XReturnExpression__Group__1 : rule__XReturnExpression__Group__1__Impl rule__XReturnExpression__Group__2 ;
    public final void rule__XReturnExpression__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:21989:1: ( rule__XReturnExpression__Group__1__Impl rule__XReturnExpression__Group__2 )
            // InternalXcore.g:21990:2: rule__XReturnExpression__Group__1__Impl rule__XReturnExpression__Group__2
            {
            pushFollow(FollowSets000.FOLLOW_72);
            rule__XReturnExpression__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XReturnExpression__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReturnExpression__Group__1"


    // $ANTLR start "rule__XReturnExpression__Group__1__Impl"
    // InternalXcore.g:21997:1: rule__XReturnExpression__Group__1__Impl : ( 'return' ) ;
    public final void rule__XReturnExpression__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:22001:1: ( ( 'return' ) )
            // InternalXcore.g:22002:1: ( 'return' )
            {
            // InternalXcore.g:22002:1: ( 'return' )
            // InternalXcore.g:22003:1: 'return'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReturnExpressionAccess().getReturnKeyword_1()); 
            }
            match(input,110,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXReturnExpressionAccess().getReturnKeyword_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReturnExpression__Group__1__Impl"


    // $ANTLR start "rule__XReturnExpression__Group__2"
    // InternalXcore.g:22016:1: rule__XReturnExpression__Group__2 : rule__XReturnExpression__Group__2__Impl ;
    public final void rule__XReturnExpression__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:22020:1: ( rule__XReturnExpression__Group__2__Impl )
            // InternalXcore.g:22021:2: rule__XReturnExpression__Group__2__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XReturnExpression__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReturnExpression__Group__2"


    // $ANTLR start "rule__XReturnExpression__Group__2__Impl"
    // InternalXcore.g:22027:1: rule__XReturnExpression__Group__2__Impl : ( ( rule__XReturnExpression__ExpressionAssignment_2 )? ) ;
    public final void rule__XReturnExpression__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:22031:1: ( ( ( rule__XReturnExpression__ExpressionAssignment_2 )? ) )
            // InternalXcore.g:22032:1: ( ( rule__XReturnExpression__ExpressionAssignment_2 )? )
            {
            // InternalXcore.g:22032:1: ( ( rule__XReturnExpression__ExpressionAssignment_2 )? )
            // InternalXcore.g:22033:1: ( rule__XReturnExpression__ExpressionAssignment_2 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReturnExpressionAccess().getExpressionAssignment_2()); 
            }
            // InternalXcore.g:22034:1: ( rule__XReturnExpression__ExpressionAssignment_2 )?
            int alt174=2;
            alt174 = dfa174.predict(input);
            switch (alt174) {
                case 1 :
                    // InternalXcore.g:22034:2: rule__XReturnExpression__ExpressionAssignment_2
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XReturnExpression__ExpressionAssignment_2();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXReturnExpressionAccess().getExpressionAssignment_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReturnExpression__Group__2__Impl"


    // $ANTLR start "rule__XTryCatchFinallyExpression__Group__0"
    // InternalXcore.g:22050:1: rule__XTryCatchFinallyExpression__Group__0 : rule__XTryCatchFinallyExpression__Group__0__Impl rule__XTryCatchFinallyExpression__Group__1 ;
    public final void rule__XTryCatchFinallyExpression__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:22054:1: ( rule__XTryCatchFinallyExpression__Group__0__Impl rule__XTryCatchFinallyExpression__Group__1 )
            // InternalXcore.g:22055:2: rule__XTryCatchFinallyExpression__Group__0__Impl rule__XTryCatchFinallyExpression__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_133);
            rule__XTryCatchFinallyExpression__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XTryCatchFinallyExpression__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XTryCatchFinallyExpression__Group__0"


    // $ANTLR start "rule__XTryCatchFinallyExpression__Group__0__Impl"
    // InternalXcore.g:22062:1: rule__XTryCatchFinallyExpression__Group__0__Impl : ( () ) ;
    public final void rule__XTryCatchFinallyExpression__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:22066:1: ( ( () ) )
            // InternalXcore.g:22067:1: ( () )
            {
            // InternalXcore.g:22067:1: ( () )
            // InternalXcore.g:22068:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXTryCatchFinallyExpressionAccess().getXTryCatchFinallyExpressionAction_0()); 
            }
            // InternalXcore.g:22069:1: ()
            // InternalXcore.g:22071:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXTryCatchFinallyExpressionAccess().getXTryCatchFinallyExpressionAction_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XTryCatchFinallyExpression__Group__0__Impl"


    // $ANTLR start "rule__XTryCatchFinallyExpression__Group__1"
    // InternalXcore.g:22081:1: rule__XTryCatchFinallyExpression__Group__1 : rule__XTryCatchFinallyExpression__Group__1__Impl rule__XTryCatchFinallyExpression__Group__2 ;
    public final void rule__XTryCatchFinallyExpression__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:22085:1: ( rule__XTryCatchFinallyExpression__Group__1__Impl rule__XTryCatchFinallyExpression__Group__2 )
            // InternalXcore.g:22086:2: rule__XTryCatchFinallyExpression__Group__1__Impl rule__XTryCatchFinallyExpression__Group__2
            {
            pushFollow(FollowSets000.FOLLOW_72);
            rule__XTryCatchFinallyExpression__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XTryCatchFinallyExpression__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XTryCatchFinallyExpression__Group__1"


    // $ANTLR start "rule__XTryCatchFinallyExpression__Group__1__Impl"
    // InternalXcore.g:22093:1: rule__XTryCatchFinallyExpression__Group__1__Impl : ( 'try' ) ;
    public final void rule__XTryCatchFinallyExpression__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:22097:1: ( ( 'try' ) )
            // InternalXcore.g:22098:1: ( 'try' )
            {
            // InternalXcore.g:22098:1: ( 'try' )
            // InternalXcore.g:22099:1: 'try'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXTryCatchFinallyExpressionAccess().getTryKeyword_1()); 
            }
            match(input,111,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXTryCatchFinallyExpressionAccess().getTryKeyword_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XTryCatchFinallyExpression__Group__1__Impl"


    // $ANTLR start "rule__XTryCatchFinallyExpression__Group__2"
    // InternalXcore.g:22112:1: rule__XTryCatchFinallyExpression__Group__2 : rule__XTryCatchFinallyExpression__Group__2__Impl rule__XTryCatchFinallyExpression__Group__3 ;
    public final void rule__XTryCatchFinallyExpression__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:22116:1: ( rule__XTryCatchFinallyExpression__Group__2__Impl rule__XTryCatchFinallyExpression__Group__3 )
            // InternalXcore.g:22117:2: rule__XTryCatchFinallyExpression__Group__2__Impl rule__XTryCatchFinallyExpression__Group__3
            {
            pushFollow(FollowSets000.FOLLOW_134);
            rule__XTryCatchFinallyExpression__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XTryCatchFinallyExpression__Group__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XTryCatchFinallyExpression__Group__2"


    // $ANTLR start "rule__XTryCatchFinallyExpression__Group__2__Impl"
    // InternalXcore.g:22124:1: rule__XTryCatchFinallyExpression__Group__2__Impl : ( ( rule__XTryCatchFinallyExpression__ExpressionAssignment_2 ) ) ;
    public final void rule__XTryCatchFinallyExpression__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:22128:1: ( ( ( rule__XTryCatchFinallyExpression__ExpressionAssignment_2 ) ) )
            // InternalXcore.g:22129:1: ( ( rule__XTryCatchFinallyExpression__ExpressionAssignment_2 ) )
            {
            // InternalXcore.g:22129:1: ( ( rule__XTryCatchFinallyExpression__ExpressionAssignment_2 ) )
            // InternalXcore.g:22130:1: ( rule__XTryCatchFinallyExpression__ExpressionAssignment_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXTryCatchFinallyExpressionAccess().getExpressionAssignment_2()); 
            }
            // InternalXcore.g:22131:1: ( rule__XTryCatchFinallyExpression__ExpressionAssignment_2 )
            // InternalXcore.g:22131:2: rule__XTryCatchFinallyExpression__ExpressionAssignment_2
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XTryCatchFinallyExpression__ExpressionAssignment_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXTryCatchFinallyExpressionAccess().getExpressionAssignment_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XTryCatchFinallyExpression__Group__2__Impl"


    // $ANTLR start "rule__XTryCatchFinallyExpression__Group__3"
    // InternalXcore.g:22141:1: rule__XTryCatchFinallyExpression__Group__3 : rule__XTryCatchFinallyExpression__Group__3__Impl ;
    public final void rule__XTryCatchFinallyExpression__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:22145:1: ( rule__XTryCatchFinallyExpression__Group__3__Impl )
            // InternalXcore.g:22146:2: rule__XTryCatchFinallyExpression__Group__3__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XTryCatchFinallyExpression__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XTryCatchFinallyExpression__Group__3"


    // $ANTLR start "rule__XTryCatchFinallyExpression__Group__3__Impl"
    // InternalXcore.g:22152:1: rule__XTryCatchFinallyExpression__Group__3__Impl : ( ( rule__XTryCatchFinallyExpression__Alternatives_3 ) ) ;
    public final void rule__XTryCatchFinallyExpression__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:22156:1: ( ( ( rule__XTryCatchFinallyExpression__Alternatives_3 ) ) )
            // InternalXcore.g:22157:1: ( ( rule__XTryCatchFinallyExpression__Alternatives_3 ) )
            {
            // InternalXcore.g:22157:1: ( ( rule__XTryCatchFinallyExpression__Alternatives_3 ) )
            // InternalXcore.g:22158:1: ( rule__XTryCatchFinallyExpression__Alternatives_3 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXTryCatchFinallyExpressionAccess().getAlternatives_3()); 
            }
            // InternalXcore.g:22159:1: ( rule__XTryCatchFinallyExpression__Alternatives_3 )
            // InternalXcore.g:22159:2: rule__XTryCatchFinallyExpression__Alternatives_3
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XTryCatchFinallyExpression__Alternatives_3();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXTryCatchFinallyExpressionAccess().getAlternatives_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XTryCatchFinallyExpression__Group__3__Impl"


    // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_0__0"
    // InternalXcore.g:22177:1: rule__XTryCatchFinallyExpression__Group_3_0__0 : rule__XTryCatchFinallyExpression__Group_3_0__0__Impl rule__XTryCatchFinallyExpression__Group_3_0__1 ;
    public final void rule__XTryCatchFinallyExpression__Group_3_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:22181:1: ( rule__XTryCatchFinallyExpression__Group_3_0__0__Impl rule__XTryCatchFinallyExpression__Group_3_0__1 )
            // InternalXcore.g:22182:2: rule__XTryCatchFinallyExpression__Group_3_0__0__Impl rule__XTryCatchFinallyExpression__Group_3_0__1
            {
            pushFollow(FollowSets000.FOLLOW_135);
            rule__XTryCatchFinallyExpression__Group_3_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XTryCatchFinallyExpression__Group_3_0__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XTryCatchFinallyExpression__Group_3_0__0"


    // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_0__0__Impl"
    // InternalXcore.g:22189:1: rule__XTryCatchFinallyExpression__Group_3_0__0__Impl : ( ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 ) ) ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )* ) ) ;
    public final void rule__XTryCatchFinallyExpression__Group_3_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:22193:1: ( ( ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 ) ) ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )* ) ) )
            // InternalXcore.g:22194:1: ( ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 ) ) ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )* ) )
            {
            // InternalXcore.g:22194:1: ( ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 ) ) ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )* ) )
            // InternalXcore.g:22195:1: ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 ) ) ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )* )
            {
            // InternalXcore.g:22195:1: ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 ) )
            // InternalXcore.g:22196:1: ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXTryCatchFinallyExpressionAccess().getCatchClausesAssignment_3_0_0()); 
            }
            // InternalXcore.g:22197:1: ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )
            // InternalXcore.g:22197:2: rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0
            {
            pushFollow(FollowSets000.FOLLOW_136);
            rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXTryCatchFinallyExpressionAccess().getCatchClausesAssignment_3_0_0()); 
            }

            }

            // InternalXcore.g:22200:1: ( ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )* )
            // InternalXcore.g:22201:1: ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXTryCatchFinallyExpressionAccess().getCatchClausesAssignment_3_0_0()); 
            }
            // InternalXcore.g:22202:1: ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )*
            loop175:
            do {
                int alt175=2;
                int LA175_0 = input.LA(1);

                if ( (LA175_0==114) ) {
                    int LA175_2 = input.LA(2);

                    if ( (synpred257_InternalXcore()) ) {
                        alt175=1;
                    }


                }


                switch (alt175) {
            	case 1 :
            	    // InternalXcore.g:22202:2: rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0
            	    {
            	    pushFollow(FollowSets000.FOLLOW_136);
            	    rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop175;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXTryCatchFinallyExpressionAccess().getCatchClausesAssignment_3_0_0()); 
            }

            }


            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XTryCatchFinallyExpression__Group_3_0__0__Impl"


    // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_0__1"
    // InternalXcore.g:22213:1: rule__XTryCatchFinallyExpression__Group_3_0__1 : rule__XTryCatchFinallyExpression__Group_3_0__1__Impl ;
    public final void rule__XTryCatchFinallyExpression__Group_3_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:22217:1: ( rule__XTryCatchFinallyExpression__Group_3_0__1__Impl )
            // InternalXcore.g:22218:2: rule__XTryCatchFinallyExpression__Group_3_0__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XTryCatchFinallyExpression__Group_3_0__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XTryCatchFinallyExpression__Group_3_0__1"


    // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_0__1__Impl"
    // InternalXcore.g:22224:1: rule__XTryCatchFinallyExpression__Group_3_0__1__Impl : ( ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )? ) ;
    public final void rule__XTryCatchFinallyExpression__Group_3_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:22228:1: ( ( ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )? ) )
            // InternalXcore.g:22229:1: ( ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )? )
            {
            // InternalXcore.g:22229:1: ( ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )? )
            // InternalXcore.g:22230:1: ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup_3_0_1()); 
            }
            // InternalXcore.g:22231:1: ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )?
            int alt176=2;
            int LA176_0 = input.LA(1);

            if ( (LA176_0==112) ) {
                int LA176_1 = input.LA(2);

                if ( (synpred258_InternalXcore()) ) {
                    alt176=1;
                }
            }
            switch (alt176) {
                case 1 :
                    // InternalXcore.g:22231:2: rule__XTryCatchFinallyExpression__Group_3_0_1__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XTryCatchFinallyExpression__Group_3_0_1__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup_3_0_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XTryCatchFinallyExpression__Group_3_0__1__Impl"


    // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_0_1__0"
    // InternalXcore.g:22245:1: rule__XTryCatchFinallyExpression__Group_3_0_1__0 : rule__XTryCatchFinallyExpression__Group_3_0_1__0__Impl rule__XTryCatchFinallyExpression__Group_3_0_1__1 ;
    public final void rule__XTryCatchFinallyExpression__Group_3_0_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:22249:1: ( rule__XTryCatchFinallyExpression__Group_3_0_1__0__Impl rule__XTryCatchFinallyExpression__Group_3_0_1__1 )
            // InternalXcore.g:22250:2: rule__XTryCatchFinallyExpression__Group_3_0_1__0__Impl rule__XTryCatchFinallyExpression__Group_3_0_1__1
            {
            pushFollow(FollowSets000.FOLLOW_72);
            rule__XTryCatchFinallyExpression__Group_3_0_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XTryCatchFinallyExpression__Group_3_0_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XTryCatchFinallyExpression__Group_3_0_1__0"


    // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_0_1__0__Impl"
    // InternalXcore.g:22257:1: rule__XTryCatchFinallyExpression__Group_3_0_1__0__Impl : ( ( 'finally' ) ) ;
    public final void rule__XTryCatchFinallyExpression__Group_3_0_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:22261:1: ( ( ( 'finally' ) ) )
            // InternalXcore.g:22262:1: ( ( 'finally' ) )
            {
            // InternalXcore.g:22262:1: ( ( 'finally' ) )
            // InternalXcore.g:22263:1: ( 'finally' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyKeyword_3_0_1_0()); 
            }
            // InternalXcore.g:22264:1: ( 'finally' )
            // InternalXcore.g:22265:2: 'finally'
            {
            match(input,112,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyKeyword_3_0_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XTryCatchFinallyExpression__Group_3_0_1__0__Impl"


    // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_0_1__1"
    // InternalXcore.g:22276:1: rule__XTryCatchFinallyExpression__Group_3_0_1__1 : rule__XTryCatchFinallyExpression__Group_3_0_1__1__Impl ;
    public final void rule__XTryCatchFinallyExpression__Group_3_0_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:22280:1: ( rule__XTryCatchFinallyExpression__Group_3_0_1__1__Impl )
            // InternalXcore.g:22281:2: rule__XTryCatchFinallyExpression__Group_3_0_1__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XTryCatchFinallyExpression__Group_3_0_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XTryCatchFinallyExpression__Group_3_0_1__1"


    // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_0_1__1__Impl"
    // InternalXcore.g:22287:1: rule__XTryCatchFinallyExpression__Group_3_0_1__1__Impl : ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 ) ) ;
    public final void rule__XTryCatchFinallyExpression__Group_3_0_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:22291:1: ( ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 ) ) )
            // InternalXcore.g:22292:1: ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 ) )
            {
            // InternalXcore.g:22292:1: ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 ) )
            // InternalXcore.g:22293:1: ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyExpressionAssignment_3_0_1_1()); 
            }
            // InternalXcore.g:22294:1: ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 )
            // InternalXcore.g:22294:2: rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyExpressionAssignment_3_0_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XTryCatchFinallyExpression__Group_3_0_1__1__Impl"


    // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_1__0"
    // InternalXcore.g:22308:1: rule__XTryCatchFinallyExpression__Group_3_1__0 : rule__XTryCatchFinallyExpression__Group_3_1__0__Impl rule__XTryCatchFinallyExpression__Group_3_1__1 ;
    public final void rule__XTryCatchFinallyExpression__Group_3_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:22312:1: ( rule__XTryCatchFinallyExpression__Group_3_1__0__Impl rule__XTryCatchFinallyExpression__Group_3_1__1 )
            // InternalXcore.g:22313:2: rule__XTryCatchFinallyExpression__Group_3_1__0__Impl rule__XTryCatchFinallyExpression__Group_3_1__1
            {
            pushFollow(FollowSets000.FOLLOW_72);
            rule__XTryCatchFinallyExpression__Group_3_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XTryCatchFinallyExpression__Group_3_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XTryCatchFinallyExpression__Group_3_1__0"


    // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_1__0__Impl"
    // InternalXcore.g:22320:1: rule__XTryCatchFinallyExpression__Group_3_1__0__Impl : ( 'finally' ) ;
    public final void rule__XTryCatchFinallyExpression__Group_3_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:22324:1: ( ( 'finally' ) )
            // InternalXcore.g:22325:1: ( 'finally' )
            {
            // InternalXcore.g:22325:1: ( 'finally' )
            // InternalXcore.g:22326:1: 'finally'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyKeyword_3_1_0()); 
            }
            match(input,112,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyKeyword_3_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XTryCatchFinallyExpression__Group_3_1__0__Impl"


    // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_1__1"
    // InternalXcore.g:22339:1: rule__XTryCatchFinallyExpression__Group_3_1__1 : rule__XTryCatchFinallyExpression__Group_3_1__1__Impl ;
    public final void rule__XTryCatchFinallyExpression__Group_3_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:22343:1: ( rule__XTryCatchFinallyExpression__Group_3_1__1__Impl )
            // InternalXcore.g:22344:2: rule__XTryCatchFinallyExpression__Group_3_1__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XTryCatchFinallyExpression__Group_3_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XTryCatchFinallyExpression__Group_3_1__1"


    // $ANTLR start "rule__XTryCatchFinallyExpression__Group_3_1__1__Impl"
    // InternalXcore.g:22350:1: rule__XTryCatchFinallyExpression__Group_3_1__1__Impl : ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 ) ) ;
    public final void rule__XTryCatchFinallyExpression__Group_3_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:22354:1: ( ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 ) ) )
            // InternalXcore.g:22355:1: ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 ) )
            {
            // InternalXcore.g:22355:1: ( ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 ) )
            // InternalXcore.g:22356:1: ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyExpressionAssignment_3_1_1()); 
            }
            // InternalXcore.g:22357:1: ( rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 )
            // InternalXcore.g:22357:2: rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyExpressionAssignment_3_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XTryCatchFinallyExpression__Group_3_1__1__Impl"


    // $ANTLR start "rule__XSynchronizedExpression__Group__0"
    // InternalXcore.g:22371:1: rule__XSynchronizedExpression__Group__0 : rule__XSynchronizedExpression__Group__0__Impl rule__XSynchronizedExpression__Group__1 ;
    public final void rule__XSynchronizedExpression__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:22375:1: ( rule__XSynchronizedExpression__Group__0__Impl rule__XSynchronizedExpression__Group__1 )
            // InternalXcore.g:22376:2: rule__XSynchronizedExpression__Group__0__Impl rule__XSynchronizedExpression__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_72);
            rule__XSynchronizedExpression__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XSynchronizedExpression__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XSynchronizedExpression__Group__0"


    // $ANTLR start "rule__XSynchronizedExpression__Group__0__Impl"
    // InternalXcore.g:22383:1: rule__XSynchronizedExpression__Group__0__Impl : ( ( rule__XSynchronizedExpression__Group_0__0 ) ) ;
    public final void rule__XSynchronizedExpression__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:22387:1: ( ( ( rule__XSynchronizedExpression__Group_0__0 ) ) )
            // InternalXcore.g:22388:1: ( ( rule__XSynchronizedExpression__Group_0__0 ) )
            {
            // InternalXcore.g:22388:1: ( ( rule__XSynchronizedExpression__Group_0__0 ) )
            // InternalXcore.g:22389:1: ( rule__XSynchronizedExpression__Group_0__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSynchronizedExpressionAccess().getGroup_0()); 
            }
            // InternalXcore.g:22390:1: ( rule__XSynchronizedExpression__Group_0__0 )
            // InternalXcore.g:22390:2: rule__XSynchronizedExpression__Group_0__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XSynchronizedExpression__Group_0__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXSynchronizedExpressionAccess().getGroup_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XSynchronizedExpression__Group__0__Impl"


    // $ANTLR start "rule__XSynchronizedExpression__Group__1"
    // InternalXcore.g:22400:1: rule__XSynchronizedExpression__Group__1 : rule__XSynchronizedExpression__Group__1__Impl rule__XSynchronizedExpression__Group__2 ;
    public final void rule__XSynchronizedExpression__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:22404:1: ( rule__XSynchronizedExpression__Group__1__Impl rule__XSynchronizedExpression__Group__2 )
            // InternalXcore.g:22405:2: rule__XSynchronizedExpression__Group__1__Impl rule__XSynchronizedExpression__Group__2
            {
            pushFollow(FollowSets000.FOLLOW_108);
            rule__XSynchronizedExpression__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XSynchronizedExpression__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XSynchronizedExpression__Group__1"


    // $ANTLR start "rule__XSynchronizedExpression__Group__1__Impl"
    // InternalXcore.g:22412:1: rule__XSynchronizedExpression__Group__1__Impl : ( ( rule__XSynchronizedExpression__ParamAssignment_1 ) ) ;
    public final void rule__XSynchronizedExpression__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:22416:1: ( ( ( rule__XSynchronizedExpression__ParamAssignment_1 ) ) )
            // InternalXcore.g:22417:1: ( ( rule__XSynchronizedExpression__ParamAssignment_1 ) )
            {
            // InternalXcore.g:22417:1: ( ( rule__XSynchronizedExpression__ParamAssignment_1 ) )
            // InternalXcore.g:22418:1: ( rule__XSynchronizedExpression__ParamAssignment_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSynchronizedExpressionAccess().getParamAssignment_1()); 
            }
            // InternalXcore.g:22419:1: ( rule__XSynchronizedExpression__ParamAssignment_1 )
            // InternalXcore.g:22419:2: rule__XSynchronizedExpression__ParamAssignment_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XSynchronizedExpression__ParamAssignment_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXSynchronizedExpressionAccess().getParamAssignment_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XSynchronizedExpression__Group__1__Impl"


    // $ANTLR start "rule__XSynchronizedExpression__Group__2"
    // InternalXcore.g:22429:1: rule__XSynchronizedExpression__Group__2 : rule__XSynchronizedExpression__Group__2__Impl rule__XSynchronizedExpression__Group__3 ;
    public final void rule__XSynchronizedExpression__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:22433:1: ( rule__XSynchronizedExpression__Group__2__Impl rule__XSynchronizedExpression__Group__3 )
            // InternalXcore.g:22434:2: rule__XSynchronizedExpression__Group__2__Impl rule__XSynchronizedExpression__Group__3
            {
            pushFollow(FollowSets000.FOLLOW_72);
            rule__XSynchronizedExpression__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XSynchronizedExpression__Group__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XSynchronizedExpression__Group__2"


    // $ANTLR start "rule__XSynchronizedExpression__Group__2__Impl"
    // InternalXcore.g:22441:1: rule__XSynchronizedExpression__Group__2__Impl : ( ')' ) ;
    public final void rule__XSynchronizedExpression__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:22445:1: ( ( ')' ) )
            // InternalXcore.g:22446:1: ( ')' )
            {
            // InternalXcore.g:22446:1: ( ')' )
            // InternalXcore.g:22447:1: ')'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSynchronizedExpressionAccess().getRightParenthesisKeyword_2()); 
            }
            match(input,86,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXSynchronizedExpressionAccess().getRightParenthesisKeyword_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XSynchronizedExpression__Group__2__Impl"


    // $ANTLR start "rule__XSynchronizedExpression__Group__3"
    // InternalXcore.g:22460:1: rule__XSynchronizedExpression__Group__3 : rule__XSynchronizedExpression__Group__3__Impl ;
    public final void rule__XSynchronizedExpression__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:22464:1: ( rule__XSynchronizedExpression__Group__3__Impl )
            // InternalXcore.g:22465:2: rule__XSynchronizedExpression__Group__3__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XSynchronizedExpression__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XSynchronizedExpression__Group__3"


    // $ANTLR start "rule__XSynchronizedExpression__Group__3__Impl"
    // InternalXcore.g:22471:1: rule__XSynchronizedExpression__Group__3__Impl : ( ( rule__XSynchronizedExpression__ExpressionAssignment_3 ) ) ;
    public final void rule__XSynchronizedExpression__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:22475:1: ( ( ( rule__XSynchronizedExpression__ExpressionAssignment_3 ) ) )
            // InternalXcore.g:22476:1: ( ( rule__XSynchronizedExpression__ExpressionAssignment_3 ) )
            {
            // InternalXcore.g:22476:1: ( ( rule__XSynchronizedExpression__ExpressionAssignment_3 ) )
            // InternalXcore.g:22477:1: ( rule__XSynchronizedExpression__ExpressionAssignment_3 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSynchronizedExpressionAccess().getExpressionAssignment_3()); 
            }
            // InternalXcore.g:22478:1: ( rule__XSynchronizedExpression__ExpressionAssignment_3 )
            // InternalXcore.g:22478:2: rule__XSynchronizedExpression__ExpressionAssignment_3
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XSynchronizedExpression__ExpressionAssignment_3();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXSynchronizedExpressionAccess().getExpressionAssignment_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XSynchronizedExpression__Group__3__Impl"


    // $ANTLR start "rule__XSynchronizedExpression__Group_0__0"
    // InternalXcore.g:22496:1: rule__XSynchronizedExpression__Group_0__0 : rule__XSynchronizedExpression__Group_0__0__Impl ;
    public final void rule__XSynchronizedExpression__Group_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:22500:1: ( rule__XSynchronizedExpression__Group_0__0__Impl )
            // InternalXcore.g:22501:2: rule__XSynchronizedExpression__Group_0__0__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XSynchronizedExpression__Group_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XSynchronizedExpression__Group_0__0"


    // $ANTLR start "rule__XSynchronizedExpression__Group_0__0__Impl"
    // InternalXcore.g:22507:1: rule__XSynchronizedExpression__Group_0__0__Impl : ( ( rule__XSynchronizedExpression__Group_0_0__0 ) ) ;
    public final void rule__XSynchronizedExpression__Group_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:22511:1: ( ( ( rule__XSynchronizedExpression__Group_0_0__0 ) ) )
            // InternalXcore.g:22512:1: ( ( rule__XSynchronizedExpression__Group_0_0__0 ) )
            {
            // InternalXcore.g:22512:1: ( ( rule__XSynchronizedExpression__Group_0_0__0 ) )
            // InternalXcore.g:22513:1: ( rule__XSynchronizedExpression__Group_0_0__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSynchronizedExpressionAccess().getGroup_0_0()); 
            }
            // InternalXcore.g:22514:1: ( rule__XSynchronizedExpression__Group_0_0__0 )
            // InternalXcore.g:22514:2: rule__XSynchronizedExpression__Group_0_0__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XSynchronizedExpression__Group_0_0__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXSynchronizedExpressionAccess().getGroup_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XSynchronizedExpression__Group_0__0__Impl"


    // $ANTLR start "rule__XSynchronizedExpression__Group_0_0__0"
    // InternalXcore.g:22526:1: rule__XSynchronizedExpression__Group_0_0__0 : rule__XSynchronizedExpression__Group_0_0__0__Impl rule__XSynchronizedExpression__Group_0_0__1 ;
    public final void rule__XSynchronizedExpression__Group_0_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:22530:1: ( rule__XSynchronizedExpression__Group_0_0__0__Impl rule__XSynchronizedExpression__Group_0_0__1 )
            // InternalXcore.g:22531:2: rule__XSynchronizedExpression__Group_0_0__0__Impl rule__XSynchronizedExpression__Group_0_0__1
            {
            pushFollow(FollowSets000.FOLLOW_137);
            rule__XSynchronizedExpression__Group_0_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XSynchronizedExpression__Group_0_0__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XSynchronizedExpression__Group_0_0__0"


    // $ANTLR start "rule__XSynchronizedExpression__Group_0_0__0__Impl"
    // InternalXcore.g:22538:1: rule__XSynchronizedExpression__Group_0_0__0__Impl : ( () ) ;
    public final void rule__XSynchronizedExpression__Group_0_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:22542:1: ( ( () ) )
            // InternalXcore.g:22543:1: ( () )
            {
            // InternalXcore.g:22543:1: ( () )
            // InternalXcore.g:22544:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSynchronizedExpressionAccess().getXSynchronizedExpressionAction_0_0_0()); 
            }
            // InternalXcore.g:22545:1: ()
            // InternalXcore.g:22547:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXSynchronizedExpressionAccess().getXSynchronizedExpressionAction_0_0_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XSynchronizedExpression__Group_0_0__0__Impl"


    // $ANTLR start "rule__XSynchronizedExpression__Group_0_0__1"
    // InternalXcore.g:22557:1: rule__XSynchronizedExpression__Group_0_0__1 : rule__XSynchronizedExpression__Group_0_0__1__Impl rule__XSynchronizedExpression__Group_0_0__2 ;
    public final void rule__XSynchronizedExpression__Group_0_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:22561:1: ( rule__XSynchronizedExpression__Group_0_0__1__Impl rule__XSynchronizedExpression__Group_0_0__2 )
            // InternalXcore.g:22562:2: rule__XSynchronizedExpression__Group_0_0__1__Impl rule__XSynchronizedExpression__Group_0_0__2
            {
            pushFollow(FollowSets000.FOLLOW_12);
            rule__XSynchronizedExpression__Group_0_0__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XSynchronizedExpression__Group_0_0__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XSynchronizedExpression__Group_0_0__1"


    // $ANTLR start "rule__XSynchronizedExpression__Group_0_0__1__Impl"
    // InternalXcore.g:22569:1: rule__XSynchronizedExpression__Group_0_0__1__Impl : ( 'synchronized' ) ;
    public final void rule__XSynchronizedExpression__Group_0_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:22573:1: ( ( 'synchronized' ) )
            // InternalXcore.g:22574:1: ( 'synchronized' )
            {
            // InternalXcore.g:22574:1: ( 'synchronized' )
            // InternalXcore.g:22575:1: 'synchronized'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSynchronizedExpressionAccess().getSynchronizedKeyword_0_0_1()); 
            }
            match(input,113,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXSynchronizedExpressionAccess().getSynchronizedKeyword_0_0_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XSynchronizedExpression__Group_0_0__1__Impl"


    // $ANTLR start "rule__XSynchronizedExpression__Group_0_0__2"
    // InternalXcore.g:22588:1: rule__XSynchronizedExpression__Group_0_0__2 : rule__XSynchronizedExpression__Group_0_0__2__Impl ;
    public final void rule__XSynchronizedExpression__Group_0_0__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:22592:1: ( rule__XSynchronizedExpression__Group_0_0__2__Impl )
            // InternalXcore.g:22593:2: rule__XSynchronizedExpression__Group_0_0__2__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XSynchronizedExpression__Group_0_0__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XSynchronizedExpression__Group_0_0__2"


    // $ANTLR start "rule__XSynchronizedExpression__Group_0_0__2__Impl"
    // InternalXcore.g:22599:1: rule__XSynchronizedExpression__Group_0_0__2__Impl : ( '(' ) ;
    public final void rule__XSynchronizedExpression__Group_0_0__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:22603:1: ( ( '(' ) )
            // InternalXcore.g:22604:1: ( '(' )
            {
            // InternalXcore.g:22604:1: ( '(' )
            // InternalXcore.g:22605:1: '('
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSynchronizedExpressionAccess().getLeftParenthesisKeyword_0_0_2()); 
            }
            match(input,85,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXSynchronizedExpressionAccess().getLeftParenthesisKeyword_0_0_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XSynchronizedExpression__Group_0_0__2__Impl"


    // $ANTLR start "rule__XCatchClause__Group__0"
    // InternalXcore.g:22624:1: rule__XCatchClause__Group__0 : rule__XCatchClause__Group__0__Impl rule__XCatchClause__Group__1 ;
    public final void rule__XCatchClause__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:22628:1: ( rule__XCatchClause__Group__0__Impl rule__XCatchClause__Group__1 )
            // InternalXcore.g:22629:2: rule__XCatchClause__Group__0__Impl rule__XCatchClause__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_12);
            rule__XCatchClause__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XCatchClause__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XCatchClause__Group__0"


    // $ANTLR start "rule__XCatchClause__Group__0__Impl"
    // InternalXcore.g:22636:1: rule__XCatchClause__Group__0__Impl : ( ( 'catch' ) ) ;
    public final void rule__XCatchClause__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:22640:1: ( ( ( 'catch' ) ) )
            // InternalXcore.g:22641:1: ( ( 'catch' ) )
            {
            // InternalXcore.g:22641:1: ( ( 'catch' ) )
            // InternalXcore.g:22642:1: ( 'catch' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXCatchClauseAccess().getCatchKeyword_0()); 
            }
            // InternalXcore.g:22643:1: ( 'catch' )
            // InternalXcore.g:22644:2: 'catch'
            {
            match(input,114,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXCatchClauseAccess().getCatchKeyword_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XCatchClause__Group__0__Impl"


    // $ANTLR start "rule__XCatchClause__Group__1"
    // InternalXcore.g:22655:1: rule__XCatchClause__Group__1 : rule__XCatchClause__Group__1__Impl rule__XCatchClause__Group__2 ;
    public final void rule__XCatchClause__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:22659:1: ( rule__XCatchClause__Group__1__Impl rule__XCatchClause__Group__2 )
            // InternalXcore.g:22660:2: rule__XCatchClause__Group__1__Impl rule__XCatchClause__Group__2
            {
            pushFollow(FollowSets000.FOLLOW_22);
            rule__XCatchClause__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XCatchClause__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XCatchClause__Group__1"


    // $ANTLR start "rule__XCatchClause__Group__1__Impl"
    // InternalXcore.g:22667:1: rule__XCatchClause__Group__1__Impl : ( '(' ) ;
    public final void rule__XCatchClause__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:22671:1: ( ( '(' ) )
            // InternalXcore.g:22672:1: ( '(' )
            {
            // InternalXcore.g:22672:1: ( '(' )
            // InternalXcore.g:22673:1: '('
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXCatchClauseAccess().getLeftParenthesisKeyword_1()); 
            }
            match(input,85,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXCatchClauseAccess().getLeftParenthesisKeyword_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XCatchClause__Group__1__Impl"


    // $ANTLR start "rule__XCatchClause__Group__2"
    // InternalXcore.g:22686:1: rule__XCatchClause__Group__2 : rule__XCatchClause__Group__2__Impl rule__XCatchClause__Group__3 ;
    public final void rule__XCatchClause__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:22690:1: ( rule__XCatchClause__Group__2__Impl rule__XCatchClause__Group__3 )
            // InternalXcore.g:22691:2: rule__XCatchClause__Group__2__Impl rule__XCatchClause__Group__3
            {
            pushFollow(FollowSets000.FOLLOW_108);
            rule__XCatchClause__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XCatchClause__Group__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XCatchClause__Group__2"


    // $ANTLR start "rule__XCatchClause__Group__2__Impl"
    // InternalXcore.g:22698:1: rule__XCatchClause__Group__2__Impl : ( ( rule__XCatchClause__DeclaredParamAssignment_2 ) ) ;
    public final void rule__XCatchClause__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:22702:1: ( ( ( rule__XCatchClause__DeclaredParamAssignment_2 ) ) )
            // InternalXcore.g:22703:1: ( ( rule__XCatchClause__DeclaredParamAssignment_2 ) )
            {
            // InternalXcore.g:22703:1: ( ( rule__XCatchClause__DeclaredParamAssignment_2 ) )
            // InternalXcore.g:22704:1: ( rule__XCatchClause__DeclaredParamAssignment_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXCatchClauseAccess().getDeclaredParamAssignment_2()); 
            }
            // InternalXcore.g:22705:1: ( rule__XCatchClause__DeclaredParamAssignment_2 )
            // InternalXcore.g:22705:2: rule__XCatchClause__DeclaredParamAssignment_2
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XCatchClause__DeclaredParamAssignment_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXCatchClauseAccess().getDeclaredParamAssignment_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XCatchClause__Group__2__Impl"


    // $ANTLR start "rule__XCatchClause__Group__3"
    // InternalXcore.g:22715:1: rule__XCatchClause__Group__3 : rule__XCatchClause__Group__3__Impl rule__XCatchClause__Group__4 ;
    public final void rule__XCatchClause__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:22719:1: ( rule__XCatchClause__Group__3__Impl rule__XCatchClause__Group__4 )
            // InternalXcore.g:22720:2: rule__XCatchClause__Group__3__Impl rule__XCatchClause__Group__4
            {
            pushFollow(FollowSets000.FOLLOW_72);
            rule__XCatchClause__Group__3__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XCatchClause__Group__4();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XCatchClause__Group__3"


    // $ANTLR start "rule__XCatchClause__Group__3__Impl"
    // InternalXcore.g:22727:1: rule__XCatchClause__Group__3__Impl : ( ')' ) ;
    public final void rule__XCatchClause__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:22731:1: ( ( ')' ) )
            // InternalXcore.g:22732:1: ( ')' )
            {
            // InternalXcore.g:22732:1: ( ')' )
            // InternalXcore.g:22733:1: ')'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXCatchClauseAccess().getRightParenthesisKeyword_3()); 
            }
            match(input,86,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXCatchClauseAccess().getRightParenthesisKeyword_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XCatchClause__Group__3__Impl"


    // $ANTLR start "rule__XCatchClause__Group__4"
    // InternalXcore.g:22746:1: rule__XCatchClause__Group__4 : rule__XCatchClause__Group__4__Impl ;
    public final void rule__XCatchClause__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:22750:1: ( rule__XCatchClause__Group__4__Impl )
            // InternalXcore.g:22751:2: rule__XCatchClause__Group__4__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XCatchClause__Group__4__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XCatchClause__Group__4"


    // $ANTLR start "rule__XCatchClause__Group__4__Impl"
    // InternalXcore.g:22757:1: rule__XCatchClause__Group__4__Impl : ( ( rule__XCatchClause__ExpressionAssignment_4 ) ) ;
    public final void rule__XCatchClause__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:22761:1: ( ( ( rule__XCatchClause__ExpressionAssignment_4 ) ) )
            // InternalXcore.g:22762:1: ( ( rule__XCatchClause__ExpressionAssignment_4 ) )
            {
            // InternalXcore.g:22762:1: ( ( rule__XCatchClause__ExpressionAssignment_4 ) )
            // InternalXcore.g:22763:1: ( rule__XCatchClause__ExpressionAssignment_4 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXCatchClauseAccess().getExpressionAssignment_4()); 
            }
            // InternalXcore.g:22764:1: ( rule__XCatchClause__ExpressionAssignment_4 )
            // InternalXcore.g:22764:2: rule__XCatchClause__ExpressionAssignment_4
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XCatchClause__ExpressionAssignment_4();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXCatchClauseAccess().getExpressionAssignment_4()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XCatchClause__Group__4__Impl"


    // $ANTLR start "rule__QualifiedName__Group__0"
    // InternalXcore.g:22784:1: rule__QualifiedName__Group__0 : rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1 ;
    public final void rule__QualifiedName__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:22788:1: ( rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1 )
            // InternalXcore.g:22789:2: rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_69);
            rule__QualifiedName__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__QualifiedName__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__QualifiedName__Group__0"


    // $ANTLR start "rule__QualifiedName__Group__0__Impl"
    // InternalXcore.g:22796:1: rule__QualifiedName__Group__0__Impl : ( ruleValidID ) ;
    public final void rule__QualifiedName__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:22800:1: ( ( ruleValidID ) )
            // InternalXcore.g:22801:1: ( ruleValidID )
            {
            // InternalXcore.g:22801:1: ( ruleValidID )
            // InternalXcore.g:22802:1: ruleValidID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getQualifiedNameAccess().getValidIDParserRuleCall_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleValidID();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getQualifiedNameAccess().getValidIDParserRuleCall_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__QualifiedName__Group__0__Impl"


    // $ANTLR start "rule__QualifiedName__Group__1"
    // InternalXcore.g:22813:1: rule__QualifiedName__Group__1 : rule__QualifiedName__Group__1__Impl ;
    public final void rule__QualifiedName__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:22817:1: ( rule__QualifiedName__Group__1__Impl )
            // InternalXcore.g:22818:2: rule__QualifiedName__Group__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__QualifiedName__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__QualifiedName__Group__1"


    // $ANTLR start "rule__QualifiedName__Group__1__Impl"
    // InternalXcore.g:22824:1: rule__QualifiedName__Group__1__Impl : ( ( rule__QualifiedName__Group_1__0 )* ) ;
    public final void rule__QualifiedName__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:22828:1: ( ( ( rule__QualifiedName__Group_1__0 )* ) )
            // InternalXcore.g:22829:1: ( ( rule__QualifiedName__Group_1__0 )* )
            {
            // InternalXcore.g:22829:1: ( ( rule__QualifiedName__Group_1__0 )* )
            // InternalXcore.g:22830:1: ( rule__QualifiedName__Group_1__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getQualifiedNameAccess().getGroup_1()); 
            }
            // InternalXcore.g:22831:1: ( rule__QualifiedName__Group_1__0 )*
            loop177:
            do {
                int alt177=2;
                alt177 = dfa177.predict(input);
                switch (alt177) {
            	case 1 :
            	    // InternalXcore.g:22831:2: rule__QualifiedName__Group_1__0
            	    {
            	    pushFollow(FollowSets000.FOLLOW_70);
            	    rule__QualifiedName__Group_1__0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop177;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getQualifiedNameAccess().getGroup_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__QualifiedName__Group__1__Impl"


    // $ANTLR start "rule__QualifiedName__Group_1__0"
    // InternalXcore.g:22845:1: rule__QualifiedName__Group_1__0 : rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1 ;
    public final void rule__QualifiedName__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:22849:1: ( rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1 )
            // InternalXcore.g:22850:2: rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1
            {
            pushFollow(FollowSets000.FOLLOW_6);
            rule__QualifiedName__Group_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__QualifiedName__Group_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__QualifiedName__Group_1__0"


    // $ANTLR start "rule__QualifiedName__Group_1__0__Impl"
    // InternalXcore.g:22857:1: rule__QualifiedName__Group_1__0__Impl : ( ( '.' ) ) ;
    public final void rule__QualifiedName__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:22861:1: ( ( ( '.' ) ) )
            // InternalXcore.g:22862:1: ( ( '.' ) )
            {
            // InternalXcore.g:22862:1: ( ( '.' ) )
            // InternalXcore.g:22863:1: ( '.' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getQualifiedNameAccess().getFullStopKeyword_1_0()); 
            }
            // InternalXcore.g:22864:1: ( '.' )
            // InternalXcore.g:22865:2: '.'
            {
            match(input,80,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getQualifiedNameAccess().getFullStopKeyword_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__QualifiedName__Group_1__0__Impl"


    // $ANTLR start "rule__QualifiedName__Group_1__1"
    // InternalXcore.g:22876:1: rule__QualifiedName__Group_1__1 : rule__QualifiedName__Group_1__1__Impl ;
    public final void rule__QualifiedName__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:22880:1: ( rule__QualifiedName__Group_1__1__Impl )
            // InternalXcore.g:22881:2: rule__QualifiedName__Group_1__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__QualifiedName__Group_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__QualifiedName__Group_1__1"


    // $ANTLR start "rule__QualifiedName__Group_1__1__Impl"
    // InternalXcore.g:22887:1: rule__QualifiedName__Group_1__1__Impl : ( ruleValidID ) ;
    public final void rule__QualifiedName__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:22891:1: ( ( ruleValidID ) )
            // InternalXcore.g:22892:1: ( ruleValidID )
            {
            // InternalXcore.g:22892:1: ( ruleValidID )
            // InternalXcore.g:22893:1: ruleValidID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getQualifiedNameAccess().getValidIDParserRuleCall_1_1()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleValidID();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getQualifiedNameAccess().getValidIDParserRuleCall_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__QualifiedName__Group_1__1__Impl"


    // $ANTLR start "rule__Number__Group_1__0"
    // InternalXcore.g:22908:1: rule__Number__Group_1__0 : rule__Number__Group_1__0__Impl rule__Number__Group_1__1 ;
    public final void rule__Number__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:22912:1: ( rule__Number__Group_1__0__Impl rule__Number__Group_1__1 )
            // InternalXcore.g:22913:2: rule__Number__Group_1__0__Impl rule__Number__Group_1__1
            {
            pushFollow(FollowSets000.FOLLOW_69);
            rule__Number__Group_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__Number__Group_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Number__Group_1__0"


    // $ANTLR start "rule__Number__Group_1__0__Impl"
    // InternalXcore.g:22920:1: rule__Number__Group_1__0__Impl : ( ( rule__Number__Alternatives_1_0 ) ) ;
    public final void rule__Number__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:22924:1: ( ( ( rule__Number__Alternatives_1_0 ) ) )
            // InternalXcore.g:22925:1: ( ( rule__Number__Alternatives_1_0 ) )
            {
            // InternalXcore.g:22925:1: ( ( rule__Number__Alternatives_1_0 ) )
            // InternalXcore.g:22926:1: ( rule__Number__Alternatives_1_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getNumberAccess().getAlternatives_1_0()); 
            }
            // InternalXcore.g:22927:1: ( rule__Number__Alternatives_1_0 )
            // InternalXcore.g:22927:2: rule__Number__Alternatives_1_0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__Number__Alternatives_1_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getNumberAccess().getAlternatives_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Number__Group_1__0__Impl"


    // $ANTLR start "rule__Number__Group_1__1"
    // InternalXcore.g:22937:1: rule__Number__Group_1__1 : rule__Number__Group_1__1__Impl ;
    public final void rule__Number__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:22941:1: ( rule__Number__Group_1__1__Impl )
            // InternalXcore.g:22942:2: rule__Number__Group_1__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__Number__Group_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Number__Group_1__1"


    // $ANTLR start "rule__Number__Group_1__1__Impl"
    // InternalXcore.g:22948:1: rule__Number__Group_1__1__Impl : ( ( rule__Number__Group_1_1__0 )? ) ;
    public final void rule__Number__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:22952:1: ( ( ( rule__Number__Group_1_1__0 )? ) )
            // InternalXcore.g:22953:1: ( ( rule__Number__Group_1_1__0 )? )
            {
            // InternalXcore.g:22953:1: ( ( rule__Number__Group_1_1__0 )? )
            // InternalXcore.g:22954:1: ( rule__Number__Group_1_1__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getNumberAccess().getGroup_1_1()); 
            }
            // InternalXcore.g:22955:1: ( rule__Number__Group_1_1__0 )?
            int alt178=2;
            int LA178_0 = input.LA(1);

            if ( (LA178_0==80) ) {
                int LA178_1 = input.LA(2);

                if ( (LA178_1==RULE_INT||LA178_1==RULE_DECIMAL) ) {
                    alt178=1;
                }
            }
            switch (alt178) {
                case 1 :
                    // InternalXcore.g:22955:2: rule__Number__Group_1_1__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__Number__Group_1_1__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getNumberAccess().getGroup_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Number__Group_1__1__Impl"


    // $ANTLR start "rule__Number__Group_1_1__0"
    // InternalXcore.g:22969:1: rule__Number__Group_1_1__0 : rule__Number__Group_1_1__0__Impl rule__Number__Group_1_1__1 ;
    public final void rule__Number__Group_1_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:22973:1: ( rule__Number__Group_1_1__0__Impl rule__Number__Group_1_1__1 )
            // InternalXcore.g:22974:2: rule__Number__Group_1_1__0__Impl rule__Number__Group_1_1__1
            {
            pushFollow(FollowSets000.FOLLOW_138);
            rule__Number__Group_1_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__Number__Group_1_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Number__Group_1_1__0"


    // $ANTLR start "rule__Number__Group_1_1__0__Impl"
    // InternalXcore.g:22981:1: rule__Number__Group_1_1__0__Impl : ( '.' ) ;
    public final void rule__Number__Group_1_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:22985:1: ( ( '.' ) )
            // InternalXcore.g:22986:1: ( '.' )
            {
            // InternalXcore.g:22986:1: ( '.' )
            // InternalXcore.g:22987:1: '.'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getNumberAccess().getFullStopKeyword_1_1_0()); 
            }
            match(input,80,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getNumberAccess().getFullStopKeyword_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Number__Group_1_1__0__Impl"


    // $ANTLR start "rule__Number__Group_1_1__1"
    // InternalXcore.g:23000:1: rule__Number__Group_1_1__1 : rule__Number__Group_1_1__1__Impl ;
    public final void rule__Number__Group_1_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:23004:1: ( rule__Number__Group_1_1__1__Impl )
            // InternalXcore.g:23005:2: rule__Number__Group_1_1__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__Number__Group_1_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Number__Group_1_1__1"


    // $ANTLR start "rule__Number__Group_1_1__1__Impl"
    // InternalXcore.g:23011:1: rule__Number__Group_1_1__1__Impl : ( ( rule__Number__Alternatives_1_1_1 ) ) ;
    public final void rule__Number__Group_1_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:23015:1: ( ( ( rule__Number__Alternatives_1_1_1 ) ) )
            // InternalXcore.g:23016:1: ( ( rule__Number__Alternatives_1_1_1 ) )
            {
            // InternalXcore.g:23016:1: ( ( rule__Number__Alternatives_1_1_1 ) )
            // InternalXcore.g:23017:1: ( rule__Number__Alternatives_1_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getNumberAccess().getAlternatives_1_1_1()); 
            }
            // InternalXcore.g:23018:1: ( rule__Number__Alternatives_1_1_1 )
            // InternalXcore.g:23018:2: rule__Number__Alternatives_1_1_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__Number__Alternatives_1_1_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getNumberAccess().getAlternatives_1_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Number__Group_1_1__1__Impl"


    // $ANTLR start "rule__JvmTypeReference__Group_0__0"
    // InternalXcore.g:23033:1: rule__JvmTypeReference__Group_0__0 : rule__JvmTypeReference__Group_0__0__Impl rule__JvmTypeReference__Group_0__1 ;
    public final void rule__JvmTypeReference__Group_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:23037:1: ( rule__JvmTypeReference__Group_0__0__Impl rule__JvmTypeReference__Group_0__1 )
            // InternalXcore.g:23038:2: rule__JvmTypeReference__Group_0__0__Impl rule__JvmTypeReference__Group_0__1
            {
            pushFollow(FollowSets000.FOLLOW_103);
            rule__JvmTypeReference__Group_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__JvmTypeReference__Group_0__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmTypeReference__Group_0__0"


    // $ANTLR start "rule__JvmTypeReference__Group_0__0__Impl"
    // InternalXcore.g:23045:1: rule__JvmTypeReference__Group_0__0__Impl : ( ruleJvmParameterizedTypeReference ) ;
    public final void rule__JvmTypeReference__Group_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:23049:1: ( ( ruleJvmParameterizedTypeReference ) )
            // InternalXcore.g:23050:1: ( ruleJvmParameterizedTypeReference )
            {
            // InternalXcore.g:23050:1: ( ruleJvmParameterizedTypeReference )
            // InternalXcore.g:23051:1: ruleJvmParameterizedTypeReference
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmTypeReferenceAccess().getJvmParameterizedTypeReferenceParserRuleCall_0_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleJvmParameterizedTypeReference();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getJvmTypeReferenceAccess().getJvmParameterizedTypeReferenceParserRuleCall_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmTypeReference__Group_0__0__Impl"


    // $ANTLR start "rule__JvmTypeReference__Group_0__1"
    // InternalXcore.g:23062:1: rule__JvmTypeReference__Group_0__1 : rule__JvmTypeReference__Group_0__1__Impl ;
    public final void rule__JvmTypeReference__Group_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:23066:1: ( rule__JvmTypeReference__Group_0__1__Impl )
            // InternalXcore.g:23067:2: rule__JvmTypeReference__Group_0__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__JvmTypeReference__Group_0__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmTypeReference__Group_0__1"


    // $ANTLR start "rule__JvmTypeReference__Group_0__1__Impl"
    // InternalXcore.g:23073:1: rule__JvmTypeReference__Group_0__1__Impl : ( ( rule__JvmTypeReference__Group_0_1__0 )* ) ;
    public final void rule__JvmTypeReference__Group_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:23077:1: ( ( ( rule__JvmTypeReference__Group_0_1__0 )* ) )
            // InternalXcore.g:23078:1: ( ( rule__JvmTypeReference__Group_0_1__0 )* )
            {
            // InternalXcore.g:23078:1: ( ( rule__JvmTypeReference__Group_0_1__0 )* )
            // InternalXcore.g:23079:1: ( rule__JvmTypeReference__Group_0_1__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmTypeReferenceAccess().getGroup_0_1()); 
            }
            // InternalXcore.g:23080:1: ( rule__JvmTypeReference__Group_0_1__0 )*
            loop179:
            do {
                int alt179=2;
                int LA179_0 = input.LA(1);

                if ( (LA179_0==92) ) {
                    int LA179_2 = input.LA(2);

                    if ( (LA179_2==93) ) {
                        int LA179_3 = input.LA(3);

                        if ( (synpred261_InternalXcore()) ) {
                            alt179=1;
                        }


                    }


                }


                switch (alt179) {
            	case 1 :
            	    // InternalXcore.g:23080:2: rule__JvmTypeReference__Group_0_1__0
            	    {
            	    pushFollow(FollowSets000.FOLLOW_130);
            	    rule__JvmTypeReference__Group_0_1__0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop179;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getJvmTypeReferenceAccess().getGroup_0_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmTypeReference__Group_0__1__Impl"


    // $ANTLR start "rule__JvmTypeReference__Group_0_1__0"
    // InternalXcore.g:23094:1: rule__JvmTypeReference__Group_0_1__0 : rule__JvmTypeReference__Group_0_1__0__Impl ;
    public final void rule__JvmTypeReference__Group_0_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:23098:1: ( rule__JvmTypeReference__Group_0_1__0__Impl )
            // InternalXcore.g:23099:2: rule__JvmTypeReference__Group_0_1__0__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__JvmTypeReference__Group_0_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmTypeReference__Group_0_1__0"


    // $ANTLR start "rule__JvmTypeReference__Group_0_1__0__Impl"
    // InternalXcore.g:23105:1: rule__JvmTypeReference__Group_0_1__0__Impl : ( ( rule__JvmTypeReference__Group_0_1_0__0 ) ) ;
    public final void rule__JvmTypeReference__Group_0_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:23109:1: ( ( ( rule__JvmTypeReference__Group_0_1_0__0 ) ) )
            // InternalXcore.g:23110:1: ( ( rule__JvmTypeReference__Group_0_1_0__0 ) )
            {
            // InternalXcore.g:23110:1: ( ( rule__JvmTypeReference__Group_0_1_0__0 ) )
            // InternalXcore.g:23111:1: ( rule__JvmTypeReference__Group_0_1_0__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmTypeReferenceAccess().getGroup_0_1_0()); 
            }
            // InternalXcore.g:23112:1: ( rule__JvmTypeReference__Group_0_1_0__0 )
            // InternalXcore.g:23112:2: rule__JvmTypeReference__Group_0_1_0__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__JvmTypeReference__Group_0_1_0__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getJvmTypeReferenceAccess().getGroup_0_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmTypeReference__Group_0_1__0__Impl"


    // $ANTLR start "rule__JvmTypeReference__Group_0_1_0__0"
    // InternalXcore.g:23124:1: rule__JvmTypeReference__Group_0_1_0__0 : rule__JvmTypeReference__Group_0_1_0__0__Impl rule__JvmTypeReference__Group_0_1_0__1 ;
    public final void rule__JvmTypeReference__Group_0_1_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:23128:1: ( rule__JvmTypeReference__Group_0_1_0__0__Impl rule__JvmTypeReference__Group_0_1_0__1 )
            // InternalXcore.g:23129:2: rule__JvmTypeReference__Group_0_1_0__0__Impl rule__JvmTypeReference__Group_0_1_0__1
            {
            pushFollow(FollowSets000.FOLLOW_103);
            rule__JvmTypeReference__Group_0_1_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__JvmTypeReference__Group_0_1_0__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmTypeReference__Group_0_1_0__0"


    // $ANTLR start "rule__JvmTypeReference__Group_0_1_0__0__Impl"
    // InternalXcore.g:23136:1: rule__JvmTypeReference__Group_0_1_0__0__Impl : ( () ) ;
    public final void rule__JvmTypeReference__Group_0_1_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:23140:1: ( ( () ) )
            // InternalXcore.g:23141:1: ( () )
            {
            // InternalXcore.g:23141:1: ( () )
            // InternalXcore.g:23142:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmTypeReferenceAccess().getJvmGenericArrayTypeReferenceComponentTypeAction_0_1_0_0()); 
            }
            // InternalXcore.g:23143:1: ()
            // InternalXcore.g:23145:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getJvmTypeReferenceAccess().getJvmGenericArrayTypeReferenceComponentTypeAction_0_1_0_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmTypeReference__Group_0_1_0__0__Impl"


    // $ANTLR start "rule__JvmTypeReference__Group_0_1_0__1"
    // InternalXcore.g:23155:1: rule__JvmTypeReference__Group_0_1_0__1 : rule__JvmTypeReference__Group_0_1_0__1__Impl ;
    public final void rule__JvmTypeReference__Group_0_1_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:23159:1: ( rule__JvmTypeReference__Group_0_1_0__1__Impl )
            // InternalXcore.g:23160:2: rule__JvmTypeReference__Group_0_1_0__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__JvmTypeReference__Group_0_1_0__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmTypeReference__Group_0_1_0__1"


    // $ANTLR start "rule__JvmTypeReference__Group_0_1_0__1__Impl"
    // InternalXcore.g:23166:1: rule__JvmTypeReference__Group_0_1_0__1__Impl : ( ruleArrayBrackets ) ;
    public final void rule__JvmTypeReference__Group_0_1_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:23170:1: ( ( ruleArrayBrackets ) )
            // InternalXcore.g:23171:1: ( ruleArrayBrackets )
            {
            // InternalXcore.g:23171:1: ( ruleArrayBrackets )
            // InternalXcore.g:23172:1: ruleArrayBrackets
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmTypeReferenceAccess().getArrayBracketsParserRuleCall_0_1_0_1()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleArrayBrackets();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getJvmTypeReferenceAccess().getArrayBracketsParserRuleCall_0_1_0_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmTypeReference__Group_0_1_0__1__Impl"


    // $ANTLR start "rule__ArrayBrackets__Group__0"
    // InternalXcore.g:23187:1: rule__ArrayBrackets__Group__0 : rule__ArrayBrackets__Group__0__Impl rule__ArrayBrackets__Group__1 ;
    public final void rule__ArrayBrackets__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:23191:1: ( rule__ArrayBrackets__Group__0__Impl rule__ArrayBrackets__Group__1 )
            // InternalXcore.g:23192:2: rule__ArrayBrackets__Group__0__Impl rule__ArrayBrackets__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_106);
            rule__ArrayBrackets__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__ArrayBrackets__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ArrayBrackets__Group__0"


    // $ANTLR start "rule__ArrayBrackets__Group__0__Impl"
    // InternalXcore.g:23199:1: rule__ArrayBrackets__Group__0__Impl : ( '[' ) ;
    public final void rule__ArrayBrackets__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:23203:1: ( ( '[' ) )
            // InternalXcore.g:23204:1: ( '[' )
            {
            // InternalXcore.g:23204:1: ( '[' )
            // InternalXcore.g:23205:1: '['
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getArrayBracketsAccess().getLeftSquareBracketKeyword_0()); 
            }
            match(input,92,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getArrayBracketsAccess().getLeftSquareBracketKeyword_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ArrayBrackets__Group__0__Impl"


    // $ANTLR start "rule__ArrayBrackets__Group__1"
    // InternalXcore.g:23218:1: rule__ArrayBrackets__Group__1 : rule__ArrayBrackets__Group__1__Impl ;
    public final void rule__ArrayBrackets__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:23222:1: ( rule__ArrayBrackets__Group__1__Impl )
            // InternalXcore.g:23223:2: rule__ArrayBrackets__Group__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__ArrayBrackets__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ArrayBrackets__Group__1"


    // $ANTLR start "rule__ArrayBrackets__Group__1__Impl"
    // InternalXcore.g:23229:1: rule__ArrayBrackets__Group__1__Impl : ( ']' ) ;
    public final void rule__ArrayBrackets__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:23233:1: ( ( ']' ) )
            // InternalXcore.g:23234:1: ( ']' )
            {
            // InternalXcore.g:23234:1: ( ']' )
            // InternalXcore.g:23235:1: ']'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getArrayBracketsAccess().getRightSquareBracketKeyword_1()); 
            }
            match(input,93,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getArrayBracketsAccess().getRightSquareBracketKeyword_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__ArrayBrackets__Group__1__Impl"


    // $ANTLR start "rule__XFunctionTypeRef__Group__0"
    // InternalXcore.g:23252:1: rule__XFunctionTypeRef__Group__0 : rule__XFunctionTypeRef__Group__0__Impl rule__XFunctionTypeRef__Group__1 ;
    public final void rule__XFunctionTypeRef__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:23256:1: ( rule__XFunctionTypeRef__Group__0__Impl rule__XFunctionTypeRef__Group__1 )
            // InternalXcore.g:23257:2: rule__XFunctionTypeRef__Group__0__Impl rule__XFunctionTypeRef__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_22);
            rule__XFunctionTypeRef__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XFunctionTypeRef__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XFunctionTypeRef__Group__0"


    // $ANTLR start "rule__XFunctionTypeRef__Group__0__Impl"
    // InternalXcore.g:23264:1: rule__XFunctionTypeRef__Group__0__Impl : ( ( rule__XFunctionTypeRef__Group_0__0 )? ) ;
    public final void rule__XFunctionTypeRef__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:23268:1: ( ( ( rule__XFunctionTypeRef__Group_0__0 )? ) )
            // InternalXcore.g:23269:1: ( ( rule__XFunctionTypeRef__Group_0__0 )? )
            {
            // InternalXcore.g:23269:1: ( ( rule__XFunctionTypeRef__Group_0__0 )? )
            // InternalXcore.g:23270:1: ( rule__XFunctionTypeRef__Group_0__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXFunctionTypeRefAccess().getGroup_0()); 
            }
            // InternalXcore.g:23271:1: ( rule__XFunctionTypeRef__Group_0__0 )?
            int alt180=2;
            int LA180_0 = input.LA(1);

            if ( (LA180_0==85) ) {
                alt180=1;
            }
            switch (alt180) {
                case 1 :
                    // InternalXcore.g:23271:2: rule__XFunctionTypeRef__Group_0__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XFunctionTypeRef__Group_0__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXFunctionTypeRefAccess().getGroup_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XFunctionTypeRef__Group__0__Impl"


    // $ANTLR start "rule__XFunctionTypeRef__Group__1"
    // InternalXcore.g:23281:1: rule__XFunctionTypeRef__Group__1 : rule__XFunctionTypeRef__Group__1__Impl rule__XFunctionTypeRef__Group__2 ;
    public final void rule__XFunctionTypeRef__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:23285:1: ( rule__XFunctionTypeRef__Group__1__Impl rule__XFunctionTypeRef__Group__2 )
            // InternalXcore.g:23286:2: rule__XFunctionTypeRef__Group__1__Impl rule__XFunctionTypeRef__Group__2
            {
            pushFollow(FollowSets000.FOLLOW_22);
            rule__XFunctionTypeRef__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XFunctionTypeRef__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XFunctionTypeRef__Group__1"


    // $ANTLR start "rule__XFunctionTypeRef__Group__1__Impl"
    // InternalXcore.g:23293:1: rule__XFunctionTypeRef__Group__1__Impl : ( '=>' ) ;
    public final void rule__XFunctionTypeRef__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:23297:1: ( ( '=>' ) )
            // InternalXcore.g:23298:1: ( '=>' )
            {
            // InternalXcore.g:23298:1: ( '=>' )
            // InternalXcore.g:23299:1: '=>'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXFunctionTypeRefAccess().getEqualsSignGreaterThanSignKeyword_1()); 
            }
            match(input,70,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXFunctionTypeRefAccess().getEqualsSignGreaterThanSignKeyword_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XFunctionTypeRef__Group__1__Impl"


    // $ANTLR start "rule__XFunctionTypeRef__Group__2"
    // InternalXcore.g:23312:1: rule__XFunctionTypeRef__Group__2 : rule__XFunctionTypeRef__Group__2__Impl ;
    public final void rule__XFunctionTypeRef__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:23316:1: ( rule__XFunctionTypeRef__Group__2__Impl )
            // InternalXcore.g:23317:2: rule__XFunctionTypeRef__Group__2__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XFunctionTypeRef__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XFunctionTypeRef__Group__2"


    // $ANTLR start "rule__XFunctionTypeRef__Group__2__Impl"
    // InternalXcore.g:23323:1: rule__XFunctionTypeRef__Group__2__Impl : ( ( rule__XFunctionTypeRef__ReturnTypeAssignment_2 ) ) ;
    public final void rule__XFunctionTypeRef__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:23327:1: ( ( ( rule__XFunctionTypeRef__ReturnTypeAssignment_2 ) ) )
            // InternalXcore.g:23328:1: ( ( rule__XFunctionTypeRef__ReturnTypeAssignment_2 ) )
            {
            // InternalXcore.g:23328:1: ( ( rule__XFunctionTypeRef__ReturnTypeAssignment_2 ) )
            // InternalXcore.g:23329:1: ( rule__XFunctionTypeRef__ReturnTypeAssignment_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXFunctionTypeRefAccess().getReturnTypeAssignment_2()); 
            }
            // InternalXcore.g:23330:1: ( rule__XFunctionTypeRef__ReturnTypeAssignment_2 )
            // InternalXcore.g:23330:2: rule__XFunctionTypeRef__ReturnTypeAssignment_2
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XFunctionTypeRef__ReturnTypeAssignment_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXFunctionTypeRefAccess().getReturnTypeAssignment_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XFunctionTypeRef__Group__2__Impl"


    // $ANTLR start "rule__XFunctionTypeRef__Group_0__0"
    // InternalXcore.g:23346:1: rule__XFunctionTypeRef__Group_0__0 : rule__XFunctionTypeRef__Group_0__0__Impl rule__XFunctionTypeRef__Group_0__1 ;
    public final void rule__XFunctionTypeRef__Group_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:23350:1: ( rule__XFunctionTypeRef__Group_0__0__Impl rule__XFunctionTypeRef__Group_0__1 )
            // InternalXcore.g:23351:2: rule__XFunctionTypeRef__Group_0__0__Impl rule__XFunctionTypeRef__Group_0__1
            {
            pushFollow(FollowSets000.FOLLOW_139);
            rule__XFunctionTypeRef__Group_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XFunctionTypeRef__Group_0__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XFunctionTypeRef__Group_0__0"


    // $ANTLR start "rule__XFunctionTypeRef__Group_0__0__Impl"
    // InternalXcore.g:23358:1: rule__XFunctionTypeRef__Group_0__0__Impl : ( '(' ) ;
    public final void rule__XFunctionTypeRef__Group_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:23362:1: ( ( '(' ) )
            // InternalXcore.g:23363:1: ( '(' )
            {
            // InternalXcore.g:23363:1: ( '(' )
            // InternalXcore.g:23364:1: '('
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXFunctionTypeRefAccess().getLeftParenthesisKeyword_0_0()); 
            }
            match(input,85,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXFunctionTypeRefAccess().getLeftParenthesisKeyword_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XFunctionTypeRef__Group_0__0__Impl"


    // $ANTLR start "rule__XFunctionTypeRef__Group_0__1"
    // InternalXcore.g:23377:1: rule__XFunctionTypeRef__Group_0__1 : rule__XFunctionTypeRef__Group_0__1__Impl rule__XFunctionTypeRef__Group_0__2 ;
    public final void rule__XFunctionTypeRef__Group_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:23381:1: ( rule__XFunctionTypeRef__Group_0__1__Impl rule__XFunctionTypeRef__Group_0__2 )
            // InternalXcore.g:23382:2: rule__XFunctionTypeRef__Group_0__1__Impl rule__XFunctionTypeRef__Group_0__2
            {
            pushFollow(FollowSets000.FOLLOW_139);
            rule__XFunctionTypeRef__Group_0__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XFunctionTypeRef__Group_0__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XFunctionTypeRef__Group_0__1"


    // $ANTLR start "rule__XFunctionTypeRef__Group_0__1__Impl"
    // InternalXcore.g:23389:1: rule__XFunctionTypeRef__Group_0__1__Impl : ( ( rule__XFunctionTypeRef__Group_0_1__0 )? ) ;
    public final void rule__XFunctionTypeRef__Group_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:23393:1: ( ( ( rule__XFunctionTypeRef__Group_0_1__0 )? ) )
            // InternalXcore.g:23394:1: ( ( rule__XFunctionTypeRef__Group_0_1__0 )? )
            {
            // InternalXcore.g:23394:1: ( ( rule__XFunctionTypeRef__Group_0_1__0 )? )
            // InternalXcore.g:23395:1: ( rule__XFunctionTypeRef__Group_0_1__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXFunctionTypeRefAccess().getGroup_0_1()); 
            }
            // InternalXcore.g:23396:1: ( rule__XFunctionTypeRef__Group_0_1__0 )?
            int alt181=2;
            int LA181_0 = input.LA(1);

            if ( (LA181_0==RULE_ID||LA181_0==16||(LA181_0>=20 && LA181_0<=23)||LA181_0==70||LA181_0==85) ) {
                alt181=1;
            }
            switch (alt181) {
                case 1 :
                    // InternalXcore.g:23396:2: rule__XFunctionTypeRef__Group_0_1__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XFunctionTypeRef__Group_0_1__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXFunctionTypeRefAccess().getGroup_0_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XFunctionTypeRef__Group_0__1__Impl"


    // $ANTLR start "rule__XFunctionTypeRef__Group_0__2"
    // InternalXcore.g:23406:1: rule__XFunctionTypeRef__Group_0__2 : rule__XFunctionTypeRef__Group_0__2__Impl ;
    public final void rule__XFunctionTypeRef__Group_0__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:23410:1: ( rule__XFunctionTypeRef__Group_0__2__Impl )
            // InternalXcore.g:23411:2: rule__XFunctionTypeRef__Group_0__2__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XFunctionTypeRef__Group_0__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XFunctionTypeRef__Group_0__2"


    // $ANTLR start "rule__XFunctionTypeRef__Group_0__2__Impl"
    // InternalXcore.g:23417:1: rule__XFunctionTypeRef__Group_0__2__Impl : ( ')' ) ;
    public final void rule__XFunctionTypeRef__Group_0__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:23421:1: ( ( ')' ) )
            // InternalXcore.g:23422:1: ( ')' )
            {
            // InternalXcore.g:23422:1: ( ')' )
            // InternalXcore.g:23423:1: ')'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXFunctionTypeRefAccess().getRightParenthesisKeyword_0_2()); 
            }
            match(input,86,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXFunctionTypeRefAccess().getRightParenthesisKeyword_0_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XFunctionTypeRef__Group_0__2__Impl"


    // $ANTLR start "rule__XFunctionTypeRef__Group_0_1__0"
    // InternalXcore.g:23442:1: rule__XFunctionTypeRef__Group_0_1__0 : rule__XFunctionTypeRef__Group_0_1__0__Impl rule__XFunctionTypeRef__Group_0_1__1 ;
    public final void rule__XFunctionTypeRef__Group_0_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:23446:1: ( rule__XFunctionTypeRef__Group_0_1__0__Impl rule__XFunctionTypeRef__Group_0_1__1 )
            // InternalXcore.g:23447:2: rule__XFunctionTypeRef__Group_0_1__0__Impl rule__XFunctionTypeRef__Group_0_1__1
            {
            pushFollow(FollowSets000.FOLLOW_38);
            rule__XFunctionTypeRef__Group_0_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XFunctionTypeRef__Group_0_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XFunctionTypeRef__Group_0_1__0"


    // $ANTLR start "rule__XFunctionTypeRef__Group_0_1__0__Impl"
    // InternalXcore.g:23454:1: rule__XFunctionTypeRef__Group_0_1__0__Impl : ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 ) ) ;
    public final void rule__XFunctionTypeRef__Group_0_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:23458:1: ( ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 ) ) )
            // InternalXcore.g:23459:1: ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 ) )
            {
            // InternalXcore.g:23459:1: ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 ) )
            // InternalXcore.g:23460:1: ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXFunctionTypeRefAccess().getParamTypesAssignment_0_1_0()); 
            }
            // InternalXcore.g:23461:1: ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 )
            // InternalXcore.g:23461:2: rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXFunctionTypeRefAccess().getParamTypesAssignment_0_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XFunctionTypeRef__Group_0_1__0__Impl"


    // $ANTLR start "rule__XFunctionTypeRef__Group_0_1__1"
    // InternalXcore.g:23471:1: rule__XFunctionTypeRef__Group_0_1__1 : rule__XFunctionTypeRef__Group_0_1__1__Impl ;
    public final void rule__XFunctionTypeRef__Group_0_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:23475:1: ( rule__XFunctionTypeRef__Group_0_1__1__Impl )
            // InternalXcore.g:23476:2: rule__XFunctionTypeRef__Group_0_1__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XFunctionTypeRef__Group_0_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XFunctionTypeRef__Group_0_1__1"


    // $ANTLR start "rule__XFunctionTypeRef__Group_0_1__1__Impl"
    // InternalXcore.g:23482:1: rule__XFunctionTypeRef__Group_0_1__1__Impl : ( ( rule__XFunctionTypeRef__Group_0_1_1__0 )* ) ;
    public final void rule__XFunctionTypeRef__Group_0_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:23486:1: ( ( ( rule__XFunctionTypeRef__Group_0_1_1__0 )* ) )
            // InternalXcore.g:23487:1: ( ( rule__XFunctionTypeRef__Group_0_1_1__0 )* )
            {
            // InternalXcore.g:23487:1: ( ( rule__XFunctionTypeRef__Group_0_1_1__0 )* )
            // InternalXcore.g:23488:1: ( rule__XFunctionTypeRef__Group_0_1_1__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXFunctionTypeRefAccess().getGroup_0_1_1()); 
            }
            // InternalXcore.g:23489:1: ( rule__XFunctionTypeRef__Group_0_1_1__0 )*
            loop182:
            do {
                int alt182=2;
                int LA182_0 = input.LA(1);

                if ( (LA182_0==87) ) {
                    alt182=1;
                }


                switch (alt182) {
            	case 1 :
            	    // InternalXcore.g:23489:2: rule__XFunctionTypeRef__Group_0_1_1__0
            	    {
            	    pushFollow(FollowSets000.FOLLOW_14);
            	    rule__XFunctionTypeRef__Group_0_1_1__0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop182;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXFunctionTypeRefAccess().getGroup_0_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XFunctionTypeRef__Group_0_1__1__Impl"


    // $ANTLR start "rule__XFunctionTypeRef__Group_0_1_1__0"
    // InternalXcore.g:23503:1: rule__XFunctionTypeRef__Group_0_1_1__0 : rule__XFunctionTypeRef__Group_0_1_1__0__Impl rule__XFunctionTypeRef__Group_0_1_1__1 ;
    public final void rule__XFunctionTypeRef__Group_0_1_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:23507:1: ( rule__XFunctionTypeRef__Group_0_1_1__0__Impl rule__XFunctionTypeRef__Group_0_1_1__1 )
            // InternalXcore.g:23508:2: rule__XFunctionTypeRef__Group_0_1_1__0__Impl rule__XFunctionTypeRef__Group_0_1_1__1
            {
            pushFollow(FollowSets000.FOLLOW_22);
            rule__XFunctionTypeRef__Group_0_1_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XFunctionTypeRef__Group_0_1_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XFunctionTypeRef__Group_0_1_1__0"


    // $ANTLR start "rule__XFunctionTypeRef__Group_0_1_1__0__Impl"
    // InternalXcore.g:23515:1: rule__XFunctionTypeRef__Group_0_1_1__0__Impl : ( ',' ) ;
    public final void rule__XFunctionTypeRef__Group_0_1_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:23519:1: ( ( ',' ) )
            // InternalXcore.g:23520:1: ( ',' )
            {
            // InternalXcore.g:23520:1: ( ',' )
            // InternalXcore.g:23521:1: ','
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXFunctionTypeRefAccess().getCommaKeyword_0_1_1_0()); 
            }
            match(input,87,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXFunctionTypeRefAccess().getCommaKeyword_0_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XFunctionTypeRef__Group_0_1_1__0__Impl"


    // $ANTLR start "rule__XFunctionTypeRef__Group_0_1_1__1"
    // InternalXcore.g:23534:1: rule__XFunctionTypeRef__Group_0_1_1__1 : rule__XFunctionTypeRef__Group_0_1_1__1__Impl ;
    public final void rule__XFunctionTypeRef__Group_0_1_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:23538:1: ( rule__XFunctionTypeRef__Group_0_1_1__1__Impl )
            // InternalXcore.g:23539:2: rule__XFunctionTypeRef__Group_0_1_1__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XFunctionTypeRef__Group_0_1_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XFunctionTypeRef__Group_0_1_1__1"


    // $ANTLR start "rule__XFunctionTypeRef__Group_0_1_1__1__Impl"
    // InternalXcore.g:23545:1: rule__XFunctionTypeRef__Group_0_1_1__1__Impl : ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 ) ) ;
    public final void rule__XFunctionTypeRef__Group_0_1_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:23549:1: ( ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 ) ) )
            // InternalXcore.g:23550:1: ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 ) )
            {
            // InternalXcore.g:23550:1: ( ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 ) )
            // InternalXcore.g:23551:1: ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXFunctionTypeRefAccess().getParamTypesAssignment_0_1_1_1()); 
            }
            // InternalXcore.g:23552:1: ( rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 )
            // InternalXcore.g:23552:2: rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXFunctionTypeRefAccess().getParamTypesAssignment_0_1_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XFunctionTypeRef__Group_0_1_1__1__Impl"


    // $ANTLR start "rule__JvmParameterizedTypeReference__Group__0"
    // InternalXcore.g:23566:1: rule__JvmParameterizedTypeReference__Group__0 : rule__JvmParameterizedTypeReference__Group__0__Impl rule__JvmParameterizedTypeReference__Group__1 ;
    public final void rule__JvmParameterizedTypeReference__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:23570:1: ( rule__JvmParameterizedTypeReference__Group__0__Impl rule__JvmParameterizedTypeReference__Group__1 )
            // InternalXcore.g:23571:2: rule__JvmParameterizedTypeReference__Group__0__Impl rule__JvmParameterizedTypeReference__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_66);
            rule__JvmParameterizedTypeReference__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__JvmParameterizedTypeReference__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmParameterizedTypeReference__Group__0"


    // $ANTLR start "rule__JvmParameterizedTypeReference__Group__0__Impl"
    // InternalXcore.g:23578:1: rule__JvmParameterizedTypeReference__Group__0__Impl : ( ( rule__JvmParameterizedTypeReference__TypeAssignment_0 ) ) ;
    public final void rule__JvmParameterizedTypeReference__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:23582:1: ( ( ( rule__JvmParameterizedTypeReference__TypeAssignment_0 ) ) )
            // InternalXcore.g:23583:1: ( ( rule__JvmParameterizedTypeReference__TypeAssignment_0 ) )
            {
            // InternalXcore.g:23583:1: ( ( rule__JvmParameterizedTypeReference__TypeAssignment_0 ) )
            // InternalXcore.g:23584:1: ( rule__JvmParameterizedTypeReference__TypeAssignment_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeAssignment_0()); 
            }
            // InternalXcore.g:23585:1: ( rule__JvmParameterizedTypeReference__TypeAssignment_0 )
            // InternalXcore.g:23585:2: rule__JvmParameterizedTypeReference__TypeAssignment_0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__JvmParameterizedTypeReference__TypeAssignment_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeAssignment_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmParameterizedTypeReference__Group__0__Impl"


    // $ANTLR start "rule__JvmParameterizedTypeReference__Group__1"
    // InternalXcore.g:23595:1: rule__JvmParameterizedTypeReference__Group__1 : rule__JvmParameterizedTypeReference__Group__1__Impl ;
    public final void rule__JvmParameterizedTypeReference__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:23599:1: ( rule__JvmParameterizedTypeReference__Group__1__Impl )
            // InternalXcore.g:23600:2: rule__JvmParameterizedTypeReference__Group__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__JvmParameterizedTypeReference__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmParameterizedTypeReference__Group__1"


    // $ANTLR start "rule__JvmParameterizedTypeReference__Group__1__Impl"
    // InternalXcore.g:23606:1: rule__JvmParameterizedTypeReference__Group__1__Impl : ( ( rule__JvmParameterizedTypeReference__Group_1__0 )? ) ;
    public final void rule__JvmParameterizedTypeReference__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:23610:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1__0 )? ) )
            // InternalXcore.g:23611:1: ( ( rule__JvmParameterizedTypeReference__Group_1__0 )? )
            {
            // InternalXcore.g:23611:1: ( ( rule__JvmParameterizedTypeReference__Group_1__0 )? )
            // InternalXcore.g:23612:1: ( rule__JvmParameterizedTypeReference__Group_1__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1()); 
            }
            // InternalXcore.g:23613:1: ( rule__JvmParameterizedTypeReference__Group_1__0 )?
            int alt183=2;
            alt183 = dfa183.predict(input);
            switch (alt183) {
                case 1 :
                    // InternalXcore.g:23613:2: rule__JvmParameterizedTypeReference__Group_1__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__JvmParameterizedTypeReference__Group_1__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmParameterizedTypeReference__Group__1__Impl"


    // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1__0"
    // InternalXcore.g:23627:1: rule__JvmParameterizedTypeReference__Group_1__0 : rule__JvmParameterizedTypeReference__Group_1__0__Impl rule__JvmParameterizedTypeReference__Group_1__1 ;
    public final void rule__JvmParameterizedTypeReference__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:23631:1: ( rule__JvmParameterizedTypeReference__Group_1__0__Impl rule__JvmParameterizedTypeReference__Group_1__1 )
            // InternalXcore.g:23632:2: rule__JvmParameterizedTypeReference__Group_1__0__Impl rule__JvmParameterizedTypeReference__Group_1__1
            {
            pushFollow(FollowSets000.FOLLOW_100);
            rule__JvmParameterizedTypeReference__Group_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__JvmParameterizedTypeReference__Group_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmParameterizedTypeReference__Group_1__0"


    // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1__0__Impl"
    // InternalXcore.g:23639:1: rule__JvmParameterizedTypeReference__Group_1__0__Impl : ( ( '<' ) ) ;
    public final void rule__JvmParameterizedTypeReference__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:23643:1: ( ( ( '<' ) ) )
            // InternalXcore.g:23644:1: ( ( '<' ) )
            {
            // InternalXcore.g:23644:1: ( ( '<' ) )
            // InternalXcore.g:23645:1: ( '<' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getLessThanSignKeyword_1_0()); 
            }
            // InternalXcore.g:23646:1: ( '<' )
            // InternalXcore.g:23647:2: '<'
            {
            match(input,66,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getLessThanSignKeyword_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmParameterizedTypeReference__Group_1__0__Impl"


    // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1__1"
    // InternalXcore.g:23658:1: rule__JvmParameterizedTypeReference__Group_1__1 : rule__JvmParameterizedTypeReference__Group_1__1__Impl rule__JvmParameterizedTypeReference__Group_1__2 ;
    public final void rule__JvmParameterizedTypeReference__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:23662:1: ( rule__JvmParameterizedTypeReference__Group_1__1__Impl rule__JvmParameterizedTypeReference__Group_1__2 )
            // InternalXcore.g:23663:2: rule__JvmParameterizedTypeReference__Group_1__1__Impl rule__JvmParameterizedTypeReference__Group_1__2
            {
            pushFollow(FollowSets000.FOLLOW_25);
            rule__JvmParameterizedTypeReference__Group_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__JvmParameterizedTypeReference__Group_1__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmParameterizedTypeReference__Group_1__1"


    // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1__1__Impl"
    // InternalXcore.g:23670:1: rule__JvmParameterizedTypeReference__Group_1__1__Impl : ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 ) ) ;
    public final void rule__JvmParameterizedTypeReference__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:23674:1: ( ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 ) ) )
            // InternalXcore.g:23675:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 ) )
            {
            // InternalXcore.g:23675:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 ) )
            // InternalXcore.g:23676:1: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsAssignment_1_1()); 
            }
            // InternalXcore.g:23677:1: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 )
            // InternalXcore.g:23677:2: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsAssignment_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmParameterizedTypeReference__Group_1__1__Impl"


    // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1__2"
    // InternalXcore.g:23687:1: rule__JvmParameterizedTypeReference__Group_1__2 : rule__JvmParameterizedTypeReference__Group_1__2__Impl rule__JvmParameterizedTypeReference__Group_1__3 ;
    public final void rule__JvmParameterizedTypeReference__Group_1__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:23691:1: ( rule__JvmParameterizedTypeReference__Group_1__2__Impl rule__JvmParameterizedTypeReference__Group_1__3 )
            // InternalXcore.g:23692:2: rule__JvmParameterizedTypeReference__Group_1__2__Impl rule__JvmParameterizedTypeReference__Group_1__3
            {
            pushFollow(FollowSets000.FOLLOW_25);
            rule__JvmParameterizedTypeReference__Group_1__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__JvmParameterizedTypeReference__Group_1__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmParameterizedTypeReference__Group_1__2"


    // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1__2__Impl"
    // InternalXcore.g:23699:1: rule__JvmParameterizedTypeReference__Group_1__2__Impl : ( ( rule__JvmParameterizedTypeReference__Group_1_2__0 )* ) ;
    public final void rule__JvmParameterizedTypeReference__Group_1__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:23703:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1_2__0 )* ) )
            // InternalXcore.g:23704:1: ( ( rule__JvmParameterizedTypeReference__Group_1_2__0 )* )
            {
            // InternalXcore.g:23704:1: ( ( rule__JvmParameterizedTypeReference__Group_1_2__0 )* )
            // InternalXcore.g:23705:1: ( rule__JvmParameterizedTypeReference__Group_1_2__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_2()); 
            }
            // InternalXcore.g:23706:1: ( rule__JvmParameterizedTypeReference__Group_1_2__0 )*
            loop184:
            do {
                int alt184=2;
                int LA184_0 = input.LA(1);

                if ( (LA184_0==87) ) {
                    alt184=1;
                }


                switch (alt184) {
            	case 1 :
            	    // InternalXcore.g:23706:2: rule__JvmParameterizedTypeReference__Group_1_2__0
            	    {
            	    pushFollow(FollowSets000.FOLLOW_14);
            	    rule__JvmParameterizedTypeReference__Group_1_2__0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop184;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmParameterizedTypeReference__Group_1__2__Impl"


    // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1__3"
    // InternalXcore.g:23716:1: rule__JvmParameterizedTypeReference__Group_1__3 : rule__JvmParameterizedTypeReference__Group_1__3__Impl rule__JvmParameterizedTypeReference__Group_1__4 ;
    public final void rule__JvmParameterizedTypeReference__Group_1__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:23720:1: ( rule__JvmParameterizedTypeReference__Group_1__3__Impl rule__JvmParameterizedTypeReference__Group_1__4 )
            // InternalXcore.g:23721:2: rule__JvmParameterizedTypeReference__Group_1__3__Impl rule__JvmParameterizedTypeReference__Group_1__4
            {
            pushFollow(FollowSets000.FOLLOW_69);
            rule__JvmParameterizedTypeReference__Group_1__3__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__JvmParameterizedTypeReference__Group_1__4();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmParameterizedTypeReference__Group_1__3"


    // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1__3__Impl"
    // InternalXcore.g:23728:1: rule__JvmParameterizedTypeReference__Group_1__3__Impl : ( '>' ) ;
    public final void rule__JvmParameterizedTypeReference__Group_1__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:23732:1: ( ( '>' ) )
            // InternalXcore.g:23733:1: ( '>' )
            {
            // InternalXcore.g:23733:1: ( '>' )
            // InternalXcore.g:23734:1: '>'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGreaterThanSignKeyword_1_3()); 
            }
            match(input,65,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGreaterThanSignKeyword_1_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmParameterizedTypeReference__Group_1__3__Impl"


    // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1__4"
    // InternalXcore.g:23747:1: rule__JvmParameterizedTypeReference__Group_1__4 : rule__JvmParameterizedTypeReference__Group_1__4__Impl ;
    public final void rule__JvmParameterizedTypeReference__Group_1__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:23751:1: ( rule__JvmParameterizedTypeReference__Group_1__4__Impl )
            // InternalXcore.g:23752:2: rule__JvmParameterizedTypeReference__Group_1__4__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__JvmParameterizedTypeReference__Group_1__4__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmParameterizedTypeReference__Group_1__4"


    // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1__4__Impl"
    // InternalXcore.g:23758:1: rule__JvmParameterizedTypeReference__Group_1__4__Impl : ( ( rule__JvmParameterizedTypeReference__Group_1_4__0 )* ) ;
    public final void rule__JvmParameterizedTypeReference__Group_1__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:23762:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1_4__0 )* ) )
            // InternalXcore.g:23763:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4__0 )* )
            {
            // InternalXcore.g:23763:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4__0 )* )
            // InternalXcore.g:23764:1: ( rule__JvmParameterizedTypeReference__Group_1_4__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_4()); 
            }
            // InternalXcore.g:23765:1: ( rule__JvmParameterizedTypeReference__Group_1_4__0 )*
            loop185:
            do {
                int alt185=2;
                alt185 = dfa185.predict(input);
                switch (alt185) {
            	case 1 :
            	    // InternalXcore.g:23765:2: rule__JvmParameterizedTypeReference__Group_1_4__0
            	    {
            	    pushFollow(FollowSets000.FOLLOW_70);
            	    rule__JvmParameterizedTypeReference__Group_1_4__0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop185;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_4()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmParameterizedTypeReference__Group_1__4__Impl"


    // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_2__0"
    // InternalXcore.g:23785:1: rule__JvmParameterizedTypeReference__Group_1_2__0 : rule__JvmParameterizedTypeReference__Group_1_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_2__1 ;
    public final void rule__JvmParameterizedTypeReference__Group_1_2__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:23789:1: ( rule__JvmParameterizedTypeReference__Group_1_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_2__1 )
            // InternalXcore.g:23790:2: rule__JvmParameterizedTypeReference__Group_1_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_2__1
            {
            pushFollow(FollowSets000.FOLLOW_100);
            rule__JvmParameterizedTypeReference__Group_1_2__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__JvmParameterizedTypeReference__Group_1_2__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmParameterizedTypeReference__Group_1_2__0"


    // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_2__0__Impl"
    // InternalXcore.g:23797:1: rule__JvmParameterizedTypeReference__Group_1_2__0__Impl : ( ',' ) ;
    public final void rule__JvmParameterizedTypeReference__Group_1_2__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:23801:1: ( ( ',' ) )
            // InternalXcore.g:23802:1: ( ',' )
            {
            // InternalXcore.g:23802:1: ( ',' )
            // InternalXcore.g:23803:1: ','
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getCommaKeyword_1_2_0()); 
            }
            match(input,87,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getCommaKeyword_1_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmParameterizedTypeReference__Group_1_2__0__Impl"


    // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_2__1"
    // InternalXcore.g:23816:1: rule__JvmParameterizedTypeReference__Group_1_2__1 : rule__JvmParameterizedTypeReference__Group_1_2__1__Impl ;
    public final void rule__JvmParameterizedTypeReference__Group_1_2__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:23820:1: ( rule__JvmParameterizedTypeReference__Group_1_2__1__Impl )
            // InternalXcore.g:23821:2: rule__JvmParameterizedTypeReference__Group_1_2__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__JvmParameterizedTypeReference__Group_1_2__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmParameterizedTypeReference__Group_1_2__1"


    // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_2__1__Impl"
    // InternalXcore.g:23827:1: rule__JvmParameterizedTypeReference__Group_1_2__1__Impl : ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 ) ) ;
    public final void rule__JvmParameterizedTypeReference__Group_1_2__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:23831:1: ( ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 ) ) )
            // InternalXcore.g:23832:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 ) )
            {
            // InternalXcore.g:23832:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 ) )
            // InternalXcore.g:23833:1: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsAssignment_1_2_1()); 
            }
            // InternalXcore.g:23834:1: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 )
            // InternalXcore.g:23834:2: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsAssignment_1_2_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmParameterizedTypeReference__Group_1_2__1__Impl"


    // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4__0"
    // InternalXcore.g:23848:1: rule__JvmParameterizedTypeReference__Group_1_4__0 : rule__JvmParameterizedTypeReference__Group_1_4__0__Impl rule__JvmParameterizedTypeReference__Group_1_4__1 ;
    public final void rule__JvmParameterizedTypeReference__Group_1_4__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:23852:1: ( rule__JvmParameterizedTypeReference__Group_1_4__0__Impl rule__JvmParameterizedTypeReference__Group_1_4__1 )
            // InternalXcore.g:23853:2: rule__JvmParameterizedTypeReference__Group_1_4__0__Impl rule__JvmParameterizedTypeReference__Group_1_4__1
            {
            pushFollow(FollowSets000.FOLLOW_6);
            rule__JvmParameterizedTypeReference__Group_1_4__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__JvmParameterizedTypeReference__Group_1_4__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmParameterizedTypeReference__Group_1_4__0"


    // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4__0__Impl"
    // InternalXcore.g:23860:1: rule__JvmParameterizedTypeReference__Group_1_4__0__Impl : ( ( rule__JvmParameterizedTypeReference__Group_1_4_0__0 ) ) ;
    public final void rule__JvmParameterizedTypeReference__Group_1_4__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:23864:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1_4_0__0 ) ) )
            // InternalXcore.g:23865:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_0__0 ) )
            {
            // InternalXcore.g:23865:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_0__0 ) )
            // InternalXcore.g:23866:1: ( rule__JvmParameterizedTypeReference__Group_1_4_0__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_4_0()); 
            }
            // InternalXcore.g:23867:1: ( rule__JvmParameterizedTypeReference__Group_1_4_0__0 )
            // InternalXcore.g:23867:2: rule__JvmParameterizedTypeReference__Group_1_4_0__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__JvmParameterizedTypeReference__Group_1_4_0__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_4_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmParameterizedTypeReference__Group_1_4__0__Impl"


    // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4__1"
    // InternalXcore.g:23877:1: rule__JvmParameterizedTypeReference__Group_1_4__1 : rule__JvmParameterizedTypeReference__Group_1_4__1__Impl rule__JvmParameterizedTypeReference__Group_1_4__2 ;
    public final void rule__JvmParameterizedTypeReference__Group_1_4__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:23881:1: ( rule__JvmParameterizedTypeReference__Group_1_4__1__Impl rule__JvmParameterizedTypeReference__Group_1_4__2 )
            // InternalXcore.g:23882:2: rule__JvmParameterizedTypeReference__Group_1_4__1__Impl rule__JvmParameterizedTypeReference__Group_1_4__2
            {
            pushFollow(FollowSets000.FOLLOW_66);
            rule__JvmParameterizedTypeReference__Group_1_4__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__JvmParameterizedTypeReference__Group_1_4__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmParameterizedTypeReference__Group_1_4__1"


    // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4__1__Impl"
    // InternalXcore.g:23889:1: rule__JvmParameterizedTypeReference__Group_1_4__1__Impl : ( ( rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1 ) ) ;
    public final void rule__JvmParameterizedTypeReference__Group_1_4__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:23893:1: ( ( ( rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1 ) ) )
            // InternalXcore.g:23894:1: ( ( rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1 ) )
            {
            // InternalXcore.g:23894:1: ( ( rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1 ) )
            // InternalXcore.g:23895:1: ( rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeAssignment_1_4_1()); 
            }
            // InternalXcore.g:23896:1: ( rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1 )
            // InternalXcore.g:23896:2: rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeAssignment_1_4_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmParameterizedTypeReference__Group_1_4__1__Impl"


    // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4__2"
    // InternalXcore.g:23906:1: rule__JvmParameterizedTypeReference__Group_1_4__2 : rule__JvmParameterizedTypeReference__Group_1_4__2__Impl ;
    public final void rule__JvmParameterizedTypeReference__Group_1_4__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:23910:1: ( rule__JvmParameterizedTypeReference__Group_1_4__2__Impl )
            // InternalXcore.g:23911:2: rule__JvmParameterizedTypeReference__Group_1_4__2__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__JvmParameterizedTypeReference__Group_1_4__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmParameterizedTypeReference__Group_1_4__2"


    // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4__2__Impl"
    // InternalXcore.g:23917:1: rule__JvmParameterizedTypeReference__Group_1_4__2__Impl : ( ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )? ) ;
    public final void rule__JvmParameterizedTypeReference__Group_1_4__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:23921:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )? ) )
            // InternalXcore.g:23922:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )? )
            {
            // InternalXcore.g:23922:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )? )
            // InternalXcore.g:23923:1: ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_4_2()); 
            }
            // InternalXcore.g:23924:1: ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )?
            int alt186=2;
            alt186 = dfa186.predict(input);
            switch (alt186) {
                case 1 :
                    // InternalXcore.g:23924:2: rule__JvmParameterizedTypeReference__Group_1_4_2__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__JvmParameterizedTypeReference__Group_1_4_2__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_4_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmParameterizedTypeReference__Group_1_4__2__Impl"


    // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_0__0"
    // InternalXcore.g:23940:1: rule__JvmParameterizedTypeReference__Group_1_4_0__0 : rule__JvmParameterizedTypeReference__Group_1_4_0__0__Impl ;
    public final void rule__JvmParameterizedTypeReference__Group_1_4_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:23944:1: ( rule__JvmParameterizedTypeReference__Group_1_4_0__0__Impl )
            // InternalXcore.g:23945:2: rule__JvmParameterizedTypeReference__Group_1_4_0__0__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__JvmParameterizedTypeReference__Group_1_4_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmParameterizedTypeReference__Group_1_4_0__0"


    // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_0__0__Impl"
    // InternalXcore.g:23951:1: rule__JvmParameterizedTypeReference__Group_1_4_0__0__Impl : ( ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0 ) ) ;
    public final void rule__JvmParameterizedTypeReference__Group_1_4_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:23955:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0 ) ) )
            // InternalXcore.g:23956:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0 ) )
            {
            // InternalXcore.g:23956:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0 ) )
            // InternalXcore.g:23957:1: ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_4_0_0()); 
            }
            // InternalXcore.g:23958:1: ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0 )
            // InternalXcore.g:23958:2: rule__JvmParameterizedTypeReference__Group_1_4_0_0__0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__JvmParameterizedTypeReference__Group_1_4_0_0__0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_4_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmParameterizedTypeReference__Group_1_4_0__0__Impl"


    // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_0_0__0"
    // InternalXcore.g:23970:1: rule__JvmParameterizedTypeReference__Group_1_4_0_0__0 : rule__JvmParameterizedTypeReference__Group_1_4_0_0__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_0_0__1 ;
    public final void rule__JvmParameterizedTypeReference__Group_1_4_0_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:23974:1: ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_0_0__1 )
            // InternalXcore.g:23975:2: rule__JvmParameterizedTypeReference__Group_1_4_0_0__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_0_0__1
            {
            pushFollow(FollowSets000.FOLLOW_69);
            rule__JvmParameterizedTypeReference__Group_1_4_0_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__JvmParameterizedTypeReference__Group_1_4_0_0__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmParameterizedTypeReference__Group_1_4_0_0__0"


    // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_0_0__0__Impl"
    // InternalXcore.g:23982:1: rule__JvmParameterizedTypeReference__Group_1_4_0_0__0__Impl : ( () ) ;
    public final void rule__JvmParameterizedTypeReference__Group_1_4_0_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:23986:1: ( ( () ) )
            // InternalXcore.g:23987:1: ( () )
            {
            // InternalXcore.g:23987:1: ( () )
            // InternalXcore.g:23988:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getJvmInnerTypeReferenceOuterAction_1_4_0_0_0()); 
            }
            // InternalXcore.g:23989:1: ()
            // InternalXcore.g:23991:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getJvmInnerTypeReferenceOuterAction_1_4_0_0_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmParameterizedTypeReference__Group_1_4_0_0__0__Impl"


    // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_0_0__1"
    // InternalXcore.g:24001:1: rule__JvmParameterizedTypeReference__Group_1_4_0_0__1 : rule__JvmParameterizedTypeReference__Group_1_4_0_0__1__Impl ;
    public final void rule__JvmParameterizedTypeReference__Group_1_4_0_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:24005:1: ( rule__JvmParameterizedTypeReference__Group_1_4_0_0__1__Impl )
            // InternalXcore.g:24006:2: rule__JvmParameterizedTypeReference__Group_1_4_0_0__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__JvmParameterizedTypeReference__Group_1_4_0_0__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmParameterizedTypeReference__Group_1_4_0_0__1"


    // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_0_0__1__Impl"
    // InternalXcore.g:24012:1: rule__JvmParameterizedTypeReference__Group_1_4_0_0__1__Impl : ( '.' ) ;
    public final void rule__JvmParameterizedTypeReference__Group_1_4_0_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:24016:1: ( ( '.' ) )
            // InternalXcore.g:24017:1: ( '.' )
            {
            // InternalXcore.g:24017:1: ( '.' )
            // InternalXcore.g:24018:1: '.'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getFullStopKeyword_1_4_0_0_1()); 
            }
            match(input,80,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getFullStopKeyword_1_4_0_0_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmParameterizedTypeReference__Group_1_4_0_0__1__Impl"


    // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_2__0"
    // InternalXcore.g:24035:1: rule__JvmParameterizedTypeReference__Group_1_4_2__0 : rule__JvmParameterizedTypeReference__Group_1_4_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__1 ;
    public final void rule__JvmParameterizedTypeReference__Group_1_4_2__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:24039:1: ( rule__JvmParameterizedTypeReference__Group_1_4_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__1 )
            // InternalXcore.g:24040:2: rule__JvmParameterizedTypeReference__Group_1_4_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__1
            {
            pushFollow(FollowSets000.FOLLOW_100);
            rule__JvmParameterizedTypeReference__Group_1_4_2__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__JvmParameterizedTypeReference__Group_1_4_2__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmParameterizedTypeReference__Group_1_4_2__0"


    // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_2__0__Impl"
    // InternalXcore.g:24047:1: rule__JvmParameterizedTypeReference__Group_1_4_2__0__Impl : ( ( '<' ) ) ;
    public final void rule__JvmParameterizedTypeReference__Group_1_4_2__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:24051:1: ( ( ( '<' ) ) )
            // InternalXcore.g:24052:1: ( ( '<' ) )
            {
            // InternalXcore.g:24052:1: ( ( '<' ) )
            // InternalXcore.g:24053:1: ( '<' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getLessThanSignKeyword_1_4_2_0()); 
            }
            // InternalXcore.g:24054:1: ( '<' )
            // InternalXcore.g:24055:2: '<'
            {
            match(input,66,FollowSets000.FOLLOW_2); if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getLessThanSignKeyword_1_4_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmParameterizedTypeReference__Group_1_4_2__0__Impl"


    // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_2__1"
    // InternalXcore.g:24066:1: rule__JvmParameterizedTypeReference__Group_1_4_2__1 : rule__JvmParameterizedTypeReference__Group_1_4_2__1__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__2 ;
    public final void rule__JvmParameterizedTypeReference__Group_1_4_2__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:24070:1: ( rule__JvmParameterizedTypeReference__Group_1_4_2__1__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__2 )
            // InternalXcore.g:24071:2: rule__JvmParameterizedTypeReference__Group_1_4_2__1__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__2
            {
            pushFollow(FollowSets000.FOLLOW_25);
            rule__JvmParameterizedTypeReference__Group_1_4_2__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__JvmParameterizedTypeReference__Group_1_4_2__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmParameterizedTypeReference__Group_1_4_2__1"


    // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_2__1__Impl"
    // InternalXcore.g:24078:1: rule__JvmParameterizedTypeReference__Group_1_4_2__1__Impl : ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1 ) ) ;
    public final void rule__JvmParameterizedTypeReference__Group_1_4_2__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:24082:1: ( ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1 ) ) )
            // InternalXcore.g:24083:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1 ) )
            {
            // InternalXcore.g:24083:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1 ) )
            // InternalXcore.g:24084:1: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsAssignment_1_4_2_1()); 
            }
            // InternalXcore.g:24085:1: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1 )
            // InternalXcore.g:24085:2: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsAssignment_1_4_2_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmParameterizedTypeReference__Group_1_4_2__1__Impl"


    // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_2__2"
    // InternalXcore.g:24095:1: rule__JvmParameterizedTypeReference__Group_1_4_2__2 : rule__JvmParameterizedTypeReference__Group_1_4_2__2__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__3 ;
    public final void rule__JvmParameterizedTypeReference__Group_1_4_2__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:24099:1: ( rule__JvmParameterizedTypeReference__Group_1_4_2__2__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__3 )
            // InternalXcore.g:24100:2: rule__JvmParameterizedTypeReference__Group_1_4_2__2__Impl rule__JvmParameterizedTypeReference__Group_1_4_2__3
            {
            pushFollow(FollowSets000.FOLLOW_25);
            rule__JvmParameterizedTypeReference__Group_1_4_2__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__JvmParameterizedTypeReference__Group_1_4_2__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmParameterizedTypeReference__Group_1_4_2__2"


    // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_2__2__Impl"
    // InternalXcore.g:24107:1: rule__JvmParameterizedTypeReference__Group_1_4_2__2__Impl : ( ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0 )* ) ;
    public final void rule__JvmParameterizedTypeReference__Group_1_4_2__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:24111:1: ( ( ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0 )* ) )
            // InternalXcore.g:24112:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0 )* )
            {
            // InternalXcore.g:24112:1: ( ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0 )* )
            // InternalXcore.g:24113:1: ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_4_2_2()); 
            }
            // InternalXcore.g:24114:1: ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0 )*
            loop187:
            do {
                int alt187=2;
                int LA187_0 = input.LA(1);

                if ( (LA187_0==87) ) {
                    alt187=1;
                }


                switch (alt187) {
            	case 1 :
            	    // InternalXcore.g:24114:2: rule__JvmParameterizedTypeReference__Group_1_4_2_2__0
            	    {
            	    pushFollow(FollowSets000.FOLLOW_14);
            	    rule__JvmParameterizedTypeReference__Group_1_4_2_2__0();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop187;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup_1_4_2_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmParameterizedTypeReference__Group_1_4_2__2__Impl"


    // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_2__3"
    // InternalXcore.g:24124:1: rule__JvmParameterizedTypeReference__Group_1_4_2__3 : rule__JvmParameterizedTypeReference__Group_1_4_2__3__Impl ;
    public final void rule__JvmParameterizedTypeReference__Group_1_4_2__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:24128:1: ( rule__JvmParameterizedTypeReference__Group_1_4_2__3__Impl )
            // InternalXcore.g:24129:2: rule__JvmParameterizedTypeReference__Group_1_4_2__3__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__JvmParameterizedTypeReference__Group_1_4_2__3__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmParameterizedTypeReference__Group_1_4_2__3"


    // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_2__3__Impl"
    // InternalXcore.g:24135:1: rule__JvmParameterizedTypeReference__Group_1_4_2__3__Impl : ( '>' ) ;
    public final void rule__JvmParameterizedTypeReference__Group_1_4_2__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:24139:1: ( ( '>' ) )
            // InternalXcore.g:24140:1: ( '>' )
            {
            // InternalXcore.g:24140:1: ( '>' )
            // InternalXcore.g:24141:1: '>'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGreaterThanSignKeyword_1_4_2_3()); 
            }
            match(input,65,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGreaterThanSignKeyword_1_4_2_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmParameterizedTypeReference__Group_1_4_2__3__Impl"


    // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_2_2__0"
    // InternalXcore.g:24162:1: rule__JvmParameterizedTypeReference__Group_1_4_2_2__0 : rule__JvmParameterizedTypeReference__Group_1_4_2_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_2_2__1 ;
    public final void rule__JvmParameterizedTypeReference__Group_1_4_2_2__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:24166:1: ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_2_2__1 )
            // InternalXcore.g:24167:2: rule__JvmParameterizedTypeReference__Group_1_4_2_2__0__Impl rule__JvmParameterizedTypeReference__Group_1_4_2_2__1
            {
            pushFollow(FollowSets000.FOLLOW_100);
            rule__JvmParameterizedTypeReference__Group_1_4_2_2__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__JvmParameterizedTypeReference__Group_1_4_2_2__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmParameterizedTypeReference__Group_1_4_2_2__0"


    // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_2_2__0__Impl"
    // InternalXcore.g:24174:1: rule__JvmParameterizedTypeReference__Group_1_4_2_2__0__Impl : ( ',' ) ;
    public final void rule__JvmParameterizedTypeReference__Group_1_4_2_2__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:24178:1: ( ( ',' ) )
            // InternalXcore.g:24179:1: ( ',' )
            {
            // InternalXcore.g:24179:1: ( ',' )
            // InternalXcore.g:24180:1: ','
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getCommaKeyword_1_4_2_2_0()); 
            }
            match(input,87,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getCommaKeyword_1_4_2_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmParameterizedTypeReference__Group_1_4_2_2__0__Impl"


    // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_2_2__1"
    // InternalXcore.g:24193:1: rule__JvmParameterizedTypeReference__Group_1_4_2_2__1 : rule__JvmParameterizedTypeReference__Group_1_4_2_2__1__Impl ;
    public final void rule__JvmParameterizedTypeReference__Group_1_4_2_2__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:24197:1: ( rule__JvmParameterizedTypeReference__Group_1_4_2_2__1__Impl )
            // InternalXcore.g:24198:2: rule__JvmParameterizedTypeReference__Group_1_4_2_2__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__JvmParameterizedTypeReference__Group_1_4_2_2__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmParameterizedTypeReference__Group_1_4_2_2__1"


    // $ANTLR start "rule__JvmParameterizedTypeReference__Group_1_4_2_2__1__Impl"
    // InternalXcore.g:24204:1: rule__JvmParameterizedTypeReference__Group_1_4_2_2__1__Impl : ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1 ) ) ;
    public final void rule__JvmParameterizedTypeReference__Group_1_4_2_2__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:24208:1: ( ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1 ) ) )
            // InternalXcore.g:24209:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1 ) )
            {
            // InternalXcore.g:24209:1: ( ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1 ) )
            // InternalXcore.g:24210:1: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsAssignment_1_4_2_2_1()); 
            }
            // InternalXcore.g:24211:1: ( rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1 )
            // InternalXcore.g:24211:2: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsAssignment_1_4_2_2_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmParameterizedTypeReference__Group_1_4_2_2__1__Impl"


    // $ANTLR start "rule__JvmWildcardTypeReference__Group__0"
    // InternalXcore.g:24225:1: rule__JvmWildcardTypeReference__Group__0 : rule__JvmWildcardTypeReference__Group__0__Impl rule__JvmWildcardTypeReference__Group__1 ;
    public final void rule__JvmWildcardTypeReference__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:24229:1: ( rule__JvmWildcardTypeReference__Group__0__Impl rule__JvmWildcardTypeReference__Group__1 )
            // InternalXcore.g:24230:2: rule__JvmWildcardTypeReference__Group__0__Impl rule__JvmWildcardTypeReference__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_100);
            rule__JvmWildcardTypeReference__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__JvmWildcardTypeReference__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmWildcardTypeReference__Group__0"


    // $ANTLR start "rule__JvmWildcardTypeReference__Group__0__Impl"
    // InternalXcore.g:24237:1: rule__JvmWildcardTypeReference__Group__0__Impl : ( () ) ;
    public final void rule__JvmWildcardTypeReference__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:24241:1: ( ( () ) )
            // InternalXcore.g:24242:1: ( () )
            {
            // InternalXcore.g:24242:1: ( () )
            // InternalXcore.g:24243:1: ()
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmWildcardTypeReferenceAccess().getJvmWildcardTypeReferenceAction_0()); 
            }
            // InternalXcore.g:24244:1: ()
            // InternalXcore.g:24246:1: 
            {
            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getJvmWildcardTypeReferenceAccess().getJvmWildcardTypeReferenceAction_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmWildcardTypeReference__Group__0__Impl"


    // $ANTLR start "rule__JvmWildcardTypeReference__Group__1"
    // InternalXcore.g:24256:1: rule__JvmWildcardTypeReference__Group__1 : rule__JvmWildcardTypeReference__Group__1__Impl rule__JvmWildcardTypeReference__Group__2 ;
    public final void rule__JvmWildcardTypeReference__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:24260:1: ( rule__JvmWildcardTypeReference__Group__1__Impl rule__JvmWildcardTypeReference__Group__2 )
            // InternalXcore.g:24261:2: rule__JvmWildcardTypeReference__Group__1__Impl rule__JvmWildcardTypeReference__Group__2
            {
            pushFollow(FollowSets000.FOLLOW_68);
            rule__JvmWildcardTypeReference__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__JvmWildcardTypeReference__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmWildcardTypeReference__Group__1"


    // $ANTLR start "rule__JvmWildcardTypeReference__Group__1__Impl"
    // InternalXcore.g:24268:1: rule__JvmWildcardTypeReference__Group__1__Impl : ( '?' ) ;
    public final void rule__JvmWildcardTypeReference__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:24272:1: ( ( '?' ) )
            // InternalXcore.g:24273:1: ( '?' )
            {
            // InternalXcore.g:24273:1: ( '?' )
            // InternalXcore.g:24274:1: '?'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmWildcardTypeReferenceAccess().getQuestionMarkKeyword_1()); 
            }
            match(input,17,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getJvmWildcardTypeReferenceAccess().getQuestionMarkKeyword_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmWildcardTypeReference__Group__1__Impl"


    // $ANTLR start "rule__JvmWildcardTypeReference__Group__2"
    // InternalXcore.g:24287:1: rule__JvmWildcardTypeReference__Group__2 : rule__JvmWildcardTypeReference__Group__2__Impl ;
    public final void rule__JvmWildcardTypeReference__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:24291:1: ( rule__JvmWildcardTypeReference__Group__2__Impl )
            // InternalXcore.g:24292:2: rule__JvmWildcardTypeReference__Group__2__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__JvmWildcardTypeReference__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmWildcardTypeReference__Group__2"


    // $ANTLR start "rule__JvmWildcardTypeReference__Group__2__Impl"
    // InternalXcore.g:24298:1: rule__JvmWildcardTypeReference__Group__2__Impl : ( ( rule__JvmWildcardTypeReference__Alternatives_2 )? ) ;
    public final void rule__JvmWildcardTypeReference__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:24302:1: ( ( ( rule__JvmWildcardTypeReference__Alternatives_2 )? ) )
            // InternalXcore.g:24303:1: ( ( rule__JvmWildcardTypeReference__Alternatives_2 )? )
            {
            // InternalXcore.g:24303:1: ( ( rule__JvmWildcardTypeReference__Alternatives_2 )? )
            // InternalXcore.g:24304:1: ( rule__JvmWildcardTypeReference__Alternatives_2 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmWildcardTypeReferenceAccess().getAlternatives_2()); 
            }
            // InternalXcore.g:24305:1: ( rule__JvmWildcardTypeReference__Alternatives_2 )?
            int alt188=2;
            int LA188_0 = input.LA(1);

            if ( (LA188_0==34||LA188_0==82) ) {
                alt188=1;
            }
            switch (alt188) {
                case 1 :
                    // InternalXcore.g:24305:2: rule__JvmWildcardTypeReference__Alternatives_2
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__JvmWildcardTypeReference__Alternatives_2();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getJvmWildcardTypeReferenceAccess().getAlternatives_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmWildcardTypeReference__Group__2__Impl"


    // $ANTLR start "rule__JvmWildcardTypeReference__Group_2_0__0"
    // InternalXcore.g:24321:1: rule__JvmWildcardTypeReference__Group_2_0__0 : rule__JvmWildcardTypeReference__Group_2_0__0__Impl rule__JvmWildcardTypeReference__Group_2_0__1 ;
    public final void rule__JvmWildcardTypeReference__Group_2_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:24325:1: ( rule__JvmWildcardTypeReference__Group_2_0__0__Impl rule__JvmWildcardTypeReference__Group_2_0__1 )
            // InternalXcore.g:24326:2: rule__JvmWildcardTypeReference__Group_2_0__0__Impl rule__JvmWildcardTypeReference__Group_2_0__1
            {
            pushFollow(FollowSets000.FOLLOW_58);
            rule__JvmWildcardTypeReference__Group_2_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__JvmWildcardTypeReference__Group_2_0__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmWildcardTypeReference__Group_2_0__0"


    // $ANTLR start "rule__JvmWildcardTypeReference__Group_2_0__0__Impl"
    // InternalXcore.g:24333:1: rule__JvmWildcardTypeReference__Group_2_0__0__Impl : ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0 ) ) ;
    public final void rule__JvmWildcardTypeReference__Group_2_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:24337:1: ( ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0 ) ) )
            // InternalXcore.g:24338:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0 ) )
            {
            // InternalXcore.g:24338:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0 ) )
            // InternalXcore.g:24339:1: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsAssignment_2_0_0()); 
            }
            // InternalXcore.g:24340:1: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0 )
            // InternalXcore.g:24340:2: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsAssignment_2_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmWildcardTypeReference__Group_2_0__0__Impl"


    // $ANTLR start "rule__JvmWildcardTypeReference__Group_2_0__1"
    // InternalXcore.g:24350:1: rule__JvmWildcardTypeReference__Group_2_0__1 : rule__JvmWildcardTypeReference__Group_2_0__1__Impl ;
    public final void rule__JvmWildcardTypeReference__Group_2_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:24354:1: ( rule__JvmWildcardTypeReference__Group_2_0__1__Impl )
            // InternalXcore.g:24355:2: rule__JvmWildcardTypeReference__Group_2_0__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__JvmWildcardTypeReference__Group_2_0__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmWildcardTypeReference__Group_2_0__1"


    // $ANTLR start "rule__JvmWildcardTypeReference__Group_2_0__1__Impl"
    // InternalXcore.g:24361:1: rule__JvmWildcardTypeReference__Group_2_0__1__Impl : ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1 )* ) ;
    public final void rule__JvmWildcardTypeReference__Group_2_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:24365:1: ( ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1 )* ) )
            // InternalXcore.g:24366:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1 )* )
            {
            // InternalXcore.g:24366:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1 )* )
            // InternalXcore.g:24367:1: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsAssignment_2_0_1()); 
            }
            // InternalXcore.g:24368:1: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1 )*
            loop189:
            do {
                int alt189=2;
                int LA189_0 = input.LA(1);

                if ( (LA189_0==91) ) {
                    alt189=1;
                }


                switch (alt189) {
            	case 1 :
            	    // InternalXcore.g:24368:2: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1
            	    {
            	    pushFollow(FollowSets000.FOLLOW_59);
            	    rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop189;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsAssignment_2_0_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmWildcardTypeReference__Group_2_0__1__Impl"


    // $ANTLR start "rule__JvmWildcardTypeReference__Group_2_1__0"
    // InternalXcore.g:24382:1: rule__JvmWildcardTypeReference__Group_2_1__0 : rule__JvmWildcardTypeReference__Group_2_1__0__Impl rule__JvmWildcardTypeReference__Group_2_1__1 ;
    public final void rule__JvmWildcardTypeReference__Group_2_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:24386:1: ( rule__JvmWildcardTypeReference__Group_2_1__0__Impl rule__JvmWildcardTypeReference__Group_2_1__1 )
            // InternalXcore.g:24387:2: rule__JvmWildcardTypeReference__Group_2_1__0__Impl rule__JvmWildcardTypeReference__Group_2_1__1
            {
            pushFollow(FollowSets000.FOLLOW_58);
            rule__JvmWildcardTypeReference__Group_2_1__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__JvmWildcardTypeReference__Group_2_1__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmWildcardTypeReference__Group_2_1__0"


    // $ANTLR start "rule__JvmWildcardTypeReference__Group_2_1__0__Impl"
    // InternalXcore.g:24394:1: rule__JvmWildcardTypeReference__Group_2_1__0__Impl : ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0 ) ) ;
    public final void rule__JvmWildcardTypeReference__Group_2_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:24398:1: ( ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0 ) ) )
            // InternalXcore.g:24399:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0 ) )
            {
            // InternalXcore.g:24399:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0 ) )
            // InternalXcore.g:24400:1: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsAssignment_2_1_0()); 
            }
            // InternalXcore.g:24401:1: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0 )
            // InternalXcore.g:24401:2: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsAssignment_2_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmWildcardTypeReference__Group_2_1__0__Impl"


    // $ANTLR start "rule__JvmWildcardTypeReference__Group_2_1__1"
    // InternalXcore.g:24411:1: rule__JvmWildcardTypeReference__Group_2_1__1 : rule__JvmWildcardTypeReference__Group_2_1__1__Impl ;
    public final void rule__JvmWildcardTypeReference__Group_2_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:24415:1: ( rule__JvmWildcardTypeReference__Group_2_1__1__Impl )
            // InternalXcore.g:24416:2: rule__JvmWildcardTypeReference__Group_2_1__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__JvmWildcardTypeReference__Group_2_1__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmWildcardTypeReference__Group_2_1__1"


    // $ANTLR start "rule__JvmWildcardTypeReference__Group_2_1__1__Impl"
    // InternalXcore.g:24422:1: rule__JvmWildcardTypeReference__Group_2_1__1__Impl : ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1 )* ) ;
    public final void rule__JvmWildcardTypeReference__Group_2_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:24426:1: ( ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1 )* ) )
            // InternalXcore.g:24427:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1 )* )
            {
            // InternalXcore.g:24427:1: ( ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1 )* )
            // InternalXcore.g:24428:1: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1 )*
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsAssignment_2_1_1()); 
            }
            // InternalXcore.g:24429:1: ( rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1 )*
            loop190:
            do {
                int alt190=2;
                int LA190_0 = input.LA(1);

                if ( (LA190_0==91) ) {
                    alt190=1;
                }


                switch (alt190) {
            	case 1 :
            	    // InternalXcore.g:24429:2: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1
            	    {
            	    pushFollow(FollowSets000.FOLLOW_59);
            	    rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1();

            	    state._fsp--;
            	    if (state.failed) return ;

            	    }
            	    break;

            	default :
            	    break loop190;
                }
            } while (true);

            if ( state.backtracking==0 ) {
               after(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsAssignment_2_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmWildcardTypeReference__Group_2_1__1__Impl"


    // $ANTLR start "rule__JvmUpperBound__Group__0"
    // InternalXcore.g:24443:1: rule__JvmUpperBound__Group__0 : rule__JvmUpperBound__Group__0__Impl rule__JvmUpperBound__Group__1 ;
    public final void rule__JvmUpperBound__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:24447:1: ( rule__JvmUpperBound__Group__0__Impl rule__JvmUpperBound__Group__1 )
            // InternalXcore.g:24448:2: rule__JvmUpperBound__Group__0__Impl rule__JvmUpperBound__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_22);
            rule__JvmUpperBound__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__JvmUpperBound__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmUpperBound__Group__0"


    // $ANTLR start "rule__JvmUpperBound__Group__0__Impl"
    // InternalXcore.g:24455:1: rule__JvmUpperBound__Group__0__Impl : ( 'extends' ) ;
    public final void rule__JvmUpperBound__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:24459:1: ( ( 'extends' ) )
            // InternalXcore.g:24460:1: ( 'extends' )
            {
            // InternalXcore.g:24460:1: ( 'extends' )
            // InternalXcore.g:24461:1: 'extends'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmUpperBoundAccess().getExtendsKeyword_0()); 
            }
            match(input,34,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getJvmUpperBoundAccess().getExtendsKeyword_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmUpperBound__Group__0__Impl"


    // $ANTLR start "rule__JvmUpperBound__Group__1"
    // InternalXcore.g:24474:1: rule__JvmUpperBound__Group__1 : rule__JvmUpperBound__Group__1__Impl ;
    public final void rule__JvmUpperBound__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:24478:1: ( rule__JvmUpperBound__Group__1__Impl )
            // InternalXcore.g:24479:2: rule__JvmUpperBound__Group__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__JvmUpperBound__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmUpperBound__Group__1"


    // $ANTLR start "rule__JvmUpperBound__Group__1__Impl"
    // InternalXcore.g:24485:1: rule__JvmUpperBound__Group__1__Impl : ( ( rule__JvmUpperBound__TypeReferenceAssignment_1 ) ) ;
    public final void rule__JvmUpperBound__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:24489:1: ( ( ( rule__JvmUpperBound__TypeReferenceAssignment_1 ) ) )
            // InternalXcore.g:24490:1: ( ( rule__JvmUpperBound__TypeReferenceAssignment_1 ) )
            {
            // InternalXcore.g:24490:1: ( ( rule__JvmUpperBound__TypeReferenceAssignment_1 ) )
            // InternalXcore.g:24491:1: ( rule__JvmUpperBound__TypeReferenceAssignment_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmUpperBoundAccess().getTypeReferenceAssignment_1()); 
            }
            // InternalXcore.g:24492:1: ( rule__JvmUpperBound__TypeReferenceAssignment_1 )
            // InternalXcore.g:24492:2: rule__JvmUpperBound__TypeReferenceAssignment_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__JvmUpperBound__TypeReferenceAssignment_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getJvmUpperBoundAccess().getTypeReferenceAssignment_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmUpperBound__Group__1__Impl"


    // $ANTLR start "rule__JvmUpperBoundAnded__Group__0"
    // InternalXcore.g:24506:1: rule__JvmUpperBoundAnded__Group__0 : rule__JvmUpperBoundAnded__Group__0__Impl rule__JvmUpperBoundAnded__Group__1 ;
    public final void rule__JvmUpperBoundAnded__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:24510:1: ( rule__JvmUpperBoundAnded__Group__0__Impl rule__JvmUpperBoundAnded__Group__1 )
            // InternalXcore.g:24511:2: rule__JvmUpperBoundAnded__Group__0__Impl rule__JvmUpperBoundAnded__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_22);
            rule__JvmUpperBoundAnded__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__JvmUpperBoundAnded__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmUpperBoundAnded__Group__0"


    // $ANTLR start "rule__JvmUpperBoundAnded__Group__0__Impl"
    // InternalXcore.g:24518:1: rule__JvmUpperBoundAnded__Group__0__Impl : ( '&' ) ;
    public final void rule__JvmUpperBoundAnded__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:24522:1: ( ( '&' ) )
            // InternalXcore.g:24523:1: ( '&' )
            {
            // InternalXcore.g:24523:1: ( '&' )
            // InternalXcore.g:24524:1: '&'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmUpperBoundAndedAccess().getAmpersandKeyword_0()); 
            }
            match(input,91,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getJvmUpperBoundAndedAccess().getAmpersandKeyword_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmUpperBoundAnded__Group__0__Impl"


    // $ANTLR start "rule__JvmUpperBoundAnded__Group__1"
    // InternalXcore.g:24537:1: rule__JvmUpperBoundAnded__Group__1 : rule__JvmUpperBoundAnded__Group__1__Impl ;
    public final void rule__JvmUpperBoundAnded__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:24541:1: ( rule__JvmUpperBoundAnded__Group__1__Impl )
            // InternalXcore.g:24542:2: rule__JvmUpperBoundAnded__Group__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__JvmUpperBoundAnded__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmUpperBoundAnded__Group__1"


    // $ANTLR start "rule__JvmUpperBoundAnded__Group__1__Impl"
    // InternalXcore.g:24548:1: rule__JvmUpperBoundAnded__Group__1__Impl : ( ( rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 ) ) ;
    public final void rule__JvmUpperBoundAnded__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:24552:1: ( ( ( rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 ) ) )
            // InternalXcore.g:24553:1: ( ( rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 ) )
            {
            // InternalXcore.g:24553:1: ( ( rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 ) )
            // InternalXcore.g:24554:1: ( rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmUpperBoundAndedAccess().getTypeReferenceAssignment_1()); 
            }
            // InternalXcore.g:24555:1: ( rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 )
            // InternalXcore.g:24555:2: rule__JvmUpperBoundAnded__TypeReferenceAssignment_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__JvmUpperBoundAnded__TypeReferenceAssignment_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getJvmUpperBoundAndedAccess().getTypeReferenceAssignment_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmUpperBoundAnded__Group__1__Impl"


    // $ANTLR start "rule__JvmLowerBound__Group__0"
    // InternalXcore.g:24569:1: rule__JvmLowerBound__Group__0 : rule__JvmLowerBound__Group__0__Impl rule__JvmLowerBound__Group__1 ;
    public final void rule__JvmLowerBound__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:24573:1: ( rule__JvmLowerBound__Group__0__Impl rule__JvmLowerBound__Group__1 )
            // InternalXcore.g:24574:2: rule__JvmLowerBound__Group__0__Impl rule__JvmLowerBound__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_22);
            rule__JvmLowerBound__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__JvmLowerBound__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmLowerBound__Group__0"


    // $ANTLR start "rule__JvmLowerBound__Group__0__Impl"
    // InternalXcore.g:24581:1: rule__JvmLowerBound__Group__0__Impl : ( 'super' ) ;
    public final void rule__JvmLowerBound__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:24585:1: ( ( 'super' ) )
            // InternalXcore.g:24586:1: ( 'super' )
            {
            // InternalXcore.g:24586:1: ( 'super' )
            // InternalXcore.g:24587:1: 'super'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmLowerBoundAccess().getSuperKeyword_0()); 
            }
            match(input,82,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getJvmLowerBoundAccess().getSuperKeyword_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmLowerBound__Group__0__Impl"


    // $ANTLR start "rule__JvmLowerBound__Group__1"
    // InternalXcore.g:24600:1: rule__JvmLowerBound__Group__1 : rule__JvmLowerBound__Group__1__Impl ;
    public final void rule__JvmLowerBound__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:24604:1: ( rule__JvmLowerBound__Group__1__Impl )
            // InternalXcore.g:24605:2: rule__JvmLowerBound__Group__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__JvmLowerBound__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmLowerBound__Group__1"


    // $ANTLR start "rule__JvmLowerBound__Group__1__Impl"
    // InternalXcore.g:24611:1: rule__JvmLowerBound__Group__1__Impl : ( ( rule__JvmLowerBound__TypeReferenceAssignment_1 ) ) ;
    public final void rule__JvmLowerBound__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:24615:1: ( ( ( rule__JvmLowerBound__TypeReferenceAssignment_1 ) ) )
            // InternalXcore.g:24616:1: ( ( rule__JvmLowerBound__TypeReferenceAssignment_1 ) )
            {
            // InternalXcore.g:24616:1: ( ( rule__JvmLowerBound__TypeReferenceAssignment_1 ) )
            // InternalXcore.g:24617:1: ( rule__JvmLowerBound__TypeReferenceAssignment_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmLowerBoundAccess().getTypeReferenceAssignment_1()); 
            }
            // InternalXcore.g:24618:1: ( rule__JvmLowerBound__TypeReferenceAssignment_1 )
            // InternalXcore.g:24618:2: rule__JvmLowerBound__TypeReferenceAssignment_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__JvmLowerBound__TypeReferenceAssignment_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getJvmLowerBoundAccess().getTypeReferenceAssignment_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmLowerBound__Group__1__Impl"


    // $ANTLR start "rule__JvmLowerBoundAnded__Group__0"
    // InternalXcore.g:24632:1: rule__JvmLowerBoundAnded__Group__0 : rule__JvmLowerBoundAnded__Group__0__Impl rule__JvmLowerBoundAnded__Group__1 ;
    public final void rule__JvmLowerBoundAnded__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:24636:1: ( rule__JvmLowerBoundAnded__Group__0__Impl rule__JvmLowerBoundAnded__Group__1 )
            // InternalXcore.g:24637:2: rule__JvmLowerBoundAnded__Group__0__Impl rule__JvmLowerBoundAnded__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_22);
            rule__JvmLowerBoundAnded__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__JvmLowerBoundAnded__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmLowerBoundAnded__Group__0"


    // $ANTLR start "rule__JvmLowerBoundAnded__Group__0__Impl"
    // InternalXcore.g:24644:1: rule__JvmLowerBoundAnded__Group__0__Impl : ( '&' ) ;
    public final void rule__JvmLowerBoundAnded__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:24648:1: ( ( '&' ) )
            // InternalXcore.g:24649:1: ( '&' )
            {
            // InternalXcore.g:24649:1: ( '&' )
            // InternalXcore.g:24650:1: '&'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmLowerBoundAndedAccess().getAmpersandKeyword_0()); 
            }
            match(input,91,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getJvmLowerBoundAndedAccess().getAmpersandKeyword_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmLowerBoundAnded__Group__0__Impl"


    // $ANTLR start "rule__JvmLowerBoundAnded__Group__1"
    // InternalXcore.g:24663:1: rule__JvmLowerBoundAnded__Group__1 : rule__JvmLowerBoundAnded__Group__1__Impl ;
    public final void rule__JvmLowerBoundAnded__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:24667:1: ( rule__JvmLowerBoundAnded__Group__1__Impl )
            // InternalXcore.g:24668:2: rule__JvmLowerBoundAnded__Group__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__JvmLowerBoundAnded__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmLowerBoundAnded__Group__1"


    // $ANTLR start "rule__JvmLowerBoundAnded__Group__1__Impl"
    // InternalXcore.g:24674:1: rule__JvmLowerBoundAnded__Group__1__Impl : ( ( rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 ) ) ;
    public final void rule__JvmLowerBoundAnded__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:24678:1: ( ( ( rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 ) ) )
            // InternalXcore.g:24679:1: ( ( rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 ) )
            {
            // InternalXcore.g:24679:1: ( ( rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 ) )
            // InternalXcore.g:24680:1: ( rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmLowerBoundAndedAccess().getTypeReferenceAssignment_1()); 
            }
            // InternalXcore.g:24681:1: ( rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 )
            // InternalXcore.g:24681:2: rule__JvmLowerBoundAnded__TypeReferenceAssignment_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__JvmLowerBoundAnded__TypeReferenceAssignment_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getJvmLowerBoundAndedAccess().getTypeReferenceAssignment_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmLowerBoundAnded__Group__1__Impl"


    // $ANTLR start "rule__QualifiedNameWithWildcard__Group__0"
    // InternalXcore.g:24697:1: rule__QualifiedNameWithWildcard__Group__0 : rule__QualifiedNameWithWildcard__Group__0__Impl rule__QualifiedNameWithWildcard__Group__1 ;
    public final void rule__QualifiedNameWithWildcard__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:24701:1: ( rule__QualifiedNameWithWildcard__Group__0__Impl rule__QualifiedNameWithWildcard__Group__1 )
            // InternalXcore.g:24702:2: rule__QualifiedNameWithWildcard__Group__0__Impl rule__QualifiedNameWithWildcard__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_69);
            rule__QualifiedNameWithWildcard__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__QualifiedNameWithWildcard__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__QualifiedNameWithWildcard__Group__0"


    // $ANTLR start "rule__QualifiedNameWithWildcard__Group__0__Impl"
    // InternalXcore.g:24709:1: rule__QualifiedNameWithWildcard__Group__0__Impl : ( ruleQualifiedName ) ;
    public final void rule__QualifiedNameWithWildcard__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:24713:1: ( ( ruleQualifiedName ) )
            // InternalXcore.g:24714:1: ( ruleQualifiedName )
            {
            // InternalXcore.g:24714:1: ( ruleQualifiedName )
            // InternalXcore.g:24715:1: ruleQualifiedName
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getQualifiedNameWithWildcardAccess().getQualifiedNameParserRuleCall_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleQualifiedName();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getQualifiedNameWithWildcardAccess().getQualifiedNameParserRuleCall_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__QualifiedNameWithWildcard__Group__0__Impl"


    // $ANTLR start "rule__QualifiedNameWithWildcard__Group__1"
    // InternalXcore.g:24726:1: rule__QualifiedNameWithWildcard__Group__1 : rule__QualifiedNameWithWildcard__Group__1__Impl rule__QualifiedNameWithWildcard__Group__2 ;
    public final void rule__QualifiedNameWithWildcard__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:24730:1: ( rule__QualifiedNameWithWildcard__Group__1__Impl rule__QualifiedNameWithWildcard__Group__2 )
            // InternalXcore.g:24731:2: rule__QualifiedNameWithWildcard__Group__1__Impl rule__QualifiedNameWithWildcard__Group__2
            {
            pushFollow(FollowSets000.FOLLOW_140);
            rule__QualifiedNameWithWildcard__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__QualifiedNameWithWildcard__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__QualifiedNameWithWildcard__Group__1"


    // $ANTLR start "rule__QualifiedNameWithWildcard__Group__1__Impl"
    // InternalXcore.g:24738:1: rule__QualifiedNameWithWildcard__Group__1__Impl : ( '.' ) ;
    public final void rule__QualifiedNameWithWildcard__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:24742:1: ( ( '.' ) )
            // InternalXcore.g:24743:1: ( '.' )
            {
            // InternalXcore.g:24743:1: ( '.' )
            // InternalXcore.g:24744:1: '.'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getQualifiedNameWithWildcardAccess().getFullStopKeyword_1()); 
            }
            match(input,80,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getQualifiedNameWithWildcardAccess().getFullStopKeyword_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__QualifiedNameWithWildcard__Group__1__Impl"


    // $ANTLR start "rule__QualifiedNameWithWildcard__Group__2"
    // InternalXcore.g:24757:1: rule__QualifiedNameWithWildcard__Group__2 : rule__QualifiedNameWithWildcard__Group__2__Impl ;
    public final void rule__QualifiedNameWithWildcard__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:24761:1: ( rule__QualifiedNameWithWildcard__Group__2__Impl )
            // InternalXcore.g:24762:2: rule__QualifiedNameWithWildcard__Group__2__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__QualifiedNameWithWildcard__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__QualifiedNameWithWildcard__Group__2"


    // $ANTLR start "rule__QualifiedNameWithWildcard__Group__2__Impl"
    // InternalXcore.g:24768:1: rule__QualifiedNameWithWildcard__Group__2__Impl : ( '*' ) ;
    public final void rule__QualifiedNameWithWildcard__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:24772:1: ( ( '*' ) )
            // InternalXcore.g:24773:1: ( '*' )
            {
            // InternalXcore.g:24773:1: ( '*' )
            // InternalXcore.g:24774:1: '*'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getQualifiedNameWithWildcardAccess().getAsteriskKeyword_2()); 
            }
            match(input,18,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getQualifiedNameWithWildcardAccess().getAsteriskKeyword_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__QualifiedNameWithWildcard__Group__2__Impl"


    // $ANTLR start "rule__XImportDeclaration__Group__0"
    // InternalXcore.g:24793:1: rule__XImportDeclaration__Group__0 : rule__XImportDeclaration__Group__0__Impl rule__XImportDeclaration__Group__1 ;
    public final void rule__XImportDeclaration__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:24797:1: ( rule__XImportDeclaration__Group__0__Impl rule__XImportDeclaration__Group__1 )
            // InternalXcore.g:24798:2: rule__XImportDeclaration__Group__0__Impl rule__XImportDeclaration__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_141);
            rule__XImportDeclaration__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XImportDeclaration__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XImportDeclaration__Group__0"


    // $ANTLR start "rule__XImportDeclaration__Group__0__Impl"
    // InternalXcore.g:24805:1: rule__XImportDeclaration__Group__0__Impl : ( 'import' ) ;
    public final void rule__XImportDeclaration__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:24809:1: ( ( 'import' ) )
            // InternalXcore.g:24810:1: ( 'import' )
            {
            // InternalXcore.g:24810:1: ( 'import' )
            // InternalXcore.g:24811:1: 'import'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXImportDeclarationAccess().getImportKeyword_0()); 
            }
            match(input,37,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXImportDeclarationAccess().getImportKeyword_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XImportDeclaration__Group__0__Impl"


    // $ANTLR start "rule__XImportDeclaration__Group__1"
    // InternalXcore.g:24824:1: rule__XImportDeclaration__Group__1 : rule__XImportDeclaration__Group__1__Impl rule__XImportDeclaration__Group__2 ;
    public final void rule__XImportDeclaration__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:24828:1: ( rule__XImportDeclaration__Group__1__Impl rule__XImportDeclaration__Group__2 )
            // InternalXcore.g:24829:2: rule__XImportDeclaration__Group__1__Impl rule__XImportDeclaration__Group__2
            {
            pushFollow(FollowSets000.FOLLOW_65);
            rule__XImportDeclaration__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XImportDeclaration__Group__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XImportDeclaration__Group__1"


    // $ANTLR start "rule__XImportDeclaration__Group__1__Impl"
    // InternalXcore.g:24836:1: rule__XImportDeclaration__Group__1__Impl : ( ( rule__XImportDeclaration__Alternatives_1 ) ) ;
    public final void rule__XImportDeclaration__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:24840:1: ( ( ( rule__XImportDeclaration__Alternatives_1 ) ) )
            // InternalXcore.g:24841:1: ( ( rule__XImportDeclaration__Alternatives_1 ) )
            {
            // InternalXcore.g:24841:1: ( ( rule__XImportDeclaration__Alternatives_1 ) )
            // InternalXcore.g:24842:1: ( rule__XImportDeclaration__Alternatives_1 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXImportDeclarationAccess().getAlternatives_1()); 
            }
            // InternalXcore.g:24843:1: ( rule__XImportDeclaration__Alternatives_1 )
            // InternalXcore.g:24843:2: rule__XImportDeclaration__Alternatives_1
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XImportDeclaration__Alternatives_1();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXImportDeclarationAccess().getAlternatives_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XImportDeclaration__Group__1__Impl"


    // $ANTLR start "rule__XImportDeclaration__Group__2"
    // InternalXcore.g:24853:1: rule__XImportDeclaration__Group__2 : rule__XImportDeclaration__Group__2__Impl ;
    public final void rule__XImportDeclaration__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:24857:1: ( rule__XImportDeclaration__Group__2__Impl )
            // InternalXcore.g:24858:2: rule__XImportDeclaration__Group__2__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XImportDeclaration__Group__2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XImportDeclaration__Group__2"


    // $ANTLR start "rule__XImportDeclaration__Group__2__Impl"
    // InternalXcore.g:24864:1: rule__XImportDeclaration__Group__2__Impl : ( ( ';' )? ) ;
    public final void rule__XImportDeclaration__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:24868:1: ( ( ( ';' )? ) )
            // InternalXcore.g:24869:1: ( ( ';' )? )
            {
            // InternalXcore.g:24869:1: ( ( ';' )? )
            // InternalXcore.g:24870:1: ( ';' )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXImportDeclarationAccess().getSemicolonKeyword_2()); 
            }
            // InternalXcore.g:24871:1: ( ';' )?
            int alt191=2;
            int LA191_0 = input.LA(1);

            if ( (LA191_0==94) ) {
                alt191=1;
            }
            switch (alt191) {
                case 1 :
                    // InternalXcore.g:24872:2: ';'
                    {
                    match(input,94,FollowSets000.FOLLOW_2); if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXImportDeclarationAccess().getSemicolonKeyword_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XImportDeclaration__Group__2__Impl"


    // $ANTLR start "rule__XImportDeclaration__Group_1_0__0"
    // InternalXcore.g:24889:1: rule__XImportDeclaration__Group_1_0__0 : rule__XImportDeclaration__Group_1_0__0__Impl rule__XImportDeclaration__Group_1_0__1 ;
    public final void rule__XImportDeclaration__Group_1_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:24893:1: ( rule__XImportDeclaration__Group_1_0__0__Impl rule__XImportDeclaration__Group_1_0__1 )
            // InternalXcore.g:24894:2: rule__XImportDeclaration__Group_1_0__0__Impl rule__XImportDeclaration__Group_1_0__1
            {
            pushFollow(FollowSets000.FOLLOW_142);
            rule__XImportDeclaration__Group_1_0__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XImportDeclaration__Group_1_0__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XImportDeclaration__Group_1_0__0"


    // $ANTLR start "rule__XImportDeclaration__Group_1_0__0__Impl"
    // InternalXcore.g:24901:1: rule__XImportDeclaration__Group_1_0__0__Impl : ( ( rule__XImportDeclaration__StaticAssignment_1_0_0 ) ) ;
    public final void rule__XImportDeclaration__Group_1_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:24905:1: ( ( ( rule__XImportDeclaration__StaticAssignment_1_0_0 ) ) )
            // InternalXcore.g:24906:1: ( ( rule__XImportDeclaration__StaticAssignment_1_0_0 ) )
            {
            // InternalXcore.g:24906:1: ( ( rule__XImportDeclaration__StaticAssignment_1_0_0 ) )
            // InternalXcore.g:24907:1: ( rule__XImportDeclaration__StaticAssignment_1_0_0 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXImportDeclarationAccess().getStaticAssignment_1_0_0()); 
            }
            // InternalXcore.g:24908:1: ( rule__XImportDeclaration__StaticAssignment_1_0_0 )
            // InternalXcore.g:24908:2: rule__XImportDeclaration__StaticAssignment_1_0_0
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XImportDeclaration__StaticAssignment_1_0_0();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXImportDeclarationAccess().getStaticAssignment_1_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XImportDeclaration__Group_1_0__0__Impl"


    // $ANTLR start "rule__XImportDeclaration__Group_1_0__1"
    // InternalXcore.g:24918:1: rule__XImportDeclaration__Group_1_0__1 : rule__XImportDeclaration__Group_1_0__1__Impl rule__XImportDeclaration__Group_1_0__2 ;
    public final void rule__XImportDeclaration__Group_1_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:24922:1: ( rule__XImportDeclaration__Group_1_0__1__Impl rule__XImportDeclaration__Group_1_0__2 )
            // InternalXcore.g:24923:2: rule__XImportDeclaration__Group_1_0__1__Impl rule__XImportDeclaration__Group_1_0__2
            {
            pushFollow(FollowSets000.FOLLOW_142);
            rule__XImportDeclaration__Group_1_0__1__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XImportDeclaration__Group_1_0__2();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XImportDeclaration__Group_1_0__1"


    // $ANTLR start "rule__XImportDeclaration__Group_1_0__1__Impl"
    // InternalXcore.g:24930:1: rule__XImportDeclaration__Group_1_0__1__Impl : ( ( rule__XImportDeclaration__ExtensionAssignment_1_0_1 )? ) ;
    public final void rule__XImportDeclaration__Group_1_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:24934:1: ( ( ( rule__XImportDeclaration__ExtensionAssignment_1_0_1 )? ) )
            // InternalXcore.g:24935:1: ( ( rule__XImportDeclaration__ExtensionAssignment_1_0_1 )? )
            {
            // InternalXcore.g:24935:1: ( ( rule__XImportDeclaration__ExtensionAssignment_1_0_1 )? )
            // InternalXcore.g:24936:1: ( rule__XImportDeclaration__ExtensionAssignment_1_0_1 )?
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXImportDeclarationAccess().getExtensionAssignment_1_0_1()); 
            }
            // InternalXcore.g:24937:1: ( rule__XImportDeclaration__ExtensionAssignment_1_0_1 )?
            int alt192=2;
            int LA192_0 = input.LA(1);

            if ( (LA192_0==35) ) {
                alt192=1;
            }
            switch (alt192) {
                case 1 :
                    // InternalXcore.g:24937:2: rule__XImportDeclaration__ExtensionAssignment_1_0_1
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XImportDeclaration__ExtensionAssignment_1_0_1();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXImportDeclarationAccess().getExtensionAssignment_1_0_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XImportDeclaration__Group_1_0__1__Impl"


    // $ANTLR start "rule__XImportDeclaration__Group_1_0__2"
    // InternalXcore.g:24947:1: rule__XImportDeclaration__Group_1_0__2 : rule__XImportDeclaration__Group_1_0__2__Impl rule__XImportDeclaration__Group_1_0__3 ;
    public final void rule__XImportDeclaration__Group_1_0__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:24951:1: ( rule__XImportDeclaration__Group_1_0__2__Impl rule__XImportDeclaration__Group_1_0__3 )
            // InternalXcore.g:24952:2: rule__XImportDeclaration__Group_1_0__2__Impl rule__XImportDeclaration__Group_1_0__3
            {
            pushFollow(FollowSets000.FOLLOW_143);
            rule__XImportDeclaration__Group_1_0__2__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XImportDeclaration__Group_1_0__3();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XImportDeclaration__Group_1_0__2"


    // $ANTLR start "rule__XImportDeclaration__Group_1_0__2__Impl"
    // InternalXcore.g:24959:1: rule__XImportDeclaration__Group_1_0__2__Impl : ( ( rule__XImportDeclaration__ImportedTypeAssignment_1_0_2 ) ) ;
    public final void rule__XImportDeclaration__Group_1_0__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:24963:1: ( ( ( rule__XImportDeclaration__ImportedTypeAssignment_1_0_2 ) ) )
            // InternalXcore.g:24964:1: ( ( rule__XImportDeclaration__ImportedTypeAssignment_1_0_2 ) )
            {
            // InternalXcore.g:24964:1: ( ( rule__XImportDeclaration__ImportedTypeAssignment_1_0_2 ) )
            // InternalXcore.g:24965:1: ( rule__XImportDeclaration__ImportedTypeAssignment_1_0_2 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXImportDeclarationAccess().getImportedTypeAssignment_1_0_2()); 
            }
            // InternalXcore.g:24966:1: ( rule__XImportDeclaration__ImportedTypeAssignment_1_0_2 )
            // InternalXcore.g:24966:2: rule__XImportDeclaration__ImportedTypeAssignment_1_0_2
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XImportDeclaration__ImportedTypeAssignment_1_0_2();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXImportDeclarationAccess().getImportedTypeAssignment_1_0_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XImportDeclaration__Group_1_0__2__Impl"


    // $ANTLR start "rule__XImportDeclaration__Group_1_0__3"
    // InternalXcore.g:24976:1: rule__XImportDeclaration__Group_1_0__3 : rule__XImportDeclaration__Group_1_0__3__Impl ;
    public final void rule__XImportDeclaration__Group_1_0__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:24980:1: ( rule__XImportDeclaration__Group_1_0__3__Impl )
            // InternalXcore.g:24981:2: rule__XImportDeclaration__Group_1_0__3__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XImportDeclaration__Group_1_0__3__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XImportDeclaration__Group_1_0__3"


    // $ANTLR start "rule__XImportDeclaration__Group_1_0__3__Impl"
    // InternalXcore.g:24987:1: rule__XImportDeclaration__Group_1_0__3__Impl : ( ( rule__XImportDeclaration__Alternatives_1_0_3 ) ) ;
    public final void rule__XImportDeclaration__Group_1_0__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:24991:1: ( ( ( rule__XImportDeclaration__Alternatives_1_0_3 ) ) )
            // InternalXcore.g:24992:1: ( ( rule__XImportDeclaration__Alternatives_1_0_3 ) )
            {
            // InternalXcore.g:24992:1: ( ( rule__XImportDeclaration__Alternatives_1_0_3 ) )
            // InternalXcore.g:24993:1: ( rule__XImportDeclaration__Alternatives_1_0_3 )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXImportDeclarationAccess().getAlternatives_1_0_3()); 
            }
            // InternalXcore.g:24994:1: ( rule__XImportDeclaration__Alternatives_1_0_3 )
            // InternalXcore.g:24994:2: rule__XImportDeclaration__Alternatives_1_0_3
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XImportDeclaration__Alternatives_1_0_3();

            state._fsp--;
            if (state.failed) return ;

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXImportDeclarationAccess().getAlternatives_1_0_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XImportDeclaration__Group_1_0__3__Impl"


    // $ANTLR start "rule__QualifiedNameInStaticImport__Group__0"
    // InternalXcore.g:25012:1: rule__QualifiedNameInStaticImport__Group__0 : rule__QualifiedNameInStaticImport__Group__0__Impl rule__QualifiedNameInStaticImport__Group__1 ;
    public final void rule__QualifiedNameInStaticImport__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:25016:1: ( rule__QualifiedNameInStaticImport__Group__0__Impl rule__QualifiedNameInStaticImport__Group__1 )
            // InternalXcore.g:25017:2: rule__QualifiedNameInStaticImport__Group__0__Impl rule__QualifiedNameInStaticImport__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_69);
            rule__QualifiedNameInStaticImport__Group__0__Impl();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FollowSets000.FOLLOW_2);
            rule__QualifiedNameInStaticImport__Group__1();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__QualifiedNameInStaticImport__Group__0"


    // $ANTLR start "rule__QualifiedNameInStaticImport__Group__0__Impl"
    // InternalXcore.g:25024:1: rule__QualifiedNameInStaticImport__Group__0__Impl : ( ruleValidID ) ;
    public final void rule__QualifiedNameInStaticImport__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:25028:1: ( ( ruleValidID ) )
            // InternalXcore.g:25029:1: ( ruleValidID )
            {
            // InternalXcore.g:25029:1: ( ruleValidID )
            // InternalXcore.g:25030:1: ruleValidID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getQualifiedNameInStaticImportAccess().getValidIDParserRuleCall_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleValidID();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getQualifiedNameInStaticImportAccess().getValidIDParserRuleCall_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__QualifiedNameInStaticImport__Group__0__Impl"


    // $ANTLR start "rule__QualifiedNameInStaticImport__Group__1"
    // InternalXcore.g:25041:1: rule__QualifiedNameInStaticImport__Group__1 : rule__QualifiedNameInStaticImport__Group__1__Impl ;
    public final void rule__QualifiedNameInStaticImport__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:25045:1: ( rule__QualifiedNameInStaticImport__Group__1__Impl )
            // InternalXcore.g:25046:2: rule__QualifiedNameInStaticImport__Group__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__QualifiedNameInStaticImport__Group__1__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__QualifiedNameInStaticImport__Group__1"


    // $ANTLR start "rule__QualifiedNameInStaticImport__Group__1__Impl"
    // InternalXcore.g:25052:1: rule__QualifiedNameInStaticImport__Group__1__Impl : ( '.' ) ;
    public final void rule__QualifiedNameInStaticImport__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:25056:1: ( ( '.' ) )
            // InternalXcore.g:25057:1: ( '.' )
            {
            // InternalXcore.g:25057:1: ( '.' )
            // InternalXcore.g:25058:1: '.'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getQualifiedNameInStaticImportAccess().getFullStopKeyword_1()); 
            }
            match(input,80,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getQualifiedNameInStaticImportAccess().getFullStopKeyword_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__QualifiedNameInStaticImport__Group__1__Impl"


    // $ANTLR start "rule__XDataType__UnorderedGroup_6"
    // InternalXcore.g:25076:1: rule__XDataType__UnorderedGroup_6 : ( rule__XDataType__UnorderedGroup_6__0 )? ;
    public final void rule__XDataType__UnorderedGroup_6() throws RecognitionException {

            	int stackSize = keepStackSize();
        		getUnorderedGroupHelper().enter(grammarAccess.getXDataTypeAccess().getUnorderedGroup_6());
            
        try {
            // InternalXcore.g:25081:1: ( ( rule__XDataType__UnorderedGroup_6__0 )? )
            // InternalXcore.g:25082:2: ( rule__XDataType__UnorderedGroup_6__0 )?
            {
            // InternalXcore.g:25082:2: ( rule__XDataType__UnorderedGroup_6__0 )?
            int alt193=2;
            int LA193_0 = input.LA(1);

            if ( LA193_0 == 31 && getUnorderedGroupHelper().canSelect(grammarAccess.getXDataTypeAccess().getUnorderedGroup_6(), 0) ) {
                alt193=1;
            }
            else if ( LA193_0 == 30 && getUnorderedGroupHelper().canSelect(grammarAccess.getXDataTypeAccess().getUnorderedGroup_6(), 1) ) {
                alt193=1;
            }
            switch (alt193) {
                case 1 :
                    // InternalXcore.g:0:0: rule__XDataType__UnorderedGroup_6__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XDataType__UnorderedGroup_6__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	getUnorderedGroupHelper().leave(grammarAccess.getXDataTypeAccess().getUnorderedGroup_6());
            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XDataType__UnorderedGroup_6"


    // $ANTLR start "rule__XDataType__UnorderedGroup_6__Impl"
    // InternalXcore.g:25092:1: rule__XDataType__UnorderedGroup_6__Impl : ( ({...}? => ( ( ( rule__XDataType__Group_6_0__0 ) ) ) ) | ({...}? => ( ( ( rule__XDataType__Group_6_1__0 ) ) ) ) ) ;
    public final void rule__XDataType__UnorderedGroup_6__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        		boolean selected = false;
            
        try {
            // InternalXcore.g:25097:1: ( ( ({...}? => ( ( ( rule__XDataType__Group_6_0__0 ) ) ) ) | ({...}? => ( ( ( rule__XDataType__Group_6_1__0 ) ) ) ) ) )
            // InternalXcore.g:25098:3: ( ({...}? => ( ( ( rule__XDataType__Group_6_0__0 ) ) ) ) | ({...}? => ( ( ( rule__XDataType__Group_6_1__0 ) ) ) ) )
            {
            // InternalXcore.g:25098:3: ( ({...}? => ( ( ( rule__XDataType__Group_6_0__0 ) ) ) ) | ({...}? => ( ( ( rule__XDataType__Group_6_1__0 ) ) ) ) )
            int alt194=2;
            int LA194_0 = input.LA(1);

            if ( LA194_0 == 31 && getUnorderedGroupHelper().canSelect(grammarAccess.getXDataTypeAccess().getUnorderedGroup_6(), 0) ) {
                alt194=1;
            }
            else if ( LA194_0 == 30 && getUnorderedGroupHelper().canSelect(grammarAccess.getXDataTypeAccess().getUnorderedGroup_6(), 1) ) {
                alt194=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 194, 0, input);

                throw nvae;
            }
            switch (alt194) {
                case 1 :
                    // InternalXcore.g:25100:4: ({...}? => ( ( ( rule__XDataType__Group_6_0__0 ) ) ) )
                    {
                    // InternalXcore.g:25100:4: ({...}? => ( ( ( rule__XDataType__Group_6_0__0 ) ) ) )
                    // InternalXcore.g:25101:5: {...}? => ( ( ( rule__XDataType__Group_6_0__0 ) ) )
                    {
                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getXDataTypeAccess().getUnorderedGroup_6(), 0) ) {
                        if (state.backtracking>0) {state.failed=true; return ;}
                        throw new FailedPredicateException(input, "rule__XDataType__UnorderedGroup_6__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getXDataTypeAccess().getUnorderedGroup_6(), 0)");
                    }
                    // InternalXcore.g:25101:106: ( ( ( rule__XDataType__Group_6_0__0 ) ) )
                    // InternalXcore.g:25102:6: ( ( rule__XDataType__Group_6_0__0 ) )
                    {
                    getUnorderedGroupHelper().select(grammarAccess.getXDataTypeAccess().getUnorderedGroup_6(), 0);
                    selected = true;
                    // InternalXcore.g:25108:6: ( ( rule__XDataType__Group_6_0__0 ) )
                    // InternalXcore.g:25110:7: ( rule__XDataType__Group_6_0__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXDataTypeAccess().getGroup_6_0()); 
                    }
                    // InternalXcore.g:25111:7: ( rule__XDataType__Group_6_0__0 )
                    // InternalXcore.g:25111:8: rule__XDataType__Group_6_0__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XDataType__Group_6_0__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXDataTypeAccess().getGroup_6_0()); 
                    }

                    }


                    }


                    }


                    }
                    break;
                case 2 :
                    // InternalXcore.g:25117:4: ({...}? => ( ( ( rule__XDataType__Group_6_1__0 ) ) ) )
                    {
                    // InternalXcore.g:25117:4: ({...}? => ( ( ( rule__XDataType__Group_6_1__0 ) ) ) )
                    // InternalXcore.g:25118:5: {...}? => ( ( ( rule__XDataType__Group_6_1__0 ) ) )
                    {
                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getXDataTypeAccess().getUnorderedGroup_6(), 1) ) {
                        if (state.backtracking>0) {state.failed=true; return ;}
                        throw new FailedPredicateException(input, "rule__XDataType__UnorderedGroup_6__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getXDataTypeAccess().getUnorderedGroup_6(), 1)");
                    }
                    // InternalXcore.g:25118:106: ( ( ( rule__XDataType__Group_6_1__0 ) ) )
                    // InternalXcore.g:25119:6: ( ( rule__XDataType__Group_6_1__0 ) )
                    {
                    getUnorderedGroupHelper().select(grammarAccess.getXDataTypeAccess().getUnorderedGroup_6(), 1);
                    selected = true;
                    // InternalXcore.g:25125:6: ( ( rule__XDataType__Group_6_1__0 ) )
                    // InternalXcore.g:25127:7: ( rule__XDataType__Group_6_1__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXDataTypeAccess().getGroup_6_1()); 
                    }
                    // InternalXcore.g:25128:7: ( rule__XDataType__Group_6_1__0 )
                    // InternalXcore.g:25128:8: rule__XDataType__Group_6_1__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XDataType__Group_6_1__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXDataTypeAccess().getGroup_6_1()); 
                    }

                    }


                    }


                    }


                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	if (selected)
            		getUnorderedGroupHelper().returnFromSelection(grammarAccess.getXDataTypeAccess().getUnorderedGroup_6());
            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XDataType__UnorderedGroup_6__Impl"


    // $ANTLR start "rule__XDataType__UnorderedGroup_6__0"
    // InternalXcore.g:25143:1: rule__XDataType__UnorderedGroup_6__0 : rule__XDataType__UnorderedGroup_6__Impl ( rule__XDataType__UnorderedGroup_6__1 )? ;
    public final void rule__XDataType__UnorderedGroup_6__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:25147:1: ( rule__XDataType__UnorderedGroup_6__Impl ( rule__XDataType__UnorderedGroup_6__1 )? )
            // InternalXcore.g:25148:2: rule__XDataType__UnorderedGroup_6__Impl ( rule__XDataType__UnorderedGroup_6__1 )?
            {
            pushFollow(FollowSets000.FOLLOW_144);
            rule__XDataType__UnorderedGroup_6__Impl();

            state._fsp--;
            if (state.failed) return ;
            // InternalXcore.g:25149:2: ( rule__XDataType__UnorderedGroup_6__1 )?
            int alt195=2;
            int LA195_0 = input.LA(1);

            if ( LA195_0 == 31 && getUnorderedGroupHelper().canSelect(grammarAccess.getXDataTypeAccess().getUnorderedGroup_6(), 0) ) {
                alt195=1;
            }
            else if ( LA195_0 == 30 && getUnorderedGroupHelper().canSelect(grammarAccess.getXDataTypeAccess().getUnorderedGroup_6(), 1) ) {
                alt195=1;
            }
            switch (alt195) {
                case 1 :
                    // InternalXcore.g:0:0: rule__XDataType__UnorderedGroup_6__1
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XDataType__UnorderedGroup_6__1();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XDataType__UnorderedGroup_6__0"


    // $ANTLR start "rule__XDataType__UnorderedGroup_6__1"
    // InternalXcore.g:25156:1: rule__XDataType__UnorderedGroup_6__1 : rule__XDataType__UnorderedGroup_6__Impl ;
    public final void rule__XDataType__UnorderedGroup_6__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:25160:1: ( rule__XDataType__UnorderedGroup_6__Impl )
            // InternalXcore.g:25161:2: rule__XDataType__UnorderedGroup_6__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XDataType__UnorderedGroup_6__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XDataType__UnorderedGroup_6__1"


    // $ANTLR start "rule__XAttribute__UnorderedGroup_2"
    // InternalXcore.g:25172:1: rule__XAttribute__UnorderedGroup_2 : ( rule__XAttribute__UnorderedGroup_2__0 )? ;
    public final void rule__XAttribute__UnorderedGroup_2() throws RecognitionException {

            	int stackSize = keepStackSize();
        		getUnorderedGroupHelper().enter(grammarAccess.getXAttributeAccess().getUnorderedGroup_2());
            
        try {
            // InternalXcore.g:25177:1: ( ( rule__XAttribute__UnorderedGroup_2__0 )? )
            // InternalXcore.g:25178:2: ( rule__XAttribute__UnorderedGroup_2__0 )?
            {
            // InternalXcore.g:25178:2: ( rule__XAttribute__UnorderedGroup_2__0 )?
            int alt196=2;
            alt196 = dfa196.predict(input);
            switch (alt196) {
                case 1 :
                    // InternalXcore.g:0:0: rule__XAttribute__UnorderedGroup_2__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XAttribute__UnorderedGroup_2__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	getUnorderedGroupHelper().leave(grammarAccess.getXAttributeAccess().getUnorderedGroup_2());
            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAttribute__UnorderedGroup_2"


    // $ANTLR start "rule__XAttribute__UnorderedGroup_2__Impl"
    // InternalXcore.g:25188:1: rule__XAttribute__UnorderedGroup_2__Impl : ( ({...}? => ( ( ( rule__XAttribute__UnorderedAssignment_2_0 ) ) ) ) | ({...}? => ( ( ( rule__XAttribute__UniqueAssignment_2_1 ) ) ) ) | ({...}? => ( ( ( rule__XAttribute__ReadonlyAssignment_2_2 ) ) ) ) | ({...}? => ( ( ( rule__XAttribute__TransientAssignment_2_3 ) ) ) ) | ({...}? => ( ( ( rule__XAttribute__VolatileAssignment_2_4 ) ) ) ) | ({...}? => ( ( ( rule__XAttribute__UnsettableAssignment_2_5 ) ) ) ) | ({...}? => ( ( ( rule__XAttribute__DerivedAssignment_2_6 ) ) ) ) | ({...}? => ( ( ( rule__XAttribute__IDAssignment_2_7 ) ) ) ) ) ;
    public final void rule__XAttribute__UnorderedGroup_2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        		boolean selected = false;
            
        try {
            // InternalXcore.g:25193:1: ( ( ({...}? => ( ( ( rule__XAttribute__UnorderedAssignment_2_0 ) ) ) ) | ({...}? => ( ( ( rule__XAttribute__UniqueAssignment_2_1 ) ) ) ) | ({...}? => ( ( ( rule__XAttribute__ReadonlyAssignment_2_2 ) ) ) ) | ({...}? => ( ( ( rule__XAttribute__TransientAssignment_2_3 ) ) ) ) | ({...}? => ( ( ( rule__XAttribute__VolatileAssignment_2_4 ) ) ) ) | ({...}? => ( ( ( rule__XAttribute__UnsettableAssignment_2_5 ) ) ) ) | ({...}? => ( ( ( rule__XAttribute__DerivedAssignment_2_6 ) ) ) ) | ({...}? => ( ( ( rule__XAttribute__IDAssignment_2_7 ) ) ) ) ) )
            // InternalXcore.g:25194:3: ( ({...}? => ( ( ( rule__XAttribute__UnorderedAssignment_2_0 ) ) ) ) | ({...}? => ( ( ( rule__XAttribute__UniqueAssignment_2_1 ) ) ) ) | ({...}? => ( ( ( rule__XAttribute__ReadonlyAssignment_2_2 ) ) ) ) | ({...}? => ( ( ( rule__XAttribute__TransientAssignment_2_3 ) ) ) ) | ({...}? => ( ( ( rule__XAttribute__VolatileAssignment_2_4 ) ) ) ) | ({...}? => ( ( ( rule__XAttribute__UnsettableAssignment_2_5 ) ) ) ) | ({...}? => ( ( ( rule__XAttribute__DerivedAssignment_2_6 ) ) ) ) | ({...}? => ( ( ( rule__XAttribute__IDAssignment_2_7 ) ) ) ) )
            {
            // InternalXcore.g:25194:3: ( ({...}? => ( ( ( rule__XAttribute__UnorderedAssignment_2_0 ) ) ) ) | ({...}? => ( ( ( rule__XAttribute__UniqueAssignment_2_1 ) ) ) ) | ({...}? => ( ( ( rule__XAttribute__ReadonlyAssignment_2_2 ) ) ) ) | ({...}? => ( ( ( rule__XAttribute__TransientAssignment_2_3 ) ) ) ) | ({...}? => ( ( ( rule__XAttribute__VolatileAssignment_2_4 ) ) ) ) | ({...}? => ( ( ( rule__XAttribute__UnsettableAssignment_2_5 ) ) ) ) | ({...}? => ( ( ( rule__XAttribute__DerivedAssignment_2_6 ) ) ) ) | ({...}? => ( ( ( rule__XAttribute__IDAssignment_2_7 ) ) ) ) )
            int alt197=8;
            int LA197_0 = input.LA(1);

            if ( LA197_0 == 51 && getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 0) ) {
                alt197=1;
            }
            else if ( LA197_0 == 50 && getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 1) ) {
                alt197=2;
            }
            else if ( LA197_0 == 44 && getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 2) ) {
                alt197=3;
            }
            else if ( LA197_0 == 49 && getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 3) ) {
                alt197=4;
            }
            else if ( LA197_0 == 53 && getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 4) ) {
                alt197=5;
            }
            else if ( LA197_0 == 52 && getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 5) ) {
                alt197=6;
            }
            else if ( LA197_0 == 32 && getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 6) ) {
                alt197=7;
            }
            else if ( LA197_0 == 36 && getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 7) ) {
                alt197=8;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 197, 0, input);

                throw nvae;
            }
            switch (alt197) {
                case 1 :
                    // InternalXcore.g:25196:4: ({...}? => ( ( ( rule__XAttribute__UnorderedAssignment_2_0 ) ) ) )
                    {
                    // InternalXcore.g:25196:4: ({...}? => ( ( ( rule__XAttribute__UnorderedAssignment_2_0 ) ) ) )
                    // InternalXcore.g:25197:5: {...}? => ( ( ( rule__XAttribute__UnorderedAssignment_2_0 ) ) )
                    {
                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 0) ) {
                        if (state.backtracking>0) {state.failed=true; return ;}
                        throw new FailedPredicateException(input, "rule__XAttribute__UnorderedGroup_2__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 0)");
                    }
                    // InternalXcore.g:25197:107: ( ( ( rule__XAttribute__UnorderedAssignment_2_0 ) ) )
                    // InternalXcore.g:25198:6: ( ( rule__XAttribute__UnorderedAssignment_2_0 ) )
                    {
                    getUnorderedGroupHelper().select(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 0);
                    selected = true;
                    // InternalXcore.g:25204:6: ( ( rule__XAttribute__UnorderedAssignment_2_0 ) )
                    // InternalXcore.g:25206:7: ( rule__XAttribute__UnorderedAssignment_2_0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXAttributeAccess().getUnorderedAssignment_2_0()); 
                    }
                    // InternalXcore.g:25207:7: ( rule__XAttribute__UnorderedAssignment_2_0 )
                    // InternalXcore.g:25207:8: rule__XAttribute__UnorderedAssignment_2_0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XAttribute__UnorderedAssignment_2_0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXAttributeAccess().getUnorderedAssignment_2_0()); 
                    }

                    }


                    }


                    }


                    }
                    break;
                case 2 :
                    // InternalXcore.g:25213:4: ({...}? => ( ( ( rule__XAttribute__UniqueAssignment_2_1 ) ) ) )
                    {
                    // InternalXcore.g:25213:4: ({...}? => ( ( ( rule__XAttribute__UniqueAssignment_2_1 ) ) ) )
                    // InternalXcore.g:25214:5: {...}? => ( ( ( rule__XAttribute__UniqueAssignment_2_1 ) ) )
                    {
                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 1) ) {
                        if (state.backtracking>0) {state.failed=true; return ;}
                        throw new FailedPredicateException(input, "rule__XAttribute__UnorderedGroup_2__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 1)");
                    }
                    // InternalXcore.g:25214:107: ( ( ( rule__XAttribute__UniqueAssignment_2_1 ) ) )
                    // InternalXcore.g:25215:6: ( ( rule__XAttribute__UniqueAssignment_2_1 ) )
                    {
                    getUnorderedGroupHelper().select(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 1);
                    selected = true;
                    // InternalXcore.g:25221:6: ( ( rule__XAttribute__UniqueAssignment_2_1 ) )
                    // InternalXcore.g:25223:7: ( rule__XAttribute__UniqueAssignment_2_1 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXAttributeAccess().getUniqueAssignment_2_1()); 
                    }
                    // InternalXcore.g:25224:7: ( rule__XAttribute__UniqueAssignment_2_1 )
                    // InternalXcore.g:25224:8: rule__XAttribute__UniqueAssignment_2_1
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XAttribute__UniqueAssignment_2_1();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXAttributeAccess().getUniqueAssignment_2_1()); 
                    }

                    }


                    }


                    }


                    }
                    break;
                case 3 :
                    // InternalXcore.g:25230:4: ({...}? => ( ( ( rule__XAttribute__ReadonlyAssignment_2_2 ) ) ) )
                    {
                    // InternalXcore.g:25230:4: ({...}? => ( ( ( rule__XAttribute__ReadonlyAssignment_2_2 ) ) ) )
                    // InternalXcore.g:25231:5: {...}? => ( ( ( rule__XAttribute__ReadonlyAssignment_2_2 ) ) )
                    {
                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 2) ) {
                        if (state.backtracking>0) {state.failed=true; return ;}
                        throw new FailedPredicateException(input, "rule__XAttribute__UnorderedGroup_2__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 2)");
                    }
                    // InternalXcore.g:25231:107: ( ( ( rule__XAttribute__ReadonlyAssignment_2_2 ) ) )
                    // InternalXcore.g:25232:6: ( ( rule__XAttribute__ReadonlyAssignment_2_2 ) )
                    {
                    getUnorderedGroupHelper().select(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 2);
                    selected = true;
                    // InternalXcore.g:25238:6: ( ( rule__XAttribute__ReadonlyAssignment_2_2 ) )
                    // InternalXcore.g:25240:7: ( rule__XAttribute__ReadonlyAssignment_2_2 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXAttributeAccess().getReadonlyAssignment_2_2()); 
                    }
                    // InternalXcore.g:25241:7: ( rule__XAttribute__ReadonlyAssignment_2_2 )
                    // InternalXcore.g:25241:8: rule__XAttribute__ReadonlyAssignment_2_2
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XAttribute__ReadonlyAssignment_2_2();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXAttributeAccess().getReadonlyAssignment_2_2()); 
                    }

                    }


                    }


                    }


                    }
                    break;
                case 4 :
                    // InternalXcore.g:25247:4: ({...}? => ( ( ( rule__XAttribute__TransientAssignment_2_3 ) ) ) )
                    {
                    // InternalXcore.g:25247:4: ({...}? => ( ( ( rule__XAttribute__TransientAssignment_2_3 ) ) ) )
                    // InternalXcore.g:25248:5: {...}? => ( ( ( rule__XAttribute__TransientAssignment_2_3 ) ) )
                    {
                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 3) ) {
                        if (state.backtracking>0) {state.failed=true; return ;}
                        throw new FailedPredicateException(input, "rule__XAttribute__UnorderedGroup_2__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 3)");
                    }
                    // InternalXcore.g:25248:107: ( ( ( rule__XAttribute__TransientAssignment_2_3 ) ) )
                    // InternalXcore.g:25249:6: ( ( rule__XAttribute__TransientAssignment_2_3 ) )
                    {
                    getUnorderedGroupHelper().select(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 3);
                    selected = true;
                    // InternalXcore.g:25255:6: ( ( rule__XAttribute__TransientAssignment_2_3 ) )
                    // InternalXcore.g:25257:7: ( rule__XAttribute__TransientAssignment_2_3 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXAttributeAccess().getTransientAssignment_2_3()); 
                    }
                    // InternalXcore.g:25258:7: ( rule__XAttribute__TransientAssignment_2_3 )
                    // InternalXcore.g:25258:8: rule__XAttribute__TransientAssignment_2_3
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XAttribute__TransientAssignment_2_3();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXAttributeAccess().getTransientAssignment_2_3()); 
                    }

                    }


                    }


                    }


                    }
                    break;
                case 5 :
                    // InternalXcore.g:25264:4: ({...}? => ( ( ( rule__XAttribute__VolatileAssignment_2_4 ) ) ) )
                    {
                    // InternalXcore.g:25264:4: ({...}? => ( ( ( rule__XAttribute__VolatileAssignment_2_4 ) ) ) )
                    // InternalXcore.g:25265:5: {...}? => ( ( ( rule__XAttribute__VolatileAssignment_2_4 ) ) )
                    {
                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 4) ) {
                        if (state.backtracking>0) {state.failed=true; return ;}
                        throw new FailedPredicateException(input, "rule__XAttribute__UnorderedGroup_2__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 4)");
                    }
                    // InternalXcore.g:25265:107: ( ( ( rule__XAttribute__VolatileAssignment_2_4 ) ) )
                    // InternalXcore.g:25266:6: ( ( rule__XAttribute__VolatileAssignment_2_4 ) )
                    {
                    getUnorderedGroupHelper().select(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 4);
                    selected = true;
                    // InternalXcore.g:25272:6: ( ( rule__XAttribute__VolatileAssignment_2_4 ) )
                    // InternalXcore.g:25274:7: ( rule__XAttribute__VolatileAssignment_2_4 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXAttributeAccess().getVolatileAssignment_2_4()); 
                    }
                    // InternalXcore.g:25275:7: ( rule__XAttribute__VolatileAssignment_2_4 )
                    // InternalXcore.g:25275:8: rule__XAttribute__VolatileAssignment_2_4
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XAttribute__VolatileAssignment_2_4();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXAttributeAccess().getVolatileAssignment_2_4()); 
                    }

                    }


                    }


                    }


                    }
                    break;
                case 6 :
                    // InternalXcore.g:25281:4: ({...}? => ( ( ( rule__XAttribute__UnsettableAssignment_2_5 ) ) ) )
                    {
                    // InternalXcore.g:25281:4: ({...}? => ( ( ( rule__XAttribute__UnsettableAssignment_2_5 ) ) ) )
                    // InternalXcore.g:25282:5: {...}? => ( ( ( rule__XAttribute__UnsettableAssignment_2_5 ) ) )
                    {
                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 5) ) {
                        if (state.backtracking>0) {state.failed=true; return ;}
                        throw new FailedPredicateException(input, "rule__XAttribute__UnorderedGroup_2__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 5)");
                    }
                    // InternalXcore.g:25282:107: ( ( ( rule__XAttribute__UnsettableAssignment_2_5 ) ) )
                    // InternalXcore.g:25283:6: ( ( rule__XAttribute__UnsettableAssignment_2_5 ) )
                    {
                    getUnorderedGroupHelper().select(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 5);
                    selected = true;
                    // InternalXcore.g:25289:6: ( ( rule__XAttribute__UnsettableAssignment_2_5 ) )
                    // InternalXcore.g:25291:7: ( rule__XAttribute__UnsettableAssignment_2_5 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXAttributeAccess().getUnsettableAssignment_2_5()); 
                    }
                    // InternalXcore.g:25292:7: ( rule__XAttribute__UnsettableAssignment_2_5 )
                    // InternalXcore.g:25292:8: rule__XAttribute__UnsettableAssignment_2_5
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XAttribute__UnsettableAssignment_2_5();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXAttributeAccess().getUnsettableAssignment_2_5()); 
                    }

                    }


                    }


                    }


                    }
                    break;
                case 7 :
                    // InternalXcore.g:25298:4: ({...}? => ( ( ( rule__XAttribute__DerivedAssignment_2_6 ) ) ) )
                    {
                    // InternalXcore.g:25298:4: ({...}? => ( ( ( rule__XAttribute__DerivedAssignment_2_6 ) ) ) )
                    // InternalXcore.g:25299:5: {...}? => ( ( ( rule__XAttribute__DerivedAssignment_2_6 ) ) )
                    {
                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 6) ) {
                        if (state.backtracking>0) {state.failed=true; return ;}
                        throw new FailedPredicateException(input, "rule__XAttribute__UnorderedGroup_2__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 6)");
                    }
                    // InternalXcore.g:25299:107: ( ( ( rule__XAttribute__DerivedAssignment_2_6 ) ) )
                    // InternalXcore.g:25300:6: ( ( rule__XAttribute__DerivedAssignment_2_6 ) )
                    {
                    getUnorderedGroupHelper().select(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 6);
                    selected = true;
                    // InternalXcore.g:25306:6: ( ( rule__XAttribute__DerivedAssignment_2_6 ) )
                    // InternalXcore.g:25308:7: ( rule__XAttribute__DerivedAssignment_2_6 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXAttributeAccess().getDerivedAssignment_2_6()); 
                    }
                    // InternalXcore.g:25309:7: ( rule__XAttribute__DerivedAssignment_2_6 )
                    // InternalXcore.g:25309:8: rule__XAttribute__DerivedAssignment_2_6
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XAttribute__DerivedAssignment_2_6();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXAttributeAccess().getDerivedAssignment_2_6()); 
                    }

                    }


                    }


                    }


                    }
                    break;
                case 8 :
                    // InternalXcore.g:25315:4: ({...}? => ( ( ( rule__XAttribute__IDAssignment_2_7 ) ) ) )
                    {
                    // InternalXcore.g:25315:4: ({...}? => ( ( ( rule__XAttribute__IDAssignment_2_7 ) ) ) )
                    // InternalXcore.g:25316:5: {...}? => ( ( ( rule__XAttribute__IDAssignment_2_7 ) ) )
                    {
                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 7) ) {
                        if (state.backtracking>0) {state.failed=true; return ;}
                        throw new FailedPredicateException(input, "rule__XAttribute__UnorderedGroup_2__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 7)");
                    }
                    // InternalXcore.g:25316:107: ( ( ( rule__XAttribute__IDAssignment_2_7 ) ) )
                    // InternalXcore.g:25317:6: ( ( rule__XAttribute__IDAssignment_2_7 ) )
                    {
                    getUnorderedGroupHelper().select(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 7);
                    selected = true;
                    // InternalXcore.g:25323:6: ( ( rule__XAttribute__IDAssignment_2_7 ) )
                    // InternalXcore.g:25325:7: ( rule__XAttribute__IDAssignment_2_7 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXAttributeAccess().getIDAssignment_2_7()); 
                    }
                    // InternalXcore.g:25326:7: ( rule__XAttribute__IDAssignment_2_7 )
                    // InternalXcore.g:25326:8: rule__XAttribute__IDAssignment_2_7
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XAttribute__IDAssignment_2_7();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXAttributeAccess().getIDAssignment_2_7()); 
                    }

                    }


                    }


                    }


                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	if (selected)
            		getUnorderedGroupHelper().returnFromSelection(grammarAccess.getXAttributeAccess().getUnorderedGroup_2());
            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAttribute__UnorderedGroup_2__Impl"


    // $ANTLR start "rule__XAttribute__UnorderedGroup_2__0"
    // InternalXcore.g:25341:1: rule__XAttribute__UnorderedGroup_2__0 : rule__XAttribute__UnorderedGroup_2__Impl ( rule__XAttribute__UnorderedGroup_2__1 )? ;
    public final void rule__XAttribute__UnorderedGroup_2__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:25345:1: ( rule__XAttribute__UnorderedGroup_2__Impl ( rule__XAttribute__UnorderedGroup_2__1 )? )
            // InternalXcore.g:25346:2: rule__XAttribute__UnorderedGroup_2__Impl ( rule__XAttribute__UnorderedGroup_2__1 )?
            {
            pushFollow(FollowSets000.FOLLOW_145);
            rule__XAttribute__UnorderedGroup_2__Impl();

            state._fsp--;
            if (state.failed) return ;
            // InternalXcore.g:25347:2: ( rule__XAttribute__UnorderedGroup_2__1 )?
            int alt198=2;
            alt198 = dfa198.predict(input);
            switch (alt198) {
                case 1 :
                    // InternalXcore.g:0:0: rule__XAttribute__UnorderedGroup_2__1
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XAttribute__UnorderedGroup_2__1();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAttribute__UnorderedGroup_2__0"


    // $ANTLR start "rule__XAttribute__UnorderedGroup_2__1"
    // InternalXcore.g:25354:1: rule__XAttribute__UnorderedGroup_2__1 : rule__XAttribute__UnorderedGroup_2__Impl ( rule__XAttribute__UnorderedGroup_2__2 )? ;
    public final void rule__XAttribute__UnorderedGroup_2__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:25358:1: ( rule__XAttribute__UnorderedGroup_2__Impl ( rule__XAttribute__UnorderedGroup_2__2 )? )
            // InternalXcore.g:25359:2: rule__XAttribute__UnorderedGroup_2__Impl ( rule__XAttribute__UnorderedGroup_2__2 )?
            {
            pushFollow(FollowSets000.FOLLOW_145);
            rule__XAttribute__UnorderedGroup_2__Impl();

            state._fsp--;
            if (state.failed) return ;
            // InternalXcore.g:25360:2: ( rule__XAttribute__UnorderedGroup_2__2 )?
            int alt199=2;
            alt199 = dfa199.predict(input);
            switch (alt199) {
                case 1 :
                    // InternalXcore.g:0:0: rule__XAttribute__UnorderedGroup_2__2
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XAttribute__UnorderedGroup_2__2();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAttribute__UnorderedGroup_2__1"


    // $ANTLR start "rule__XAttribute__UnorderedGroup_2__2"
    // InternalXcore.g:25367:1: rule__XAttribute__UnorderedGroup_2__2 : rule__XAttribute__UnorderedGroup_2__Impl ( rule__XAttribute__UnorderedGroup_2__3 )? ;
    public final void rule__XAttribute__UnorderedGroup_2__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:25371:1: ( rule__XAttribute__UnorderedGroup_2__Impl ( rule__XAttribute__UnorderedGroup_2__3 )? )
            // InternalXcore.g:25372:2: rule__XAttribute__UnorderedGroup_2__Impl ( rule__XAttribute__UnorderedGroup_2__3 )?
            {
            pushFollow(FollowSets000.FOLLOW_145);
            rule__XAttribute__UnorderedGroup_2__Impl();

            state._fsp--;
            if (state.failed) return ;
            // InternalXcore.g:25373:2: ( rule__XAttribute__UnorderedGroup_2__3 )?
            int alt200=2;
            alt200 = dfa200.predict(input);
            switch (alt200) {
                case 1 :
                    // InternalXcore.g:0:0: rule__XAttribute__UnorderedGroup_2__3
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XAttribute__UnorderedGroup_2__3();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAttribute__UnorderedGroup_2__2"


    // $ANTLR start "rule__XAttribute__UnorderedGroup_2__3"
    // InternalXcore.g:25380:1: rule__XAttribute__UnorderedGroup_2__3 : rule__XAttribute__UnorderedGroup_2__Impl ( rule__XAttribute__UnorderedGroup_2__4 )? ;
    public final void rule__XAttribute__UnorderedGroup_2__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:25384:1: ( rule__XAttribute__UnorderedGroup_2__Impl ( rule__XAttribute__UnorderedGroup_2__4 )? )
            // InternalXcore.g:25385:2: rule__XAttribute__UnorderedGroup_2__Impl ( rule__XAttribute__UnorderedGroup_2__4 )?
            {
            pushFollow(FollowSets000.FOLLOW_145);
            rule__XAttribute__UnorderedGroup_2__Impl();

            state._fsp--;
            if (state.failed) return ;
            // InternalXcore.g:25386:2: ( rule__XAttribute__UnorderedGroup_2__4 )?
            int alt201=2;
            alt201 = dfa201.predict(input);
            switch (alt201) {
                case 1 :
                    // InternalXcore.g:0:0: rule__XAttribute__UnorderedGroup_2__4
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XAttribute__UnorderedGroup_2__4();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAttribute__UnorderedGroup_2__3"


    // $ANTLR start "rule__XAttribute__UnorderedGroup_2__4"
    // InternalXcore.g:25393:1: rule__XAttribute__UnorderedGroup_2__4 : rule__XAttribute__UnorderedGroup_2__Impl ( rule__XAttribute__UnorderedGroup_2__5 )? ;
    public final void rule__XAttribute__UnorderedGroup_2__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:25397:1: ( rule__XAttribute__UnorderedGroup_2__Impl ( rule__XAttribute__UnorderedGroup_2__5 )? )
            // InternalXcore.g:25398:2: rule__XAttribute__UnorderedGroup_2__Impl ( rule__XAttribute__UnorderedGroup_2__5 )?
            {
            pushFollow(FollowSets000.FOLLOW_145);
            rule__XAttribute__UnorderedGroup_2__Impl();

            state._fsp--;
            if (state.failed) return ;
            // InternalXcore.g:25399:2: ( rule__XAttribute__UnorderedGroup_2__5 )?
            int alt202=2;
            alt202 = dfa202.predict(input);
            switch (alt202) {
                case 1 :
                    // InternalXcore.g:0:0: rule__XAttribute__UnorderedGroup_2__5
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XAttribute__UnorderedGroup_2__5();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAttribute__UnorderedGroup_2__4"


    // $ANTLR start "rule__XAttribute__UnorderedGroup_2__5"
    // InternalXcore.g:25406:1: rule__XAttribute__UnorderedGroup_2__5 : rule__XAttribute__UnorderedGroup_2__Impl ( rule__XAttribute__UnorderedGroup_2__6 )? ;
    public final void rule__XAttribute__UnorderedGroup_2__5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:25410:1: ( rule__XAttribute__UnorderedGroup_2__Impl ( rule__XAttribute__UnorderedGroup_2__6 )? )
            // InternalXcore.g:25411:2: rule__XAttribute__UnorderedGroup_2__Impl ( rule__XAttribute__UnorderedGroup_2__6 )?
            {
            pushFollow(FollowSets000.FOLLOW_145);
            rule__XAttribute__UnorderedGroup_2__Impl();

            state._fsp--;
            if (state.failed) return ;
            // InternalXcore.g:25412:2: ( rule__XAttribute__UnorderedGroup_2__6 )?
            int alt203=2;
            alt203 = dfa203.predict(input);
            switch (alt203) {
                case 1 :
                    // InternalXcore.g:0:0: rule__XAttribute__UnorderedGroup_2__6
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XAttribute__UnorderedGroup_2__6();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAttribute__UnorderedGroup_2__5"


    // $ANTLR start "rule__XAttribute__UnorderedGroup_2__6"
    // InternalXcore.g:25419:1: rule__XAttribute__UnorderedGroup_2__6 : rule__XAttribute__UnorderedGroup_2__Impl ( rule__XAttribute__UnorderedGroup_2__7 )? ;
    public final void rule__XAttribute__UnorderedGroup_2__6() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:25423:1: ( rule__XAttribute__UnorderedGroup_2__Impl ( rule__XAttribute__UnorderedGroup_2__7 )? )
            // InternalXcore.g:25424:2: rule__XAttribute__UnorderedGroup_2__Impl ( rule__XAttribute__UnorderedGroup_2__7 )?
            {
            pushFollow(FollowSets000.FOLLOW_145);
            rule__XAttribute__UnorderedGroup_2__Impl();

            state._fsp--;
            if (state.failed) return ;
            // InternalXcore.g:25425:2: ( rule__XAttribute__UnorderedGroup_2__7 )?
            int alt204=2;
            alt204 = dfa204.predict(input);
            switch (alt204) {
                case 1 :
                    // InternalXcore.g:0:0: rule__XAttribute__UnorderedGroup_2__7
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XAttribute__UnorderedGroup_2__7();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAttribute__UnorderedGroup_2__6"


    // $ANTLR start "rule__XAttribute__UnorderedGroup_2__7"
    // InternalXcore.g:25432:1: rule__XAttribute__UnorderedGroup_2__7 : rule__XAttribute__UnorderedGroup_2__Impl ;
    public final void rule__XAttribute__UnorderedGroup_2__7() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:25436:1: ( rule__XAttribute__UnorderedGroup_2__Impl )
            // InternalXcore.g:25437:2: rule__XAttribute__UnorderedGroup_2__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XAttribute__UnorderedGroup_2__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAttribute__UnorderedGroup_2__7"


    // $ANTLR start "rule__XAttribute__UnorderedGroup_7"
    // InternalXcore.g:25460:1: rule__XAttribute__UnorderedGroup_7 : ( rule__XAttribute__UnorderedGroup_7__0 )? ;
    public final void rule__XAttribute__UnorderedGroup_7() throws RecognitionException {

            	int stackSize = keepStackSize();
        		getUnorderedGroupHelper().enter(grammarAccess.getXAttributeAccess().getUnorderedGroup_7());
            
        try {
            // InternalXcore.g:25465:1: ( ( rule__XAttribute__UnorderedGroup_7__0 )? )
            // InternalXcore.g:25466:2: ( rule__XAttribute__UnorderedGroup_7__0 )?
            {
            // InternalXcore.g:25466:2: ( rule__XAttribute__UnorderedGroup_7__0 )?
            int alt205=2;
            alt205 = dfa205.predict(input);
            switch (alt205) {
                case 1 :
                    // InternalXcore.g:0:0: rule__XAttribute__UnorderedGroup_7__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XAttribute__UnorderedGroup_7__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	getUnorderedGroupHelper().leave(grammarAccess.getXAttributeAccess().getUnorderedGroup_7());
            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAttribute__UnorderedGroup_7"


    // $ANTLR start "rule__XAttribute__UnorderedGroup_7__Impl"
    // InternalXcore.g:25476:1: rule__XAttribute__UnorderedGroup_7__Impl : ( ({...}? => ( ( ( rule__XAttribute__Group_7_0__0 ) ) ) ) | ({...}? => ( ( ( rule__XAttribute__Group_7_1__0 ) ) ) ) | ({...}? => ( ( ( rule__XAttribute__Group_7_2__0 ) ) ) ) | ({...}? => ( ( ( rule__XAttribute__Group_7_3__0 ) ) ) ) ) ;
    public final void rule__XAttribute__UnorderedGroup_7__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        		boolean selected = false;
            
        try {
            // InternalXcore.g:25481:1: ( ( ({...}? => ( ( ( rule__XAttribute__Group_7_0__0 ) ) ) ) | ({...}? => ( ( ( rule__XAttribute__Group_7_1__0 ) ) ) ) | ({...}? => ( ( ( rule__XAttribute__Group_7_2__0 ) ) ) ) | ({...}? => ( ( ( rule__XAttribute__Group_7_3__0 ) ) ) ) ) )
            // InternalXcore.g:25482:3: ( ({...}? => ( ( ( rule__XAttribute__Group_7_0__0 ) ) ) ) | ({...}? => ( ( ( rule__XAttribute__Group_7_1__0 ) ) ) ) | ({...}? => ( ( ( rule__XAttribute__Group_7_2__0 ) ) ) ) | ({...}? => ( ( ( rule__XAttribute__Group_7_3__0 ) ) ) ) )
            {
            // InternalXcore.g:25482:3: ( ({...}? => ( ( ( rule__XAttribute__Group_7_0__0 ) ) ) ) | ({...}? => ( ( ( rule__XAttribute__Group_7_1__0 ) ) ) ) | ({...}? => ( ( ( rule__XAttribute__Group_7_2__0 ) ) ) ) | ({...}? => ( ( ( rule__XAttribute__Group_7_3__0 ) ) ) ) )
            int alt206=4;
            int LA206_0 = input.LA(1);

            if ( LA206_0 == 20 && getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_7(), 0) ) {
                alt206=1;
            }
            else if ( LA206_0 == 22 && getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_7(), 1) ) {
                alt206=2;
            }
            else if ( LA206_0 == 21 && getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_7(), 2) ) {
                alt206=3;
            }
            else if ( LA206_0 == 23 && getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_7(), 3) ) {
                alt206=4;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 206, 0, input);

                throw nvae;
            }
            switch (alt206) {
                case 1 :
                    // InternalXcore.g:25484:4: ({...}? => ( ( ( rule__XAttribute__Group_7_0__0 ) ) ) )
                    {
                    // InternalXcore.g:25484:4: ({...}? => ( ( ( rule__XAttribute__Group_7_0__0 ) ) ) )
                    // InternalXcore.g:25485:5: {...}? => ( ( ( rule__XAttribute__Group_7_0__0 ) ) )
                    {
                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_7(), 0) ) {
                        if (state.backtracking>0) {state.failed=true; return ;}
                        throw new FailedPredicateException(input, "rule__XAttribute__UnorderedGroup_7__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_7(), 0)");
                    }
                    // InternalXcore.g:25485:107: ( ( ( rule__XAttribute__Group_7_0__0 ) ) )
                    // InternalXcore.g:25486:6: ( ( rule__XAttribute__Group_7_0__0 ) )
                    {
                    getUnorderedGroupHelper().select(grammarAccess.getXAttributeAccess().getUnorderedGroup_7(), 0);
                    selected = true;
                    // InternalXcore.g:25492:6: ( ( rule__XAttribute__Group_7_0__0 ) )
                    // InternalXcore.g:25494:7: ( rule__XAttribute__Group_7_0__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXAttributeAccess().getGroup_7_0()); 
                    }
                    // InternalXcore.g:25495:7: ( rule__XAttribute__Group_7_0__0 )
                    // InternalXcore.g:25495:8: rule__XAttribute__Group_7_0__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XAttribute__Group_7_0__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXAttributeAccess().getGroup_7_0()); 
                    }

                    }


                    }


                    }


                    }
                    break;
                case 2 :
                    // InternalXcore.g:25501:4: ({...}? => ( ( ( rule__XAttribute__Group_7_1__0 ) ) ) )
                    {
                    // InternalXcore.g:25501:4: ({...}? => ( ( ( rule__XAttribute__Group_7_1__0 ) ) ) )
                    // InternalXcore.g:25502:5: {...}? => ( ( ( rule__XAttribute__Group_7_1__0 ) ) )
                    {
                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_7(), 1) ) {
                        if (state.backtracking>0) {state.failed=true; return ;}
                        throw new FailedPredicateException(input, "rule__XAttribute__UnorderedGroup_7__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_7(), 1)");
                    }
                    // InternalXcore.g:25502:107: ( ( ( rule__XAttribute__Group_7_1__0 ) ) )
                    // InternalXcore.g:25503:6: ( ( rule__XAttribute__Group_7_1__0 ) )
                    {
                    getUnorderedGroupHelper().select(grammarAccess.getXAttributeAccess().getUnorderedGroup_7(), 1);
                    selected = true;
                    // InternalXcore.g:25509:6: ( ( rule__XAttribute__Group_7_1__0 ) )
                    // InternalXcore.g:25511:7: ( rule__XAttribute__Group_7_1__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXAttributeAccess().getGroup_7_1()); 
                    }
                    // InternalXcore.g:25512:7: ( rule__XAttribute__Group_7_1__0 )
                    // InternalXcore.g:25512:8: rule__XAttribute__Group_7_1__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XAttribute__Group_7_1__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXAttributeAccess().getGroup_7_1()); 
                    }

                    }


                    }


                    }


                    }
                    break;
                case 3 :
                    // InternalXcore.g:25518:4: ({...}? => ( ( ( rule__XAttribute__Group_7_2__0 ) ) ) )
                    {
                    // InternalXcore.g:25518:4: ({...}? => ( ( ( rule__XAttribute__Group_7_2__0 ) ) ) )
                    // InternalXcore.g:25519:5: {...}? => ( ( ( rule__XAttribute__Group_7_2__0 ) ) )
                    {
                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_7(), 2) ) {
                        if (state.backtracking>0) {state.failed=true; return ;}
                        throw new FailedPredicateException(input, "rule__XAttribute__UnorderedGroup_7__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_7(), 2)");
                    }
                    // InternalXcore.g:25519:107: ( ( ( rule__XAttribute__Group_7_2__0 ) ) )
                    // InternalXcore.g:25520:6: ( ( rule__XAttribute__Group_7_2__0 ) )
                    {
                    getUnorderedGroupHelper().select(grammarAccess.getXAttributeAccess().getUnorderedGroup_7(), 2);
                    selected = true;
                    // InternalXcore.g:25526:6: ( ( rule__XAttribute__Group_7_2__0 ) )
                    // InternalXcore.g:25528:7: ( rule__XAttribute__Group_7_2__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXAttributeAccess().getGroup_7_2()); 
                    }
                    // InternalXcore.g:25529:7: ( rule__XAttribute__Group_7_2__0 )
                    // InternalXcore.g:25529:8: rule__XAttribute__Group_7_2__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XAttribute__Group_7_2__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXAttributeAccess().getGroup_7_2()); 
                    }

                    }


                    }


                    }


                    }
                    break;
                case 4 :
                    // InternalXcore.g:25535:4: ({...}? => ( ( ( rule__XAttribute__Group_7_3__0 ) ) ) )
                    {
                    // InternalXcore.g:25535:4: ({...}? => ( ( ( rule__XAttribute__Group_7_3__0 ) ) ) )
                    // InternalXcore.g:25536:5: {...}? => ( ( ( rule__XAttribute__Group_7_3__0 ) ) )
                    {
                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_7(), 3) ) {
                        if (state.backtracking>0) {state.failed=true; return ;}
                        throw new FailedPredicateException(input, "rule__XAttribute__UnorderedGroup_7__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_7(), 3)");
                    }
                    // InternalXcore.g:25536:107: ( ( ( rule__XAttribute__Group_7_3__0 ) ) )
                    // InternalXcore.g:25537:6: ( ( rule__XAttribute__Group_7_3__0 ) )
                    {
                    getUnorderedGroupHelper().select(grammarAccess.getXAttributeAccess().getUnorderedGroup_7(), 3);
                    selected = true;
                    // InternalXcore.g:25543:6: ( ( rule__XAttribute__Group_7_3__0 ) )
                    // InternalXcore.g:25545:7: ( rule__XAttribute__Group_7_3__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXAttributeAccess().getGroup_7_3()); 
                    }
                    // InternalXcore.g:25546:7: ( rule__XAttribute__Group_7_3__0 )
                    // InternalXcore.g:25546:8: rule__XAttribute__Group_7_3__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XAttribute__Group_7_3__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXAttributeAccess().getGroup_7_3()); 
                    }

                    }


                    }


                    }


                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	if (selected)
            		getUnorderedGroupHelper().returnFromSelection(grammarAccess.getXAttributeAccess().getUnorderedGroup_7());
            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAttribute__UnorderedGroup_7__Impl"


    // $ANTLR start "rule__XAttribute__UnorderedGroup_7__0"
    // InternalXcore.g:25561:1: rule__XAttribute__UnorderedGroup_7__0 : rule__XAttribute__UnorderedGroup_7__Impl ( rule__XAttribute__UnorderedGroup_7__1 )? ;
    public final void rule__XAttribute__UnorderedGroup_7__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:25565:1: ( rule__XAttribute__UnorderedGroup_7__Impl ( rule__XAttribute__UnorderedGroup_7__1 )? )
            // InternalXcore.g:25566:2: rule__XAttribute__UnorderedGroup_7__Impl ( rule__XAttribute__UnorderedGroup_7__1 )?
            {
            pushFollow(FollowSets000.FOLLOW_146);
            rule__XAttribute__UnorderedGroup_7__Impl();

            state._fsp--;
            if (state.failed) return ;
            // InternalXcore.g:25567:2: ( rule__XAttribute__UnorderedGroup_7__1 )?
            int alt207=2;
            alt207 = dfa207.predict(input);
            switch (alt207) {
                case 1 :
                    // InternalXcore.g:0:0: rule__XAttribute__UnorderedGroup_7__1
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XAttribute__UnorderedGroup_7__1();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAttribute__UnorderedGroup_7__0"


    // $ANTLR start "rule__XAttribute__UnorderedGroup_7__1"
    // InternalXcore.g:25574:1: rule__XAttribute__UnorderedGroup_7__1 : rule__XAttribute__UnorderedGroup_7__Impl ( rule__XAttribute__UnorderedGroup_7__2 )? ;
    public final void rule__XAttribute__UnorderedGroup_7__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:25578:1: ( rule__XAttribute__UnorderedGroup_7__Impl ( rule__XAttribute__UnorderedGroup_7__2 )? )
            // InternalXcore.g:25579:2: rule__XAttribute__UnorderedGroup_7__Impl ( rule__XAttribute__UnorderedGroup_7__2 )?
            {
            pushFollow(FollowSets000.FOLLOW_146);
            rule__XAttribute__UnorderedGroup_7__Impl();

            state._fsp--;
            if (state.failed) return ;
            // InternalXcore.g:25580:2: ( rule__XAttribute__UnorderedGroup_7__2 )?
            int alt208=2;
            alt208 = dfa208.predict(input);
            switch (alt208) {
                case 1 :
                    // InternalXcore.g:0:0: rule__XAttribute__UnorderedGroup_7__2
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XAttribute__UnorderedGroup_7__2();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAttribute__UnorderedGroup_7__1"


    // $ANTLR start "rule__XAttribute__UnorderedGroup_7__2"
    // InternalXcore.g:25587:1: rule__XAttribute__UnorderedGroup_7__2 : rule__XAttribute__UnorderedGroup_7__Impl ( rule__XAttribute__UnorderedGroup_7__3 )? ;
    public final void rule__XAttribute__UnorderedGroup_7__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:25591:1: ( rule__XAttribute__UnorderedGroup_7__Impl ( rule__XAttribute__UnorderedGroup_7__3 )? )
            // InternalXcore.g:25592:2: rule__XAttribute__UnorderedGroup_7__Impl ( rule__XAttribute__UnorderedGroup_7__3 )?
            {
            pushFollow(FollowSets000.FOLLOW_146);
            rule__XAttribute__UnorderedGroup_7__Impl();

            state._fsp--;
            if (state.failed) return ;
            // InternalXcore.g:25593:2: ( rule__XAttribute__UnorderedGroup_7__3 )?
            int alt209=2;
            alt209 = dfa209.predict(input);
            switch (alt209) {
                case 1 :
                    // InternalXcore.g:0:0: rule__XAttribute__UnorderedGroup_7__3
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XAttribute__UnorderedGroup_7__3();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAttribute__UnorderedGroup_7__2"


    // $ANTLR start "rule__XAttribute__UnorderedGroup_7__3"
    // InternalXcore.g:25600:1: rule__XAttribute__UnorderedGroup_7__3 : rule__XAttribute__UnorderedGroup_7__Impl ;
    public final void rule__XAttribute__UnorderedGroup_7__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:25604:1: ( rule__XAttribute__UnorderedGroup_7__Impl )
            // InternalXcore.g:25605:2: rule__XAttribute__UnorderedGroup_7__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XAttribute__UnorderedGroup_7__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAttribute__UnorderedGroup_7__3"


    // $ANTLR start "rule__XReference__UnorderedGroup_3"
    // InternalXcore.g:25620:1: rule__XReference__UnorderedGroup_3 : ( rule__XReference__UnorderedGroup_3__0 )? ;
    public final void rule__XReference__UnorderedGroup_3() throws RecognitionException {

            	int stackSize = keepStackSize();
        		getUnorderedGroupHelper().enter(grammarAccess.getXReferenceAccess().getUnorderedGroup_3());
            
        try {
            // InternalXcore.g:25625:1: ( ( rule__XReference__UnorderedGroup_3__0 )? )
            // InternalXcore.g:25626:2: ( rule__XReference__UnorderedGroup_3__0 )?
            {
            // InternalXcore.g:25626:2: ( rule__XReference__UnorderedGroup_3__0 )?
            int alt210=2;
            int LA210_0 = input.LA(1);

            if ( LA210_0 == 51 && getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 0) ) {
                alt210=1;
            }
            else if ( LA210_0 == 50 && getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 1) ) {
                alt210=1;
            }
            else if ( LA210_0 == 44 && getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 2) ) {
                alt210=1;
            }
            else if ( LA210_0 == 49 && getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 3) ) {
                alt210=1;
            }
            else if ( LA210_0 == 53 && getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 4) ) {
                alt210=1;
            }
            else if ( LA210_0 == 52 && getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 5) ) {
                alt210=1;
            }
            else if ( LA210_0 == 32 && getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 6) ) {
                alt210=1;
            }
            switch (alt210) {
                case 1 :
                    // InternalXcore.g:0:0: rule__XReference__UnorderedGroup_3__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XReference__UnorderedGroup_3__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	getUnorderedGroupHelper().leave(grammarAccess.getXReferenceAccess().getUnorderedGroup_3());
            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__UnorderedGroup_3"


    // $ANTLR start "rule__XReference__UnorderedGroup_3__Impl"
    // InternalXcore.g:25636:1: rule__XReference__UnorderedGroup_3__Impl : ( ({...}? => ( ( ( rule__XReference__UnorderedAssignment_3_0 ) ) ) ) | ({...}? => ( ( ( rule__XReference__UniqueAssignment_3_1 ) ) ) ) | ({...}? => ( ( ( rule__XReference__ReadonlyAssignment_3_2 ) ) ) ) | ({...}? => ( ( ( rule__XReference__TransientAssignment_3_3 ) ) ) ) | ({...}? => ( ( ( rule__XReference__VolatileAssignment_3_4 ) ) ) ) | ({...}? => ( ( ( rule__XReference__UnsettableAssignment_3_5 ) ) ) ) | ({...}? => ( ( ( rule__XReference__DerivedAssignment_3_6 ) ) ) ) ) ;
    public final void rule__XReference__UnorderedGroup_3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        		boolean selected = false;
            
        try {
            // InternalXcore.g:25641:1: ( ( ({...}? => ( ( ( rule__XReference__UnorderedAssignment_3_0 ) ) ) ) | ({...}? => ( ( ( rule__XReference__UniqueAssignment_3_1 ) ) ) ) | ({...}? => ( ( ( rule__XReference__ReadonlyAssignment_3_2 ) ) ) ) | ({...}? => ( ( ( rule__XReference__TransientAssignment_3_3 ) ) ) ) | ({...}? => ( ( ( rule__XReference__VolatileAssignment_3_4 ) ) ) ) | ({...}? => ( ( ( rule__XReference__UnsettableAssignment_3_5 ) ) ) ) | ({...}? => ( ( ( rule__XReference__DerivedAssignment_3_6 ) ) ) ) ) )
            // InternalXcore.g:25642:3: ( ({...}? => ( ( ( rule__XReference__UnorderedAssignment_3_0 ) ) ) ) | ({...}? => ( ( ( rule__XReference__UniqueAssignment_3_1 ) ) ) ) | ({...}? => ( ( ( rule__XReference__ReadonlyAssignment_3_2 ) ) ) ) | ({...}? => ( ( ( rule__XReference__TransientAssignment_3_3 ) ) ) ) | ({...}? => ( ( ( rule__XReference__VolatileAssignment_3_4 ) ) ) ) | ({...}? => ( ( ( rule__XReference__UnsettableAssignment_3_5 ) ) ) ) | ({...}? => ( ( ( rule__XReference__DerivedAssignment_3_6 ) ) ) ) )
            {
            // InternalXcore.g:25642:3: ( ({...}? => ( ( ( rule__XReference__UnorderedAssignment_3_0 ) ) ) ) | ({...}? => ( ( ( rule__XReference__UniqueAssignment_3_1 ) ) ) ) | ({...}? => ( ( ( rule__XReference__ReadonlyAssignment_3_2 ) ) ) ) | ({...}? => ( ( ( rule__XReference__TransientAssignment_3_3 ) ) ) ) | ({...}? => ( ( ( rule__XReference__VolatileAssignment_3_4 ) ) ) ) | ({...}? => ( ( ( rule__XReference__UnsettableAssignment_3_5 ) ) ) ) | ({...}? => ( ( ( rule__XReference__DerivedAssignment_3_6 ) ) ) ) )
            int alt211=7;
            int LA211_0 = input.LA(1);

            if ( LA211_0 == 51 && getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 0) ) {
                alt211=1;
            }
            else if ( LA211_0 == 50 && getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 1) ) {
                alt211=2;
            }
            else if ( LA211_0 == 44 && getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 2) ) {
                alt211=3;
            }
            else if ( LA211_0 == 49 && getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 3) ) {
                alt211=4;
            }
            else if ( LA211_0 == 53 && getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 4) ) {
                alt211=5;
            }
            else if ( LA211_0 == 52 && getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 5) ) {
                alt211=6;
            }
            else if ( LA211_0 == 32 && getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 6) ) {
                alt211=7;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 211, 0, input);

                throw nvae;
            }
            switch (alt211) {
                case 1 :
                    // InternalXcore.g:25644:4: ({...}? => ( ( ( rule__XReference__UnorderedAssignment_3_0 ) ) ) )
                    {
                    // InternalXcore.g:25644:4: ({...}? => ( ( ( rule__XReference__UnorderedAssignment_3_0 ) ) ) )
                    // InternalXcore.g:25645:5: {...}? => ( ( ( rule__XReference__UnorderedAssignment_3_0 ) ) )
                    {
                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 0) ) {
                        if (state.backtracking>0) {state.failed=true; return ;}
                        throw new FailedPredicateException(input, "rule__XReference__UnorderedGroup_3__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 0)");
                    }
                    // InternalXcore.g:25645:107: ( ( ( rule__XReference__UnorderedAssignment_3_0 ) ) )
                    // InternalXcore.g:25646:6: ( ( rule__XReference__UnorderedAssignment_3_0 ) )
                    {
                    getUnorderedGroupHelper().select(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 0);
                    selected = true;
                    // InternalXcore.g:25652:6: ( ( rule__XReference__UnorderedAssignment_3_0 ) )
                    // InternalXcore.g:25654:7: ( rule__XReference__UnorderedAssignment_3_0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXReferenceAccess().getUnorderedAssignment_3_0()); 
                    }
                    // InternalXcore.g:25655:7: ( rule__XReference__UnorderedAssignment_3_0 )
                    // InternalXcore.g:25655:8: rule__XReference__UnorderedAssignment_3_0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XReference__UnorderedAssignment_3_0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXReferenceAccess().getUnorderedAssignment_3_0()); 
                    }

                    }


                    }


                    }


                    }
                    break;
                case 2 :
                    // InternalXcore.g:25661:4: ({...}? => ( ( ( rule__XReference__UniqueAssignment_3_1 ) ) ) )
                    {
                    // InternalXcore.g:25661:4: ({...}? => ( ( ( rule__XReference__UniqueAssignment_3_1 ) ) ) )
                    // InternalXcore.g:25662:5: {...}? => ( ( ( rule__XReference__UniqueAssignment_3_1 ) ) )
                    {
                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 1) ) {
                        if (state.backtracking>0) {state.failed=true; return ;}
                        throw new FailedPredicateException(input, "rule__XReference__UnorderedGroup_3__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 1)");
                    }
                    // InternalXcore.g:25662:107: ( ( ( rule__XReference__UniqueAssignment_3_1 ) ) )
                    // InternalXcore.g:25663:6: ( ( rule__XReference__UniqueAssignment_3_1 ) )
                    {
                    getUnorderedGroupHelper().select(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 1);
                    selected = true;
                    // InternalXcore.g:25669:6: ( ( rule__XReference__UniqueAssignment_3_1 ) )
                    // InternalXcore.g:25671:7: ( rule__XReference__UniqueAssignment_3_1 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXReferenceAccess().getUniqueAssignment_3_1()); 
                    }
                    // InternalXcore.g:25672:7: ( rule__XReference__UniqueAssignment_3_1 )
                    // InternalXcore.g:25672:8: rule__XReference__UniqueAssignment_3_1
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XReference__UniqueAssignment_3_1();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXReferenceAccess().getUniqueAssignment_3_1()); 
                    }

                    }


                    }


                    }


                    }
                    break;
                case 3 :
                    // InternalXcore.g:25678:4: ({...}? => ( ( ( rule__XReference__ReadonlyAssignment_3_2 ) ) ) )
                    {
                    // InternalXcore.g:25678:4: ({...}? => ( ( ( rule__XReference__ReadonlyAssignment_3_2 ) ) ) )
                    // InternalXcore.g:25679:5: {...}? => ( ( ( rule__XReference__ReadonlyAssignment_3_2 ) ) )
                    {
                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 2) ) {
                        if (state.backtracking>0) {state.failed=true; return ;}
                        throw new FailedPredicateException(input, "rule__XReference__UnorderedGroup_3__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 2)");
                    }
                    // InternalXcore.g:25679:107: ( ( ( rule__XReference__ReadonlyAssignment_3_2 ) ) )
                    // InternalXcore.g:25680:6: ( ( rule__XReference__ReadonlyAssignment_3_2 ) )
                    {
                    getUnorderedGroupHelper().select(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 2);
                    selected = true;
                    // InternalXcore.g:25686:6: ( ( rule__XReference__ReadonlyAssignment_3_2 ) )
                    // InternalXcore.g:25688:7: ( rule__XReference__ReadonlyAssignment_3_2 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXReferenceAccess().getReadonlyAssignment_3_2()); 
                    }
                    // InternalXcore.g:25689:7: ( rule__XReference__ReadonlyAssignment_3_2 )
                    // InternalXcore.g:25689:8: rule__XReference__ReadonlyAssignment_3_2
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XReference__ReadonlyAssignment_3_2();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXReferenceAccess().getReadonlyAssignment_3_2()); 
                    }

                    }


                    }


                    }


                    }
                    break;
                case 4 :
                    // InternalXcore.g:25695:4: ({...}? => ( ( ( rule__XReference__TransientAssignment_3_3 ) ) ) )
                    {
                    // InternalXcore.g:25695:4: ({...}? => ( ( ( rule__XReference__TransientAssignment_3_3 ) ) ) )
                    // InternalXcore.g:25696:5: {...}? => ( ( ( rule__XReference__TransientAssignment_3_3 ) ) )
                    {
                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 3) ) {
                        if (state.backtracking>0) {state.failed=true; return ;}
                        throw new FailedPredicateException(input, "rule__XReference__UnorderedGroup_3__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 3)");
                    }
                    // InternalXcore.g:25696:107: ( ( ( rule__XReference__TransientAssignment_3_3 ) ) )
                    // InternalXcore.g:25697:6: ( ( rule__XReference__TransientAssignment_3_3 ) )
                    {
                    getUnorderedGroupHelper().select(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 3);
                    selected = true;
                    // InternalXcore.g:25703:6: ( ( rule__XReference__TransientAssignment_3_3 ) )
                    // InternalXcore.g:25705:7: ( rule__XReference__TransientAssignment_3_3 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXReferenceAccess().getTransientAssignment_3_3()); 
                    }
                    // InternalXcore.g:25706:7: ( rule__XReference__TransientAssignment_3_3 )
                    // InternalXcore.g:25706:8: rule__XReference__TransientAssignment_3_3
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XReference__TransientAssignment_3_3();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXReferenceAccess().getTransientAssignment_3_3()); 
                    }

                    }


                    }


                    }


                    }
                    break;
                case 5 :
                    // InternalXcore.g:25712:4: ({...}? => ( ( ( rule__XReference__VolatileAssignment_3_4 ) ) ) )
                    {
                    // InternalXcore.g:25712:4: ({...}? => ( ( ( rule__XReference__VolatileAssignment_3_4 ) ) ) )
                    // InternalXcore.g:25713:5: {...}? => ( ( ( rule__XReference__VolatileAssignment_3_4 ) ) )
                    {
                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 4) ) {
                        if (state.backtracking>0) {state.failed=true; return ;}
                        throw new FailedPredicateException(input, "rule__XReference__UnorderedGroup_3__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 4)");
                    }
                    // InternalXcore.g:25713:107: ( ( ( rule__XReference__VolatileAssignment_3_4 ) ) )
                    // InternalXcore.g:25714:6: ( ( rule__XReference__VolatileAssignment_3_4 ) )
                    {
                    getUnorderedGroupHelper().select(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 4);
                    selected = true;
                    // InternalXcore.g:25720:6: ( ( rule__XReference__VolatileAssignment_3_4 ) )
                    // InternalXcore.g:25722:7: ( rule__XReference__VolatileAssignment_3_4 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXReferenceAccess().getVolatileAssignment_3_4()); 
                    }
                    // InternalXcore.g:25723:7: ( rule__XReference__VolatileAssignment_3_4 )
                    // InternalXcore.g:25723:8: rule__XReference__VolatileAssignment_3_4
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XReference__VolatileAssignment_3_4();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXReferenceAccess().getVolatileAssignment_3_4()); 
                    }

                    }


                    }


                    }


                    }
                    break;
                case 6 :
                    // InternalXcore.g:25729:4: ({...}? => ( ( ( rule__XReference__UnsettableAssignment_3_5 ) ) ) )
                    {
                    // InternalXcore.g:25729:4: ({...}? => ( ( ( rule__XReference__UnsettableAssignment_3_5 ) ) ) )
                    // InternalXcore.g:25730:5: {...}? => ( ( ( rule__XReference__UnsettableAssignment_3_5 ) ) )
                    {
                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 5) ) {
                        if (state.backtracking>0) {state.failed=true; return ;}
                        throw new FailedPredicateException(input, "rule__XReference__UnorderedGroup_3__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 5)");
                    }
                    // InternalXcore.g:25730:107: ( ( ( rule__XReference__UnsettableAssignment_3_5 ) ) )
                    // InternalXcore.g:25731:6: ( ( rule__XReference__UnsettableAssignment_3_5 ) )
                    {
                    getUnorderedGroupHelper().select(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 5);
                    selected = true;
                    // InternalXcore.g:25737:6: ( ( rule__XReference__UnsettableAssignment_3_5 ) )
                    // InternalXcore.g:25739:7: ( rule__XReference__UnsettableAssignment_3_5 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXReferenceAccess().getUnsettableAssignment_3_5()); 
                    }
                    // InternalXcore.g:25740:7: ( rule__XReference__UnsettableAssignment_3_5 )
                    // InternalXcore.g:25740:8: rule__XReference__UnsettableAssignment_3_5
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XReference__UnsettableAssignment_3_5();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXReferenceAccess().getUnsettableAssignment_3_5()); 
                    }

                    }


                    }


                    }


                    }
                    break;
                case 7 :
                    // InternalXcore.g:25746:4: ({...}? => ( ( ( rule__XReference__DerivedAssignment_3_6 ) ) ) )
                    {
                    // InternalXcore.g:25746:4: ({...}? => ( ( ( rule__XReference__DerivedAssignment_3_6 ) ) ) )
                    // InternalXcore.g:25747:5: {...}? => ( ( ( rule__XReference__DerivedAssignment_3_6 ) ) )
                    {
                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 6) ) {
                        if (state.backtracking>0) {state.failed=true; return ;}
                        throw new FailedPredicateException(input, "rule__XReference__UnorderedGroup_3__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 6)");
                    }
                    // InternalXcore.g:25747:107: ( ( ( rule__XReference__DerivedAssignment_3_6 ) ) )
                    // InternalXcore.g:25748:6: ( ( rule__XReference__DerivedAssignment_3_6 ) )
                    {
                    getUnorderedGroupHelper().select(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 6);
                    selected = true;
                    // InternalXcore.g:25754:6: ( ( rule__XReference__DerivedAssignment_3_6 ) )
                    // InternalXcore.g:25756:7: ( rule__XReference__DerivedAssignment_3_6 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXReferenceAccess().getDerivedAssignment_3_6()); 
                    }
                    // InternalXcore.g:25757:7: ( rule__XReference__DerivedAssignment_3_6 )
                    // InternalXcore.g:25757:8: rule__XReference__DerivedAssignment_3_6
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XReference__DerivedAssignment_3_6();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXReferenceAccess().getDerivedAssignment_3_6()); 
                    }

                    }


                    }


                    }


                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	if (selected)
            		getUnorderedGroupHelper().returnFromSelection(grammarAccess.getXReferenceAccess().getUnorderedGroup_3());
            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__UnorderedGroup_3__Impl"


    // $ANTLR start "rule__XReference__UnorderedGroup_3__0"
    // InternalXcore.g:25772:1: rule__XReference__UnorderedGroup_3__0 : rule__XReference__UnorderedGroup_3__Impl ( rule__XReference__UnorderedGroup_3__1 )? ;
    public final void rule__XReference__UnorderedGroup_3__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:25776:1: ( rule__XReference__UnorderedGroup_3__Impl ( rule__XReference__UnorderedGroup_3__1 )? )
            // InternalXcore.g:25777:2: rule__XReference__UnorderedGroup_3__Impl ( rule__XReference__UnorderedGroup_3__1 )?
            {
            pushFollow(FollowSets000.FOLLOW_147);
            rule__XReference__UnorderedGroup_3__Impl();

            state._fsp--;
            if (state.failed) return ;
            // InternalXcore.g:25778:2: ( rule__XReference__UnorderedGroup_3__1 )?
            int alt212=2;
            int LA212_0 = input.LA(1);

            if ( LA212_0 == 51 && getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 0) ) {
                alt212=1;
            }
            else if ( LA212_0 == 50 && getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 1) ) {
                alt212=1;
            }
            else if ( LA212_0 == 44 && getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 2) ) {
                alt212=1;
            }
            else if ( LA212_0 == 49 && getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 3) ) {
                alt212=1;
            }
            else if ( LA212_0 == 53 && getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 4) ) {
                alt212=1;
            }
            else if ( LA212_0 == 52 && getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 5) ) {
                alt212=1;
            }
            else if ( LA212_0 == 32 && getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 6) ) {
                alt212=1;
            }
            switch (alt212) {
                case 1 :
                    // InternalXcore.g:0:0: rule__XReference__UnorderedGroup_3__1
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XReference__UnorderedGroup_3__1();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__UnorderedGroup_3__0"


    // $ANTLR start "rule__XReference__UnorderedGroup_3__1"
    // InternalXcore.g:25785:1: rule__XReference__UnorderedGroup_3__1 : rule__XReference__UnorderedGroup_3__Impl ( rule__XReference__UnorderedGroup_3__2 )? ;
    public final void rule__XReference__UnorderedGroup_3__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:25789:1: ( rule__XReference__UnorderedGroup_3__Impl ( rule__XReference__UnorderedGroup_3__2 )? )
            // InternalXcore.g:25790:2: rule__XReference__UnorderedGroup_3__Impl ( rule__XReference__UnorderedGroup_3__2 )?
            {
            pushFollow(FollowSets000.FOLLOW_147);
            rule__XReference__UnorderedGroup_3__Impl();

            state._fsp--;
            if (state.failed) return ;
            // InternalXcore.g:25791:2: ( rule__XReference__UnorderedGroup_3__2 )?
            int alt213=2;
            int LA213_0 = input.LA(1);

            if ( LA213_0 == 51 && getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 0) ) {
                alt213=1;
            }
            else if ( LA213_0 == 50 && getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 1) ) {
                alt213=1;
            }
            else if ( LA213_0 == 44 && getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 2) ) {
                alt213=1;
            }
            else if ( LA213_0 == 49 && getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 3) ) {
                alt213=1;
            }
            else if ( LA213_0 == 53 && getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 4) ) {
                alt213=1;
            }
            else if ( LA213_0 == 52 && getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 5) ) {
                alt213=1;
            }
            else if ( LA213_0 == 32 && getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 6) ) {
                alt213=1;
            }
            switch (alt213) {
                case 1 :
                    // InternalXcore.g:0:0: rule__XReference__UnorderedGroup_3__2
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XReference__UnorderedGroup_3__2();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__UnorderedGroup_3__1"


    // $ANTLR start "rule__XReference__UnorderedGroup_3__2"
    // InternalXcore.g:25798:1: rule__XReference__UnorderedGroup_3__2 : rule__XReference__UnorderedGroup_3__Impl ( rule__XReference__UnorderedGroup_3__3 )? ;
    public final void rule__XReference__UnorderedGroup_3__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:25802:1: ( rule__XReference__UnorderedGroup_3__Impl ( rule__XReference__UnorderedGroup_3__3 )? )
            // InternalXcore.g:25803:2: rule__XReference__UnorderedGroup_3__Impl ( rule__XReference__UnorderedGroup_3__3 )?
            {
            pushFollow(FollowSets000.FOLLOW_147);
            rule__XReference__UnorderedGroup_3__Impl();

            state._fsp--;
            if (state.failed) return ;
            // InternalXcore.g:25804:2: ( rule__XReference__UnorderedGroup_3__3 )?
            int alt214=2;
            int LA214_0 = input.LA(1);

            if ( LA214_0 == 51 && getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 0) ) {
                alt214=1;
            }
            else if ( LA214_0 == 50 && getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 1) ) {
                alt214=1;
            }
            else if ( LA214_0 == 44 && getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 2) ) {
                alt214=1;
            }
            else if ( LA214_0 == 49 && getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 3) ) {
                alt214=1;
            }
            else if ( LA214_0 == 53 && getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 4) ) {
                alt214=1;
            }
            else if ( LA214_0 == 52 && getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 5) ) {
                alt214=1;
            }
            else if ( LA214_0 == 32 && getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 6) ) {
                alt214=1;
            }
            switch (alt214) {
                case 1 :
                    // InternalXcore.g:0:0: rule__XReference__UnorderedGroup_3__3
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XReference__UnorderedGroup_3__3();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__UnorderedGroup_3__2"


    // $ANTLR start "rule__XReference__UnorderedGroup_3__3"
    // InternalXcore.g:25811:1: rule__XReference__UnorderedGroup_3__3 : rule__XReference__UnorderedGroup_3__Impl ( rule__XReference__UnorderedGroup_3__4 )? ;
    public final void rule__XReference__UnorderedGroup_3__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:25815:1: ( rule__XReference__UnorderedGroup_3__Impl ( rule__XReference__UnorderedGroup_3__4 )? )
            // InternalXcore.g:25816:2: rule__XReference__UnorderedGroup_3__Impl ( rule__XReference__UnorderedGroup_3__4 )?
            {
            pushFollow(FollowSets000.FOLLOW_147);
            rule__XReference__UnorderedGroup_3__Impl();

            state._fsp--;
            if (state.failed) return ;
            // InternalXcore.g:25817:2: ( rule__XReference__UnorderedGroup_3__4 )?
            int alt215=2;
            int LA215_0 = input.LA(1);

            if ( LA215_0 == 51 && getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 0) ) {
                alt215=1;
            }
            else if ( LA215_0 == 50 && getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 1) ) {
                alt215=1;
            }
            else if ( LA215_0 == 44 && getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 2) ) {
                alt215=1;
            }
            else if ( LA215_0 == 49 && getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 3) ) {
                alt215=1;
            }
            else if ( LA215_0 == 53 && getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 4) ) {
                alt215=1;
            }
            else if ( LA215_0 == 52 && getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 5) ) {
                alt215=1;
            }
            else if ( LA215_0 == 32 && getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 6) ) {
                alt215=1;
            }
            switch (alt215) {
                case 1 :
                    // InternalXcore.g:0:0: rule__XReference__UnorderedGroup_3__4
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XReference__UnorderedGroup_3__4();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__UnorderedGroup_3__3"


    // $ANTLR start "rule__XReference__UnorderedGroup_3__4"
    // InternalXcore.g:25824:1: rule__XReference__UnorderedGroup_3__4 : rule__XReference__UnorderedGroup_3__Impl ( rule__XReference__UnorderedGroup_3__5 )? ;
    public final void rule__XReference__UnorderedGroup_3__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:25828:1: ( rule__XReference__UnorderedGroup_3__Impl ( rule__XReference__UnorderedGroup_3__5 )? )
            // InternalXcore.g:25829:2: rule__XReference__UnorderedGroup_3__Impl ( rule__XReference__UnorderedGroup_3__5 )?
            {
            pushFollow(FollowSets000.FOLLOW_147);
            rule__XReference__UnorderedGroup_3__Impl();

            state._fsp--;
            if (state.failed) return ;
            // InternalXcore.g:25830:2: ( rule__XReference__UnorderedGroup_3__5 )?
            int alt216=2;
            int LA216_0 = input.LA(1);

            if ( LA216_0 == 51 && getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 0) ) {
                alt216=1;
            }
            else if ( LA216_0 == 50 && getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 1) ) {
                alt216=1;
            }
            else if ( LA216_0 == 44 && getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 2) ) {
                alt216=1;
            }
            else if ( LA216_0 == 49 && getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 3) ) {
                alt216=1;
            }
            else if ( LA216_0 == 53 && getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 4) ) {
                alt216=1;
            }
            else if ( LA216_0 == 52 && getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 5) ) {
                alt216=1;
            }
            else if ( LA216_0 == 32 && getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 6) ) {
                alt216=1;
            }
            switch (alt216) {
                case 1 :
                    // InternalXcore.g:0:0: rule__XReference__UnorderedGroup_3__5
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XReference__UnorderedGroup_3__5();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__UnorderedGroup_3__4"


    // $ANTLR start "rule__XReference__UnorderedGroup_3__5"
    // InternalXcore.g:25837:1: rule__XReference__UnorderedGroup_3__5 : rule__XReference__UnorderedGroup_3__Impl ( rule__XReference__UnorderedGroup_3__6 )? ;
    public final void rule__XReference__UnorderedGroup_3__5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:25841:1: ( rule__XReference__UnorderedGroup_3__Impl ( rule__XReference__UnorderedGroup_3__6 )? )
            // InternalXcore.g:25842:2: rule__XReference__UnorderedGroup_3__Impl ( rule__XReference__UnorderedGroup_3__6 )?
            {
            pushFollow(FollowSets000.FOLLOW_147);
            rule__XReference__UnorderedGroup_3__Impl();

            state._fsp--;
            if (state.failed) return ;
            // InternalXcore.g:25843:2: ( rule__XReference__UnorderedGroup_3__6 )?
            int alt217=2;
            int LA217_0 = input.LA(1);

            if ( LA217_0 == 51 && getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 0) ) {
                alt217=1;
            }
            else if ( LA217_0 == 50 && getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 1) ) {
                alt217=1;
            }
            else if ( LA217_0 == 44 && getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 2) ) {
                alt217=1;
            }
            else if ( LA217_0 == 49 && getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 3) ) {
                alt217=1;
            }
            else if ( LA217_0 == 53 && getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 4) ) {
                alt217=1;
            }
            else if ( LA217_0 == 52 && getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 5) ) {
                alt217=1;
            }
            else if ( LA217_0 == 32 && getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 6) ) {
                alt217=1;
            }
            switch (alt217) {
                case 1 :
                    // InternalXcore.g:0:0: rule__XReference__UnorderedGroup_3__6
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XReference__UnorderedGroup_3__6();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__UnorderedGroup_3__5"


    // $ANTLR start "rule__XReference__UnorderedGroup_3__6"
    // InternalXcore.g:25850:1: rule__XReference__UnorderedGroup_3__6 : rule__XReference__UnorderedGroup_3__Impl ;
    public final void rule__XReference__UnorderedGroup_3__6() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:25854:1: ( rule__XReference__UnorderedGroup_3__Impl )
            // InternalXcore.g:25855:2: rule__XReference__UnorderedGroup_3__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XReference__UnorderedGroup_3__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__UnorderedGroup_3__6"


    // $ANTLR start "rule__XReference__UnorderedGroup_9"
    // InternalXcore.g:25876:1: rule__XReference__UnorderedGroup_9 : ( rule__XReference__UnorderedGroup_9__0 )? ;
    public final void rule__XReference__UnorderedGroup_9() throws RecognitionException {

            	int stackSize = keepStackSize();
        		getUnorderedGroupHelper().enter(grammarAccess.getXReferenceAccess().getUnorderedGroup_9());
            
        try {
            // InternalXcore.g:25881:1: ( ( rule__XReference__UnorderedGroup_9__0 )? )
            // InternalXcore.g:25882:2: ( rule__XReference__UnorderedGroup_9__0 )?
            {
            // InternalXcore.g:25882:2: ( rule__XReference__UnorderedGroup_9__0 )?
            int alt218=2;
            alt218 = dfa218.predict(input);
            switch (alt218) {
                case 1 :
                    // InternalXcore.g:0:0: rule__XReference__UnorderedGroup_9__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XReference__UnorderedGroup_9__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	getUnorderedGroupHelper().leave(grammarAccess.getXReferenceAccess().getUnorderedGroup_9());
            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__UnorderedGroup_9"


    // $ANTLR start "rule__XReference__UnorderedGroup_9__Impl"
    // InternalXcore.g:25892:1: rule__XReference__UnorderedGroup_9__Impl : ( ({...}? => ( ( ( rule__XReference__Group_9_0__0 ) ) ) ) | ({...}? => ( ( ( rule__XReference__Group_9_1__0 ) ) ) ) | ({...}? => ( ( ( rule__XReference__Group_9_2__0 ) ) ) ) | ({...}? => ( ( ( rule__XReference__Group_9_3__0 ) ) ) ) ) ;
    public final void rule__XReference__UnorderedGroup_9__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        		boolean selected = false;
            
        try {
            // InternalXcore.g:25897:1: ( ( ({...}? => ( ( ( rule__XReference__Group_9_0__0 ) ) ) ) | ({...}? => ( ( ( rule__XReference__Group_9_1__0 ) ) ) ) | ({...}? => ( ( ( rule__XReference__Group_9_2__0 ) ) ) ) | ({...}? => ( ( ( rule__XReference__Group_9_3__0 ) ) ) ) ) )
            // InternalXcore.g:25898:3: ( ({...}? => ( ( ( rule__XReference__Group_9_0__0 ) ) ) ) | ({...}? => ( ( ( rule__XReference__Group_9_1__0 ) ) ) ) | ({...}? => ( ( ( rule__XReference__Group_9_2__0 ) ) ) ) | ({...}? => ( ( ( rule__XReference__Group_9_3__0 ) ) ) ) )
            {
            // InternalXcore.g:25898:3: ( ({...}? => ( ( ( rule__XReference__Group_9_0__0 ) ) ) ) | ({...}? => ( ( ( rule__XReference__Group_9_1__0 ) ) ) ) | ({...}? => ( ( ( rule__XReference__Group_9_2__0 ) ) ) ) | ({...}? => ( ( ( rule__XReference__Group_9_3__0 ) ) ) ) )
            int alt219=4;
            int LA219_0 = input.LA(1);

            if ( LA219_0 == 20 && getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_9(), 0) ) {
                alt219=1;
            }
            else if ( LA219_0 == 22 && getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_9(), 1) ) {
                alt219=2;
            }
            else if ( LA219_0 == 21 && getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_9(), 2) ) {
                alt219=3;
            }
            else if ( LA219_0 == 23 && getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_9(), 3) ) {
                alt219=4;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 219, 0, input);

                throw nvae;
            }
            switch (alt219) {
                case 1 :
                    // InternalXcore.g:25900:4: ({...}? => ( ( ( rule__XReference__Group_9_0__0 ) ) ) )
                    {
                    // InternalXcore.g:25900:4: ({...}? => ( ( ( rule__XReference__Group_9_0__0 ) ) ) )
                    // InternalXcore.g:25901:5: {...}? => ( ( ( rule__XReference__Group_9_0__0 ) ) )
                    {
                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_9(), 0) ) {
                        if (state.backtracking>0) {state.failed=true; return ;}
                        throw new FailedPredicateException(input, "rule__XReference__UnorderedGroup_9__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_9(), 0)");
                    }
                    // InternalXcore.g:25901:107: ( ( ( rule__XReference__Group_9_0__0 ) ) )
                    // InternalXcore.g:25902:6: ( ( rule__XReference__Group_9_0__0 ) )
                    {
                    getUnorderedGroupHelper().select(grammarAccess.getXReferenceAccess().getUnorderedGroup_9(), 0);
                    selected = true;
                    // InternalXcore.g:25908:6: ( ( rule__XReference__Group_9_0__0 ) )
                    // InternalXcore.g:25910:7: ( rule__XReference__Group_9_0__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXReferenceAccess().getGroup_9_0()); 
                    }
                    // InternalXcore.g:25911:7: ( rule__XReference__Group_9_0__0 )
                    // InternalXcore.g:25911:8: rule__XReference__Group_9_0__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XReference__Group_9_0__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXReferenceAccess().getGroup_9_0()); 
                    }

                    }


                    }


                    }


                    }
                    break;
                case 2 :
                    // InternalXcore.g:25917:4: ({...}? => ( ( ( rule__XReference__Group_9_1__0 ) ) ) )
                    {
                    // InternalXcore.g:25917:4: ({...}? => ( ( ( rule__XReference__Group_9_1__0 ) ) ) )
                    // InternalXcore.g:25918:5: {...}? => ( ( ( rule__XReference__Group_9_1__0 ) ) )
                    {
                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_9(), 1) ) {
                        if (state.backtracking>0) {state.failed=true; return ;}
                        throw new FailedPredicateException(input, "rule__XReference__UnorderedGroup_9__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_9(), 1)");
                    }
                    // InternalXcore.g:25918:107: ( ( ( rule__XReference__Group_9_1__0 ) ) )
                    // InternalXcore.g:25919:6: ( ( rule__XReference__Group_9_1__0 ) )
                    {
                    getUnorderedGroupHelper().select(grammarAccess.getXReferenceAccess().getUnorderedGroup_9(), 1);
                    selected = true;
                    // InternalXcore.g:25925:6: ( ( rule__XReference__Group_9_1__0 ) )
                    // InternalXcore.g:25927:7: ( rule__XReference__Group_9_1__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXReferenceAccess().getGroup_9_1()); 
                    }
                    // InternalXcore.g:25928:7: ( rule__XReference__Group_9_1__0 )
                    // InternalXcore.g:25928:8: rule__XReference__Group_9_1__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XReference__Group_9_1__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXReferenceAccess().getGroup_9_1()); 
                    }

                    }


                    }


                    }


                    }
                    break;
                case 3 :
                    // InternalXcore.g:25934:4: ({...}? => ( ( ( rule__XReference__Group_9_2__0 ) ) ) )
                    {
                    // InternalXcore.g:25934:4: ({...}? => ( ( ( rule__XReference__Group_9_2__0 ) ) ) )
                    // InternalXcore.g:25935:5: {...}? => ( ( ( rule__XReference__Group_9_2__0 ) ) )
                    {
                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_9(), 2) ) {
                        if (state.backtracking>0) {state.failed=true; return ;}
                        throw new FailedPredicateException(input, "rule__XReference__UnorderedGroup_9__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_9(), 2)");
                    }
                    // InternalXcore.g:25935:107: ( ( ( rule__XReference__Group_9_2__0 ) ) )
                    // InternalXcore.g:25936:6: ( ( rule__XReference__Group_9_2__0 ) )
                    {
                    getUnorderedGroupHelper().select(grammarAccess.getXReferenceAccess().getUnorderedGroup_9(), 2);
                    selected = true;
                    // InternalXcore.g:25942:6: ( ( rule__XReference__Group_9_2__0 ) )
                    // InternalXcore.g:25944:7: ( rule__XReference__Group_9_2__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXReferenceAccess().getGroup_9_2()); 
                    }
                    // InternalXcore.g:25945:7: ( rule__XReference__Group_9_2__0 )
                    // InternalXcore.g:25945:8: rule__XReference__Group_9_2__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XReference__Group_9_2__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXReferenceAccess().getGroup_9_2()); 
                    }

                    }


                    }


                    }


                    }
                    break;
                case 4 :
                    // InternalXcore.g:25951:4: ({...}? => ( ( ( rule__XReference__Group_9_3__0 ) ) ) )
                    {
                    // InternalXcore.g:25951:4: ({...}? => ( ( ( rule__XReference__Group_9_3__0 ) ) ) )
                    // InternalXcore.g:25952:5: {...}? => ( ( ( rule__XReference__Group_9_3__0 ) ) )
                    {
                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_9(), 3) ) {
                        if (state.backtracking>0) {state.failed=true; return ;}
                        throw new FailedPredicateException(input, "rule__XReference__UnorderedGroup_9__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_9(), 3)");
                    }
                    // InternalXcore.g:25952:107: ( ( ( rule__XReference__Group_9_3__0 ) ) )
                    // InternalXcore.g:25953:6: ( ( rule__XReference__Group_9_3__0 ) )
                    {
                    getUnorderedGroupHelper().select(grammarAccess.getXReferenceAccess().getUnorderedGroup_9(), 3);
                    selected = true;
                    // InternalXcore.g:25959:6: ( ( rule__XReference__Group_9_3__0 ) )
                    // InternalXcore.g:25961:7: ( rule__XReference__Group_9_3__0 )
                    {
                    if ( state.backtracking==0 ) {
                       before(grammarAccess.getXReferenceAccess().getGroup_9_3()); 
                    }
                    // InternalXcore.g:25962:7: ( rule__XReference__Group_9_3__0 )
                    // InternalXcore.g:25962:8: rule__XReference__Group_9_3__0
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XReference__Group_9_3__0();

                    state._fsp--;
                    if (state.failed) return ;

                    }

                    if ( state.backtracking==0 ) {
                       after(grammarAccess.getXReferenceAccess().getGroup_9_3()); 
                    }

                    }


                    }


                    }


                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	if (selected)
            		getUnorderedGroupHelper().returnFromSelection(grammarAccess.getXReferenceAccess().getUnorderedGroup_9());
            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__UnorderedGroup_9__Impl"


    // $ANTLR start "rule__XReference__UnorderedGroup_9__0"
    // InternalXcore.g:25977:1: rule__XReference__UnorderedGroup_9__0 : rule__XReference__UnorderedGroup_9__Impl ( rule__XReference__UnorderedGroup_9__1 )? ;
    public final void rule__XReference__UnorderedGroup_9__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:25981:1: ( rule__XReference__UnorderedGroup_9__Impl ( rule__XReference__UnorderedGroup_9__1 )? )
            // InternalXcore.g:25982:2: rule__XReference__UnorderedGroup_9__Impl ( rule__XReference__UnorderedGroup_9__1 )?
            {
            pushFollow(FollowSets000.FOLLOW_146);
            rule__XReference__UnorderedGroup_9__Impl();

            state._fsp--;
            if (state.failed) return ;
            // InternalXcore.g:25983:2: ( rule__XReference__UnorderedGroup_9__1 )?
            int alt220=2;
            alt220 = dfa220.predict(input);
            switch (alt220) {
                case 1 :
                    // InternalXcore.g:0:0: rule__XReference__UnorderedGroup_9__1
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XReference__UnorderedGroup_9__1();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__UnorderedGroup_9__0"


    // $ANTLR start "rule__XReference__UnorderedGroup_9__1"
    // InternalXcore.g:25990:1: rule__XReference__UnorderedGroup_9__1 : rule__XReference__UnorderedGroup_9__Impl ( rule__XReference__UnorderedGroup_9__2 )? ;
    public final void rule__XReference__UnorderedGroup_9__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:25994:1: ( rule__XReference__UnorderedGroup_9__Impl ( rule__XReference__UnorderedGroup_9__2 )? )
            // InternalXcore.g:25995:2: rule__XReference__UnorderedGroup_9__Impl ( rule__XReference__UnorderedGroup_9__2 )?
            {
            pushFollow(FollowSets000.FOLLOW_146);
            rule__XReference__UnorderedGroup_9__Impl();

            state._fsp--;
            if (state.failed) return ;
            // InternalXcore.g:25996:2: ( rule__XReference__UnorderedGroup_9__2 )?
            int alt221=2;
            alt221 = dfa221.predict(input);
            switch (alt221) {
                case 1 :
                    // InternalXcore.g:0:0: rule__XReference__UnorderedGroup_9__2
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XReference__UnorderedGroup_9__2();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__UnorderedGroup_9__1"


    // $ANTLR start "rule__XReference__UnorderedGroup_9__2"
    // InternalXcore.g:26003:1: rule__XReference__UnorderedGroup_9__2 : rule__XReference__UnorderedGroup_9__Impl ( rule__XReference__UnorderedGroup_9__3 )? ;
    public final void rule__XReference__UnorderedGroup_9__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:26007:1: ( rule__XReference__UnorderedGroup_9__Impl ( rule__XReference__UnorderedGroup_9__3 )? )
            // InternalXcore.g:26008:2: rule__XReference__UnorderedGroup_9__Impl ( rule__XReference__UnorderedGroup_9__3 )?
            {
            pushFollow(FollowSets000.FOLLOW_146);
            rule__XReference__UnorderedGroup_9__Impl();

            state._fsp--;
            if (state.failed) return ;
            // InternalXcore.g:26009:2: ( rule__XReference__UnorderedGroup_9__3 )?
            int alt222=2;
            alt222 = dfa222.predict(input);
            switch (alt222) {
                case 1 :
                    // InternalXcore.g:0:0: rule__XReference__UnorderedGroup_9__3
                    {
                    pushFollow(FollowSets000.FOLLOW_2);
                    rule__XReference__UnorderedGroup_9__3();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__UnorderedGroup_9__2"


    // $ANTLR start "rule__XReference__UnorderedGroup_9__3"
    // InternalXcore.g:26016:1: rule__XReference__UnorderedGroup_9__3 : rule__XReference__UnorderedGroup_9__Impl ;
    public final void rule__XReference__UnorderedGroup_9__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:26020:1: ( rule__XReference__UnorderedGroup_9__Impl )
            // InternalXcore.g:26021:2: rule__XReference__UnorderedGroup_9__Impl
            {
            pushFollow(FollowSets000.FOLLOW_2);
            rule__XReference__UnorderedGroup_9__Impl();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__UnorderedGroup_9__3"


    // $ANTLR start "rule__XPackage__AnnotationsAssignment_1"
    // InternalXcore.g:26036:1: rule__XPackage__AnnotationsAssignment_1 : ( ruleXAnnotation ) ;
    public final void rule__XPackage__AnnotationsAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:26040:1: ( ( ruleXAnnotation ) )
            // InternalXcore.g:26041:1: ( ruleXAnnotation )
            {
            // InternalXcore.g:26041:1: ( ruleXAnnotation )
            // InternalXcore.g:26042:1: ruleXAnnotation
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXPackageAccess().getAnnotationsXAnnotationParserRuleCall_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXAnnotation();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXPackageAccess().getAnnotationsXAnnotationParserRuleCall_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XPackage__AnnotationsAssignment_1"


    // $ANTLR start "rule__XPackage__NameAssignment_3"
    // InternalXcore.g:26051:1: rule__XPackage__NameAssignment_3 : ( ruleQualifiedName ) ;
    public final void rule__XPackage__NameAssignment_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:26055:1: ( ( ruleQualifiedName ) )
            // InternalXcore.g:26056:1: ( ruleQualifiedName )
            {
            // InternalXcore.g:26056:1: ( ruleQualifiedName )
            // InternalXcore.g:26057:1: ruleQualifiedName
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXPackageAccess().getNameQualifiedNameParserRuleCall_3_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleQualifiedName();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXPackageAccess().getNameQualifiedNameParserRuleCall_3_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XPackage__NameAssignment_3"


    // $ANTLR start "rule__XPackage__ImportDirectivesAssignment_4"
    // InternalXcore.g:26066:1: rule__XPackage__ImportDirectivesAssignment_4 : ( ruleXImportDirective ) ;
    public final void rule__XPackage__ImportDirectivesAssignment_4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:26070:1: ( ( ruleXImportDirective ) )
            // InternalXcore.g:26071:1: ( ruleXImportDirective )
            {
            // InternalXcore.g:26071:1: ( ruleXImportDirective )
            // InternalXcore.g:26072:1: ruleXImportDirective
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXPackageAccess().getImportDirectivesXImportDirectiveParserRuleCall_4_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXImportDirective();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXPackageAccess().getImportDirectivesXImportDirectiveParserRuleCall_4_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XPackage__ImportDirectivesAssignment_4"


    // $ANTLR start "rule__XPackage__AnnotationDirectivesAssignment_5"
    // InternalXcore.g:26081:1: rule__XPackage__AnnotationDirectivesAssignment_5 : ( ruleXAnnotationDirective ) ;
    public final void rule__XPackage__AnnotationDirectivesAssignment_5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:26085:1: ( ( ruleXAnnotationDirective ) )
            // InternalXcore.g:26086:1: ( ruleXAnnotationDirective )
            {
            // InternalXcore.g:26086:1: ( ruleXAnnotationDirective )
            // InternalXcore.g:26087:1: ruleXAnnotationDirective
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXPackageAccess().getAnnotationDirectivesXAnnotationDirectiveParserRuleCall_5_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXAnnotationDirective();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXPackageAccess().getAnnotationDirectivesXAnnotationDirectiveParserRuleCall_5_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XPackage__AnnotationDirectivesAssignment_5"


    // $ANTLR start "rule__XPackage__ClassifiersAssignment_6"
    // InternalXcore.g:26096:1: rule__XPackage__ClassifiersAssignment_6 : ( ruleXClassifier ) ;
    public final void rule__XPackage__ClassifiersAssignment_6() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:26100:1: ( ( ruleXClassifier ) )
            // InternalXcore.g:26101:1: ( ruleXClassifier )
            {
            // InternalXcore.g:26101:1: ( ruleXClassifier )
            // InternalXcore.g:26102:1: ruleXClassifier
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXPackageAccess().getClassifiersXClassifierParserRuleCall_6_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXClassifier();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXPackageAccess().getClassifiersXClassifierParserRuleCall_6_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XPackage__ClassifiersAssignment_6"


    // $ANTLR start "rule__XAnnotation__SourceAssignment_1"
    // InternalXcore.g:26111:1: rule__XAnnotation__SourceAssignment_1 : ( ( ruleXQualifiedName ) ) ;
    public final void rule__XAnnotation__SourceAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:26115:1: ( ( ( ruleXQualifiedName ) ) )
            // InternalXcore.g:26116:1: ( ( ruleXQualifiedName ) )
            {
            // InternalXcore.g:26116:1: ( ( ruleXQualifiedName ) )
            // InternalXcore.g:26117:1: ( ruleXQualifiedName )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAnnotationAccess().getSourceXAnnotationDirectiveCrossReference_1_0()); 
            }
            // InternalXcore.g:26118:1: ( ruleXQualifiedName )
            // InternalXcore.g:26119:1: ruleXQualifiedName
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAnnotationAccess().getSourceXAnnotationDirectiveXQualifiedNameParserRuleCall_1_0_1()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXQualifiedName();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAnnotationAccess().getSourceXAnnotationDirectiveXQualifiedNameParserRuleCall_1_0_1()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAnnotationAccess().getSourceXAnnotationDirectiveCrossReference_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAnnotation__SourceAssignment_1"


    // $ANTLR start "rule__XAnnotation__DetailsAssignment_2_1"
    // InternalXcore.g:26130:1: rule__XAnnotation__DetailsAssignment_2_1 : ( ruleXStringToStringMapEntry ) ;
    public final void rule__XAnnotation__DetailsAssignment_2_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:26134:1: ( ( ruleXStringToStringMapEntry ) )
            // InternalXcore.g:26135:1: ( ruleXStringToStringMapEntry )
            {
            // InternalXcore.g:26135:1: ( ruleXStringToStringMapEntry )
            // InternalXcore.g:26136:1: ruleXStringToStringMapEntry
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAnnotationAccess().getDetailsXStringToStringMapEntryParserRuleCall_2_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXStringToStringMapEntry();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAnnotationAccess().getDetailsXStringToStringMapEntryParserRuleCall_2_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAnnotation__DetailsAssignment_2_1"


    // $ANTLR start "rule__XAnnotation__DetailsAssignment_2_2_1"
    // InternalXcore.g:26145:1: rule__XAnnotation__DetailsAssignment_2_2_1 : ( ruleXStringToStringMapEntry ) ;
    public final void rule__XAnnotation__DetailsAssignment_2_2_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:26149:1: ( ( ruleXStringToStringMapEntry ) )
            // InternalXcore.g:26150:1: ( ruleXStringToStringMapEntry )
            {
            // InternalXcore.g:26150:1: ( ruleXStringToStringMapEntry )
            // InternalXcore.g:26151:1: ruleXStringToStringMapEntry
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAnnotationAccess().getDetailsXStringToStringMapEntryParserRuleCall_2_2_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXStringToStringMapEntry();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAnnotationAccess().getDetailsXStringToStringMapEntryParserRuleCall_2_2_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAnnotation__DetailsAssignment_2_2_1"


    // $ANTLR start "rule__XStringToStringMapEntry__KeyAssignment_0"
    // InternalXcore.g:26160:1: rule__XStringToStringMapEntry__KeyAssignment_0 : ( ruleQualifiedName ) ;
    public final void rule__XStringToStringMapEntry__KeyAssignment_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:26164:1: ( ( ruleQualifiedName ) )
            // InternalXcore.g:26165:1: ( ruleQualifiedName )
            {
            // InternalXcore.g:26165:1: ( ruleQualifiedName )
            // InternalXcore.g:26166:1: ruleQualifiedName
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXStringToStringMapEntryAccess().getKeyQualifiedNameParserRuleCall_0_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleQualifiedName();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXStringToStringMapEntryAccess().getKeyQualifiedNameParserRuleCall_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XStringToStringMapEntry__KeyAssignment_0"


    // $ANTLR start "rule__XStringToStringMapEntry__ValueAssignment_2"
    // InternalXcore.g:26175:1: rule__XStringToStringMapEntry__ValueAssignment_2 : ( RULE_STRING ) ;
    public final void rule__XStringToStringMapEntry__ValueAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:26179:1: ( ( RULE_STRING ) )
            // InternalXcore.g:26180:1: ( RULE_STRING )
            {
            // InternalXcore.g:26180:1: ( RULE_STRING )
            // InternalXcore.g:26181:1: RULE_STRING
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXStringToStringMapEntryAccess().getValueSTRINGTerminalRuleCall_2_0()); 
            }
            match(input,RULE_STRING,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXStringToStringMapEntryAccess().getValueSTRINGTerminalRuleCall_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XStringToStringMapEntry__ValueAssignment_2"


    // $ANTLR start "rule__XImportDirective__ImportedNamespaceAssignment_2_0"
    // InternalXcore.g:26190:1: rule__XImportDirective__ImportedNamespaceAssignment_2_0 : ( ruleQualifiedNameWithWildcard ) ;
    public final void rule__XImportDirective__ImportedNamespaceAssignment_2_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:26194:1: ( ( ruleQualifiedNameWithWildcard ) )
            // InternalXcore.g:26195:1: ( ruleQualifiedNameWithWildcard )
            {
            // InternalXcore.g:26195:1: ( ruleQualifiedNameWithWildcard )
            // InternalXcore.g:26196:1: ruleQualifiedNameWithWildcard
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXImportDirectiveAccess().getImportedNamespaceQualifiedNameWithWildcardParserRuleCall_2_0_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleQualifiedNameWithWildcard();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXImportDirectiveAccess().getImportedNamespaceQualifiedNameWithWildcardParserRuleCall_2_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XImportDirective__ImportedNamespaceAssignment_2_0"


    // $ANTLR start "rule__XImportDirective__ImportedObjectAssignment_2_1"
    // InternalXcore.g:26205:1: rule__XImportDirective__ImportedObjectAssignment_2_1 : ( ( ruleQualifiedName ) ) ;
    public final void rule__XImportDirective__ImportedObjectAssignment_2_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:26209:1: ( ( ( ruleQualifiedName ) ) )
            // InternalXcore.g:26210:1: ( ( ruleQualifiedName ) )
            {
            // InternalXcore.g:26210:1: ( ( ruleQualifiedName ) )
            // InternalXcore.g:26211:1: ( ruleQualifiedName )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXImportDirectiveAccess().getImportedObjectEObjectCrossReference_2_1_0()); 
            }
            // InternalXcore.g:26212:1: ( ruleQualifiedName )
            // InternalXcore.g:26213:1: ruleQualifiedName
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXImportDirectiveAccess().getImportedObjectEObjectQualifiedNameParserRuleCall_2_1_0_1()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleQualifiedName();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXImportDirectiveAccess().getImportedObjectEObjectQualifiedNameParserRuleCall_2_1_0_1()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXImportDirectiveAccess().getImportedObjectEObjectCrossReference_2_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XImportDirective__ImportedObjectAssignment_2_1"


    // $ANTLR start "rule__XAnnotationDirective__SourceURIAssignment_0_0_1"
    // InternalXcore.g:26224:1: rule__XAnnotationDirective__SourceURIAssignment_0_0_1 : ( RULE_STRING ) ;
    public final void rule__XAnnotationDirective__SourceURIAssignment_0_0_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:26228:1: ( ( RULE_STRING ) )
            // InternalXcore.g:26229:1: ( RULE_STRING )
            {
            // InternalXcore.g:26229:1: ( RULE_STRING )
            // InternalXcore.g:26230:1: RULE_STRING
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAnnotationDirectiveAccess().getSourceURISTRINGTerminalRuleCall_0_0_1_0()); 
            }
            match(input,RULE_STRING,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAnnotationDirectiveAccess().getSourceURISTRINGTerminalRuleCall_0_0_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAnnotationDirective__SourceURIAssignment_0_0_1"


    // $ANTLR start "rule__XAnnotationDirective__NameAssignment_2"
    // InternalXcore.g:26239:1: rule__XAnnotationDirective__NameAssignment_2 : ( ruleValidID ) ;
    public final void rule__XAnnotationDirective__NameAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:26243:1: ( ( ruleValidID ) )
            // InternalXcore.g:26244:1: ( ruleValidID )
            {
            // InternalXcore.g:26244:1: ( ruleValidID )
            // InternalXcore.g:26245:1: ruleValidID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAnnotationDirectiveAccess().getNameValidIDParserRuleCall_2_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleValidID();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAnnotationDirectiveAccess().getNameValidIDParserRuleCall_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAnnotationDirective__NameAssignment_2"


    // $ANTLR start "rule__XDataType__AnnotationsAssignment_0"
    // InternalXcore.g:26254:1: rule__XDataType__AnnotationsAssignment_0 : ( ruleXAnnotation ) ;
    public final void rule__XDataType__AnnotationsAssignment_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:26258:1: ( ( ruleXAnnotation ) )
            // InternalXcore.g:26259:1: ( ruleXAnnotation )
            {
            // InternalXcore.g:26259:1: ( ruleXAnnotation )
            // InternalXcore.g:26260:1: ruleXAnnotation
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXDataTypeAccess().getAnnotationsXAnnotationParserRuleCall_0_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXAnnotation();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXDataTypeAccess().getAnnotationsXAnnotationParserRuleCall_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XDataType__AnnotationsAssignment_0"


    // $ANTLR start "rule__XDataType__NameAssignment_2"
    // InternalXcore.g:26269:1: rule__XDataType__NameAssignment_2 : ( RULE_ID ) ;
    public final void rule__XDataType__NameAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:26273:1: ( ( RULE_ID ) )
            // InternalXcore.g:26274:1: ( RULE_ID )
            {
            // InternalXcore.g:26274:1: ( RULE_ID )
            // InternalXcore.g:26275:1: RULE_ID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXDataTypeAccess().getNameIDTerminalRuleCall_2_0()); 
            }
            match(input,RULE_ID,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXDataTypeAccess().getNameIDTerminalRuleCall_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XDataType__NameAssignment_2"


    // $ANTLR start "rule__XDataType__TypeParametersAssignment_3_1"
    // InternalXcore.g:26284:1: rule__XDataType__TypeParametersAssignment_3_1 : ( ruleXTypeParameter ) ;
    public final void rule__XDataType__TypeParametersAssignment_3_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:26288:1: ( ( ruleXTypeParameter ) )
            // InternalXcore.g:26289:1: ( ruleXTypeParameter )
            {
            // InternalXcore.g:26289:1: ( ruleXTypeParameter )
            // InternalXcore.g:26290:1: ruleXTypeParameter
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXDataTypeAccess().getTypeParametersXTypeParameterParserRuleCall_3_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXTypeParameter();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXDataTypeAccess().getTypeParametersXTypeParameterParserRuleCall_3_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XDataType__TypeParametersAssignment_3_1"


    // $ANTLR start "rule__XDataType__TypeParametersAssignment_3_2_1"
    // InternalXcore.g:26299:1: rule__XDataType__TypeParametersAssignment_3_2_1 : ( ruleXTypeParameter ) ;
    public final void rule__XDataType__TypeParametersAssignment_3_2_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:26303:1: ( ( ruleXTypeParameter ) )
            // InternalXcore.g:26304:1: ( ruleXTypeParameter )
            {
            // InternalXcore.g:26304:1: ( ruleXTypeParameter )
            // InternalXcore.g:26305:1: ruleXTypeParameter
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXDataTypeAccess().getTypeParametersXTypeParameterParserRuleCall_3_2_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXTypeParameter();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXDataTypeAccess().getTypeParametersXTypeParameterParserRuleCall_3_2_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XDataType__TypeParametersAssignment_3_2_1"


    // $ANTLR start "rule__XDataType__InstanceTypeAssignment_5"
    // InternalXcore.g:26314:1: rule__XDataType__InstanceTypeAssignment_5 : ( ruleJvmTypeReference ) ;
    public final void rule__XDataType__InstanceTypeAssignment_5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:26318:1: ( ( ruleJvmTypeReference ) )
            // InternalXcore.g:26319:1: ( ruleJvmTypeReference )
            {
            // InternalXcore.g:26319:1: ( ruleJvmTypeReference )
            // InternalXcore.g:26320:1: ruleJvmTypeReference
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXDataTypeAccess().getInstanceTypeJvmTypeReferenceParserRuleCall_5_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleJvmTypeReference();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXDataTypeAccess().getInstanceTypeJvmTypeReferenceParserRuleCall_5_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XDataType__InstanceTypeAssignment_5"


    // $ANTLR start "rule__XDataType__SerializableAssignment_6_0_0"
    // InternalXcore.g:26329:1: rule__XDataType__SerializableAssignment_6_0_0 : ( ( 'create' ) ) ;
    public final void rule__XDataType__SerializableAssignment_6_0_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:26333:1: ( ( ( 'create' ) ) )
            // InternalXcore.g:26334:1: ( ( 'create' ) )
            {
            // InternalXcore.g:26334:1: ( ( 'create' ) )
            // InternalXcore.g:26335:1: ( 'create' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXDataTypeAccess().getSerializableCreateKeyword_6_0_0_0()); 
            }
            // InternalXcore.g:26336:1: ( 'create' )
            // InternalXcore.g:26337:1: 'create'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXDataTypeAccess().getSerializableCreateKeyword_6_0_0_0()); 
            }
            match(input,31,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXDataTypeAccess().getSerializableCreateKeyword_6_0_0_0()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXDataTypeAccess().getSerializableCreateKeyword_6_0_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XDataType__SerializableAssignment_6_0_0"


    // $ANTLR start "rule__XDataType__CreateBodyAssignment_6_0_1"
    // InternalXcore.g:26352:1: rule__XDataType__CreateBodyAssignment_6_0_1 : ( ruleXBlockExpression ) ;
    public final void rule__XDataType__CreateBodyAssignment_6_0_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:26356:1: ( ( ruleXBlockExpression ) )
            // InternalXcore.g:26357:1: ( ruleXBlockExpression )
            {
            // InternalXcore.g:26357:1: ( ruleXBlockExpression )
            // InternalXcore.g:26358:1: ruleXBlockExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXDataTypeAccess().getCreateBodyXBlockExpressionParserRuleCall_6_0_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXBlockExpression();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXDataTypeAccess().getCreateBodyXBlockExpressionParserRuleCall_6_0_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XDataType__CreateBodyAssignment_6_0_1"


    // $ANTLR start "rule__XDataType__ConvertBodyAssignment_6_1_1"
    // InternalXcore.g:26367:1: rule__XDataType__ConvertBodyAssignment_6_1_1 : ( ruleXBlockExpression ) ;
    public final void rule__XDataType__ConvertBodyAssignment_6_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:26371:1: ( ( ruleXBlockExpression ) )
            // InternalXcore.g:26372:1: ( ruleXBlockExpression )
            {
            // InternalXcore.g:26372:1: ( ruleXBlockExpression )
            // InternalXcore.g:26373:1: ruleXBlockExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXDataTypeAccess().getConvertBodyXBlockExpressionParserRuleCall_6_1_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXBlockExpression();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXDataTypeAccess().getConvertBodyXBlockExpressionParserRuleCall_6_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XDataType__ConvertBodyAssignment_6_1_1"


    // $ANTLR start "rule__XEnum__AnnotationsAssignment_0"
    // InternalXcore.g:26382:1: rule__XEnum__AnnotationsAssignment_0 : ( ruleXAnnotation ) ;
    public final void rule__XEnum__AnnotationsAssignment_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:26386:1: ( ( ruleXAnnotation ) )
            // InternalXcore.g:26387:1: ( ruleXAnnotation )
            {
            // InternalXcore.g:26387:1: ( ruleXAnnotation )
            // InternalXcore.g:26388:1: ruleXAnnotation
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXEnumAccess().getAnnotationsXAnnotationParserRuleCall_0_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXAnnotation();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXEnumAccess().getAnnotationsXAnnotationParserRuleCall_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XEnum__AnnotationsAssignment_0"


    // $ANTLR start "rule__XEnum__NameAssignment_2"
    // InternalXcore.g:26397:1: rule__XEnum__NameAssignment_2 : ( RULE_ID ) ;
    public final void rule__XEnum__NameAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:26401:1: ( ( RULE_ID ) )
            // InternalXcore.g:26402:1: ( RULE_ID )
            {
            // InternalXcore.g:26402:1: ( RULE_ID )
            // InternalXcore.g:26403:1: RULE_ID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXEnumAccess().getNameIDTerminalRuleCall_2_0()); 
            }
            match(input,RULE_ID,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXEnumAccess().getNameIDTerminalRuleCall_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XEnum__NameAssignment_2"


    // $ANTLR start "rule__XEnum__LiteralsAssignment_4_0"
    // InternalXcore.g:26412:1: rule__XEnum__LiteralsAssignment_4_0 : ( ruleXEnumLiteral ) ;
    public final void rule__XEnum__LiteralsAssignment_4_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:26416:1: ( ( ruleXEnumLiteral ) )
            // InternalXcore.g:26417:1: ( ruleXEnumLiteral )
            {
            // InternalXcore.g:26417:1: ( ruleXEnumLiteral )
            // InternalXcore.g:26418:1: ruleXEnumLiteral
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXEnumAccess().getLiteralsXEnumLiteralParserRuleCall_4_0_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXEnumLiteral();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXEnumAccess().getLiteralsXEnumLiteralParserRuleCall_4_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XEnum__LiteralsAssignment_4_0"


    // $ANTLR start "rule__XEnum__LiteralsAssignment_4_1_1"
    // InternalXcore.g:26427:1: rule__XEnum__LiteralsAssignment_4_1_1 : ( ruleXEnumLiteral ) ;
    public final void rule__XEnum__LiteralsAssignment_4_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:26431:1: ( ( ruleXEnumLiteral ) )
            // InternalXcore.g:26432:1: ( ruleXEnumLiteral )
            {
            // InternalXcore.g:26432:1: ( ruleXEnumLiteral )
            // InternalXcore.g:26433:1: ruleXEnumLiteral
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXEnumAccess().getLiteralsXEnumLiteralParserRuleCall_4_1_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXEnumLiteral();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXEnumAccess().getLiteralsXEnumLiteralParserRuleCall_4_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XEnum__LiteralsAssignment_4_1_1"


    // $ANTLR start "rule__XEnumLiteral__AnnotationsAssignment_0"
    // InternalXcore.g:26442:1: rule__XEnumLiteral__AnnotationsAssignment_0 : ( ruleXAnnotation ) ;
    public final void rule__XEnumLiteral__AnnotationsAssignment_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:26446:1: ( ( ruleXAnnotation ) )
            // InternalXcore.g:26447:1: ( ruleXAnnotation )
            {
            // InternalXcore.g:26447:1: ( ruleXAnnotation )
            // InternalXcore.g:26448:1: ruleXAnnotation
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXEnumLiteralAccess().getAnnotationsXAnnotationParserRuleCall_0_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXAnnotation();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXEnumLiteralAccess().getAnnotationsXAnnotationParserRuleCall_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XEnumLiteral__AnnotationsAssignment_0"


    // $ANTLR start "rule__XEnumLiteral__NameAssignment_1"
    // InternalXcore.g:26457:1: rule__XEnumLiteral__NameAssignment_1 : ( RULE_ID ) ;
    public final void rule__XEnumLiteral__NameAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:26461:1: ( ( RULE_ID ) )
            // InternalXcore.g:26462:1: ( RULE_ID )
            {
            // InternalXcore.g:26462:1: ( RULE_ID )
            // InternalXcore.g:26463:1: RULE_ID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXEnumLiteralAccess().getNameIDTerminalRuleCall_1_0()); 
            }
            match(input,RULE_ID,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXEnumLiteralAccess().getNameIDTerminalRuleCall_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XEnumLiteral__NameAssignment_1"


    // $ANTLR start "rule__XEnumLiteral__LiteralAssignment_2_1"
    // InternalXcore.g:26472:1: rule__XEnumLiteral__LiteralAssignment_2_1 : ( RULE_STRING ) ;
    public final void rule__XEnumLiteral__LiteralAssignment_2_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:26476:1: ( ( RULE_STRING ) )
            // InternalXcore.g:26477:1: ( RULE_STRING )
            {
            // InternalXcore.g:26477:1: ( RULE_STRING )
            // InternalXcore.g:26478:1: RULE_STRING
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXEnumLiteralAccess().getLiteralSTRINGTerminalRuleCall_2_1_0()); 
            }
            match(input,RULE_STRING,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXEnumLiteralAccess().getLiteralSTRINGTerminalRuleCall_2_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XEnumLiteral__LiteralAssignment_2_1"


    // $ANTLR start "rule__XEnumLiteral__ValueAssignment_3_1"
    // InternalXcore.g:26487:1: rule__XEnumLiteral__ValueAssignment_3_1 : ( ruleSignedInt ) ;
    public final void rule__XEnumLiteral__ValueAssignment_3_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:26491:1: ( ( ruleSignedInt ) )
            // InternalXcore.g:26492:1: ( ruleSignedInt )
            {
            // InternalXcore.g:26492:1: ( ruleSignedInt )
            // InternalXcore.g:26493:1: ruleSignedInt
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXEnumLiteralAccess().getValueSignedIntParserRuleCall_3_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleSignedInt();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXEnumLiteralAccess().getValueSignedIntParserRuleCall_3_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XEnumLiteral__ValueAssignment_3_1"


    // $ANTLR start "rule__XClass__AnnotationsAssignment_1"
    // InternalXcore.g:26502:1: rule__XClass__AnnotationsAssignment_1 : ( ruleXAnnotation ) ;
    public final void rule__XClass__AnnotationsAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:26506:1: ( ( ruleXAnnotation ) )
            // InternalXcore.g:26507:1: ( ruleXAnnotation )
            {
            // InternalXcore.g:26507:1: ( ruleXAnnotation )
            // InternalXcore.g:26508:1: ruleXAnnotation
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClassAccess().getAnnotationsXAnnotationParserRuleCall_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXAnnotation();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXClassAccess().getAnnotationsXAnnotationParserRuleCall_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XClass__AnnotationsAssignment_1"


    // $ANTLR start "rule__XClass__AbstractAssignment_2_0_0"
    // InternalXcore.g:26517:1: rule__XClass__AbstractAssignment_2_0_0 : ( ( 'abstract' ) ) ;
    public final void rule__XClass__AbstractAssignment_2_0_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:26521:1: ( ( ( 'abstract' ) ) )
            // InternalXcore.g:26522:1: ( ( 'abstract' ) )
            {
            // InternalXcore.g:26522:1: ( ( 'abstract' ) )
            // InternalXcore.g:26523:1: ( 'abstract' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClassAccess().getAbstractAbstractKeyword_2_0_0_0()); 
            }
            // InternalXcore.g:26524:1: ( 'abstract' )
            // InternalXcore.g:26525:1: 'abstract'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClassAccess().getAbstractAbstractKeyword_2_0_0_0()); 
            }
            match(input,24,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXClassAccess().getAbstractAbstractKeyword_2_0_0_0()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXClassAccess().getAbstractAbstractKeyword_2_0_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XClass__AbstractAssignment_2_0_0"


    // $ANTLR start "rule__XClass__InterfaceAssignment_2_1"
    // InternalXcore.g:26540:1: rule__XClass__InterfaceAssignment_2_1 : ( ( 'interface' ) ) ;
    public final void rule__XClass__InterfaceAssignment_2_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:26544:1: ( ( ( 'interface' ) ) )
            // InternalXcore.g:26545:1: ( ( 'interface' ) )
            {
            // InternalXcore.g:26545:1: ( ( 'interface' ) )
            // InternalXcore.g:26546:1: ( 'interface' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClassAccess().getInterfaceInterfaceKeyword_2_1_0()); 
            }
            // InternalXcore.g:26547:1: ( 'interface' )
            // InternalXcore.g:26548:1: 'interface'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClassAccess().getInterfaceInterfaceKeyword_2_1_0()); 
            }
            match(input,39,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXClassAccess().getInterfaceInterfaceKeyword_2_1_0()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXClassAccess().getInterfaceInterfaceKeyword_2_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XClass__InterfaceAssignment_2_1"


    // $ANTLR start "rule__XClass__NameAssignment_3"
    // InternalXcore.g:26563:1: rule__XClass__NameAssignment_3 : ( RULE_ID ) ;
    public final void rule__XClass__NameAssignment_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:26567:1: ( ( RULE_ID ) )
            // InternalXcore.g:26568:1: ( RULE_ID )
            {
            // InternalXcore.g:26568:1: ( RULE_ID )
            // InternalXcore.g:26569:1: RULE_ID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClassAccess().getNameIDTerminalRuleCall_3_0()); 
            }
            match(input,RULE_ID,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXClassAccess().getNameIDTerminalRuleCall_3_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XClass__NameAssignment_3"


    // $ANTLR start "rule__XClass__TypeParametersAssignment_4_1"
    // InternalXcore.g:26578:1: rule__XClass__TypeParametersAssignment_4_1 : ( ruleXTypeParameter ) ;
    public final void rule__XClass__TypeParametersAssignment_4_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:26582:1: ( ( ruleXTypeParameter ) )
            // InternalXcore.g:26583:1: ( ruleXTypeParameter )
            {
            // InternalXcore.g:26583:1: ( ruleXTypeParameter )
            // InternalXcore.g:26584:1: ruleXTypeParameter
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClassAccess().getTypeParametersXTypeParameterParserRuleCall_4_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXTypeParameter();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXClassAccess().getTypeParametersXTypeParameterParserRuleCall_4_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XClass__TypeParametersAssignment_4_1"


    // $ANTLR start "rule__XClass__TypeParametersAssignment_4_2_1"
    // InternalXcore.g:26593:1: rule__XClass__TypeParametersAssignment_4_2_1 : ( ruleXTypeParameter ) ;
    public final void rule__XClass__TypeParametersAssignment_4_2_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:26597:1: ( ( ruleXTypeParameter ) )
            // InternalXcore.g:26598:1: ( ruleXTypeParameter )
            {
            // InternalXcore.g:26598:1: ( ruleXTypeParameter )
            // InternalXcore.g:26599:1: ruleXTypeParameter
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClassAccess().getTypeParametersXTypeParameterParserRuleCall_4_2_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXTypeParameter();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXClassAccess().getTypeParametersXTypeParameterParserRuleCall_4_2_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XClass__TypeParametersAssignment_4_2_1"


    // $ANTLR start "rule__XClass__SuperTypesAssignment_5_1"
    // InternalXcore.g:26608:1: rule__XClass__SuperTypesAssignment_5_1 : ( ruleXGenericType ) ;
    public final void rule__XClass__SuperTypesAssignment_5_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:26612:1: ( ( ruleXGenericType ) )
            // InternalXcore.g:26613:1: ( ruleXGenericType )
            {
            // InternalXcore.g:26613:1: ( ruleXGenericType )
            // InternalXcore.g:26614:1: ruleXGenericType
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClassAccess().getSuperTypesXGenericTypeParserRuleCall_5_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXGenericType();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXClassAccess().getSuperTypesXGenericTypeParserRuleCall_5_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XClass__SuperTypesAssignment_5_1"


    // $ANTLR start "rule__XClass__SuperTypesAssignment_5_2_1"
    // InternalXcore.g:26623:1: rule__XClass__SuperTypesAssignment_5_2_1 : ( ruleXGenericType ) ;
    public final void rule__XClass__SuperTypesAssignment_5_2_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:26627:1: ( ( ruleXGenericType ) )
            // InternalXcore.g:26628:1: ( ruleXGenericType )
            {
            // InternalXcore.g:26628:1: ( ruleXGenericType )
            // InternalXcore.g:26629:1: ruleXGenericType
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClassAccess().getSuperTypesXGenericTypeParserRuleCall_5_2_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXGenericType();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXClassAccess().getSuperTypesXGenericTypeParserRuleCall_5_2_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XClass__SuperTypesAssignment_5_2_1"


    // $ANTLR start "rule__XClass__InstanceTypeAssignment_6_1"
    // InternalXcore.g:26638:1: rule__XClass__InstanceTypeAssignment_6_1 : ( ruleJvmTypeReference ) ;
    public final void rule__XClass__InstanceTypeAssignment_6_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:26642:1: ( ( ruleJvmTypeReference ) )
            // InternalXcore.g:26643:1: ( ruleJvmTypeReference )
            {
            // InternalXcore.g:26643:1: ( ruleJvmTypeReference )
            // InternalXcore.g:26644:1: ruleJvmTypeReference
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClassAccess().getInstanceTypeJvmTypeReferenceParserRuleCall_6_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleJvmTypeReference();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXClassAccess().getInstanceTypeJvmTypeReferenceParserRuleCall_6_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XClass__InstanceTypeAssignment_6_1"


    // $ANTLR start "rule__XClass__MembersAssignment_8"
    // InternalXcore.g:26653:1: rule__XClass__MembersAssignment_8 : ( ruleXMember ) ;
    public final void rule__XClass__MembersAssignment_8() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:26657:1: ( ( ruleXMember ) )
            // InternalXcore.g:26658:1: ( ruleXMember )
            {
            // InternalXcore.g:26658:1: ( ruleXMember )
            // InternalXcore.g:26659:1: ruleXMember
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClassAccess().getMembersXMemberParserRuleCall_8_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXMember();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXClassAccess().getMembersXMemberParserRuleCall_8_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XClass__MembersAssignment_8"


    // $ANTLR start "rule__XAttribute__AnnotationsAssignment_1"
    // InternalXcore.g:26668:1: rule__XAttribute__AnnotationsAssignment_1 : ( ruleXAnnotation ) ;
    public final void rule__XAttribute__AnnotationsAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:26672:1: ( ( ruleXAnnotation ) )
            // InternalXcore.g:26673:1: ( ruleXAnnotation )
            {
            // InternalXcore.g:26673:1: ( ruleXAnnotation )
            // InternalXcore.g:26674:1: ruleXAnnotation
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAttributeAccess().getAnnotationsXAnnotationParserRuleCall_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXAnnotation();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAttributeAccess().getAnnotationsXAnnotationParserRuleCall_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAttribute__AnnotationsAssignment_1"


    // $ANTLR start "rule__XAttribute__UnorderedAssignment_2_0"
    // InternalXcore.g:26683:1: rule__XAttribute__UnorderedAssignment_2_0 : ( ( 'unordered' ) ) ;
    public final void rule__XAttribute__UnorderedAssignment_2_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:26687:1: ( ( ( 'unordered' ) ) )
            // InternalXcore.g:26688:1: ( ( 'unordered' ) )
            {
            // InternalXcore.g:26688:1: ( ( 'unordered' ) )
            // InternalXcore.g:26689:1: ( 'unordered' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAttributeAccess().getUnorderedUnorderedKeyword_2_0_0()); 
            }
            // InternalXcore.g:26690:1: ( 'unordered' )
            // InternalXcore.g:26691:1: 'unordered'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAttributeAccess().getUnorderedUnorderedKeyword_2_0_0()); 
            }
            match(input,51,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAttributeAccess().getUnorderedUnorderedKeyword_2_0_0()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAttributeAccess().getUnorderedUnorderedKeyword_2_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAttribute__UnorderedAssignment_2_0"


    // $ANTLR start "rule__XAttribute__UniqueAssignment_2_1"
    // InternalXcore.g:26706:1: rule__XAttribute__UniqueAssignment_2_1 : ( ( 'unique' ) ) ;
    public final void rule__XAttribute__UniqueAssignment_2_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:26710:1: ( ( ( 'unique' ) ) )
            // InternalXcore.g:26711:1: ( ( 'unique' ) )
            {
            // InternalXcore.g:26711:1: ( ( 'unique' ) )
            // InternalXcore.g:26712:1: ( 'unique' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAttributeAccess().getUniqueUniqueKeyword_2_1_0()); 
            }
            // InternalXcore.g:26713:1: ( 'unique' )
            // InternalXcore.g:26714:1: 'unique'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAttributeAccess().getUniqueUniqueKeyword_2_1_0()); 
            }
            match(input,50,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAttributeAccess().getUniqueUniqueKeyword_2_1_0()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAttributeAccess().getUniqueUniqueKeyword_2_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAttribute__UniqueAssignment_2_1"


    // $ANTLR start "rule__XAttribute__ReadonlyAssignment_2_2"
    // InternalXcore.g:26729:1: rule__XAttribute__ReadonlyAssignment_2_2 : ( ( 'readonly' ) ) ;
    public final void rule__XAttribute__ReadonlyAssignment_2_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:26733:1: ( ( ( 'readonly' ) ) )
            // InternalXcore.g:26734:1: ( ( 'readonly' ) )
            {
            // InternalXcore.g:26734:1: ( ( 'readonly' ) )
            // InternalXcore.g:26735:1: ( 'readonly' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAttributeAccess().getReadonlyReadonlyKeyword_2_2_0()); 
            }
            // InternalXcore.g:26736:1: ( 'readonly' )
            // InternalXcore.g:26737:1: 'readonly'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAttributeAccess().getReadonlyReadonlyKeyword_2_2_0()); 
            }
            match(input,44,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAttributeAccess().getReadonlyReadonlyKeyword_2_2_0()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAttributeAccess().getReadonlyReadonlyKeyword_2_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAttribute__ReadonlyAssignment_2_2"


    // $ANTLR start "rule__XAttribute__TransientAssignment_2_3"
    // InternalXcore.g:26752:1: rule__XAttribute__TransientAssignment_2_3 : ( ( 'transient' ) ) ;
    public final void rule__XAttribute__TransientAssignment_2_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:26756:1: ( ( ( 'transient' ) ) )
            // InternalXcore.g:26757:1: ( ( 'transient' ) )
            {
            // InternalXcore.g:26757:1: ( ( 'transient' ) )
            // InternalXcore.g:26758:1: ( 'transient' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAttributeAccess().getTransientTransientKeyword_2_3_0()); 
            }
            // InternalXcore.g:26759:1: ( 'transient' )
            // InternalXcore.g:26760:1: 'transient'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAttributeAccess().getTransientTransientKeyword_2_3_0()); 
            }
            match(input,49,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAttributeAccess().getTransientTransientKeyword_2_3_0()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAttributeAccess().getTransientTransientKeyword_2_3_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAttribute__TransientAssignment_2_3"


    // $ANTLR start "rule__XAttribute__VolatileAssignment_2_4"
    // InternalXcore.g:26775:1: rule__XAttribute__VolatileAssignment_2_4 : ( ( 'volatile' ) ) ;
    public final void rule__XAttribute__VolatileAssignment_2_4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:26779:1: ( ( ( 'volatile' ) ) )
            // InternalXcore.g:26780:1: ( ( 'volatile' ) )
            {
            // InternalXcore.g:26780:1: ( ( 'volatile' ) )
            // InternalXcore.g:26781:1: ( 'volatile' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAttributeAccess().getVolatileVolatileKeyword_2_4_0()); 
            }
            // InternalXcore.g:26782:1: ( 'volatile' )
            // InternalXcore.g:26783:1: 'volatile'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAttributeAccess().getVolatileVolatileKeyword_2_4_0()); 
            }
            match(input,53,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAttributeAccess().getVolatileVolatileKeyword_2_4_0()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAttributeAccess().getVolatileVolatileKeyword_2_4_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAttribute__VolatileAssignment_2_4"


    // $ANTLR start "rule__XAttribute__UnsettableAssignment_2_5"
    // InternalXcore.g:26798:1: rule__XAttribute__UnsettableAssignment_2_5 : ( ( 'unsettable' ) ) ;
    public final void rule__XAttribute__UnsettableAssignment_2_5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:26802:1: ( ( ( 'unsettable' ) ) )
            // InternalXcore.g:26803:1: ( ( 'unsettable' ) )
            {
            // InternalXcore.g:26803:1: ( ( 'unsettable' ) )
            // InternalXcore.g:26804:1: ( 'unsettable' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAttributeAccess().getUnsettableUnsettableKeyword_2_5_0()); 
            }
            // InternalXcore.g:26805:1: ( 'unsettable' )
            // InternalXcore.g:26806:1: 'unsettable'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAttributeAccess().getUnsettableUnsettableKeyword_2_5_0()); 
            }
            match(input,52,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAttributeAccess().getUnsettableUnsettableKeyword_2_5_0()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAttributeAccess().getUnsettableUnsettableKeyword_2_5_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAttribute__UnsettableAssignment_2_5"


    // $ANTLR start "rule__XAttribute__DerivedAssignment_2_6"
    // InternalXcore.g:26821:1: rule__XAttribute__DerivedAssignment_2_6 : ( ( 'derived' ) ) ;
    public final void rule__XAttribute__DerivedAssignment_2_6() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:26825:1: ( ( ( 'derived' ) ) )
            // InternalXcore.g:26826:1: ( ( 'derived' ) )
            {
            // InternalXcore.g:26826:1: ( ( 'derived' ) )
            // InternalXcore.g:26827:1: ( 'derived' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAttributeAccess().getDerivedDerivedKeyword_2_6_0()); 
            }
            // InternalXcore.g:26828:1: ( 'derived' )
            // InternalXcore.g:26829:1: 'derived'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAttributeAccess().getDerivedDerivedKeyword_2_6_0()); 
            }
            match(input,32,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAttributeAccess().getDerivedDerivedKeyword_2_6_0()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAttributeAccess().getDerivedDerivedKeyword_2_6_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAttribute__DerivedAssignment_2_6"


    // $ANTLR start "rule__XAttribute__IDAssignment_2_7"
    // InternalXcore.g:26844:1: rule__XAttribute__IDAssignment_2_7 : ( ( 'id' ) ) ;
    public final void rule__XAttribute__IDAssignment_2_7() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:26848:1: ( ( ( 'id' ) ) )
            // InternalXcore.g:26849:1: ( ( 'id' ) )
            {
            // InternalXcore.g:26849:1: ( ( 'id' ) )
            // InternalXcore.g:26850:1: ( 'id' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAttributeAccess().getIDIdKeyword_2_7_0()); 
            }
            // InternalXcore.g:26851:1: ( 'id' )
            // InternalXcore.g:26852:1: 'id'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAttributeAccess().getIDIdKeyword_2_7_0()); 
            }
            match(input,36,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAttributeAccess().getIDIdKeyword_2_7_0()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAttributeAccess().getIDIdKeyword_2_7_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAttribute__IDAssignment_2_7"


    // $ANTLR start "rule__XAttribute__TypeAssignment_3"
    // InternalXcore.g:26867:1: rule__XAttribute__TypeAssignment_3 : ( ruleXGenericType ) ;
    public final void rule__XAttribute__TypeAssignment_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:26871:1: ( ( ruleXGenericType ) )
            // InternalXcore.g:26872:1: ( ruleXGenericType )
            {
            // InternalXcore.g:26872:1: ( ruleXGenericType )
            // InternalXcore.g:26873:1: ruleXGenericType
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAttributeAccess().getTypeXGenericTypeParserRuleCall_3_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXGenericType();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAttributeAccess().getTypeXGenericTypeParserRuleCall_3_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAttribute__TypeAssignment_3"


    // $ANTLR start "rule__XAttribute__MultiplicityAssignment_4"
    // InternalXcore.g:26882:1: rule__XAttribute__MultiplicityAssignment_4 : ( ruleXMultiplicity ) ;
    public final void rule__XAttribute__MultiplicityAssignment_4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:26886:1: ( ( ruleXMultiplicity ) )
            // InternalXcore.g:26887:1: ( ruleXMultiplicity )
            {
            // InternalXcore.g:26887:1: ( ruleXMultiplicity )
            // InternalXcore.g:26888:1: ruleXMultiplicity
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAttributeAccess().getMultiplicityXMultiplicityParserRuleCall_4_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXMultiplicity();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAttributeAccess().getMultiplicityXMultiplicityParserRuleCall_4_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAttribute__MultiplicityAssignment_4"


    // $ANTLR start "rule__XAttribute__NameAssignment_5"
    // InternalXcore.g:26897:1: rule__XAttribute__NameAssignment_5 : ( RULE_ID ) ;
    public final void rule__XAttribute__NameAssignment_5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:26901:1: ( ( RULE_ID ) )
            // InternalXcore.g:26902:1: ( RULE_ID )
            {
            // InternalXcore.g:26902:1: ( RULE_ID )
            // InternalXcore.g:26903:1: RULE_ID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAttributeAccess().getNameIDTerminalRuleCall_5_0()); 
            }
            match(input,RULE_ID,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAttributeAccess().getNameIDTerminalRuleCall_5_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAttribute__NameAssignment_5"


    // $ANTLR start "rule__XAttribute__DefaultValueLiteralAssignment_6_1"
    // InternalXcore.g:26912:1: rule__XAttribute__DefaultValueLiteralAssignment_6_1 : ( RULE_STRING ) ;
    public final void rule__XAttribute__DefaultValueLiteralAssignment_6_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:26916:1: ( ( RULE_STRING ) )
            // InternalXcore.g:26917:1: ( RULE_STRING )
            {
            // InternalXcore.g:26917:1: ( RULE_STRING )
            // InternalXcore.g:26918:1: RULE_STRING
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAttributeAccess().getDefaultValueLiteralSTRINGTerminalRuleCall_6_1_0()); 
            }
            match(input,RULE_STRING,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAttributeAccess().getDefaultValueLiteralSTRINGTerminalRuleCall_6_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAttribute__DefaultValueLiteralAssignment_6_1"


    // $ANTLR start "rule__XAttribute__GetBodyAssignment_7_0_1"
    // InternalXcore.g:26927:1: rule__XAttribute__GetBodyAssignment_7_0_1 : ( ruleXBlockExpression ) ;
    public final void rule__XAttribute__GetBodyAssignment_7_0_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:26931:1: ( ( ruleXBlockExpression ) )
            // InternalXcore.g:26932:1: ( ruleXBlockExpression )
            {
            // InternalXcore.g:26932:1: ( ruleXBlockExpression )
            // InternalXcore.g:26933:1: ruleXBlockExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAttributeAccess().getGetBodyXBlockExpressionParserRuleCall_7_0_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXBlockExpression();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAttributeAccess().getGetBodyXBlockExpressionParserRuleCall_7_0_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAttribute__GetBodyAssignment_7_0_1"


    // $ANTLR start "rule__XAttribute__SetBodyAssignment_7_1_1"
    // InternalXcore.g:26942:1: rule__XAttribute__SetBodyAssignment_7_1_1 : ( ruleXBlockExpression ) ;
    public final void rule__XAttribute__SetBodyAssignment_7_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:26946:1: ( ( ruleXBlockExpression ) )
            // InternalXcore.g:26947:1: ( ruleXBlockExpression )
            {
            // InternalXcore.g:26947:1: ( ruleXBlockExpression )
            // InternalXcore.g:26948:1: ruleXBlockExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAttributeAccess().getSetBodyXBlockExpressionParserRuleCall_7_1_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXBlockExpression();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAttributeAccess().getSetBodyXBlockExpressionParserRuleCall_7_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAttribute__SetBodyAssignment_7_1_1"


    // $ANTLR start "rule__XAttribute__IsSetBodyAssignment_7_2_1"
    // InternalXcore.g:26957:1: rule__XAttribute__IsSetBodyAssignment_7_2_1 : ( ruleXBlockExpression ) ;
    public final void rule__XAttribute__IsSetBodyAssignment_7_2_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:26961:1: ( ( ruleXBlockExpression ) )
            // InternalXcore.g:26962:1: ( ruleXBlockExpression )
            {
            // InternalXcore.g:26962:1: ( ruleXBlockExpression )
            // InternalXcore.g:26963:1: ruleXBlockExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAttributeAccess().getIsSetBodyXBlockExpressionParserRuleCall_7_2_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXBlockExpression();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAttributeAccess().getIsSetBodyXBlockExpressionParserRuleCall_7_2_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAttribute__IsSetBodyAssignment_7_2_1"


    // $ANTLR start "rule__XAttribute__UnsetBodyAssignment_7_3_1"
    // InternalXcore.g:26972:1: rule__XAttribute__UnsetBodyAssignment_7_3_1 : ( ruleXBlockExpression ) ;
    public final void rule__XAttribute__UnsetBodyAssignment_7_3_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:26976:1: ( ( ruleXBlockExpression ) )
            // InternalXcore.g:26977:1: ( ruleXBlockExpression )
            {
            // InternalXcore.g:26977:1: ( ruleXBlockExpression )
            // InternalXcore.g:26978:1: ruleXBlockExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAttributeAccess().getUnsetBodyXBlockExpressionParserRuleCall_7_3_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXBlockExpression();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAttributeAccess().getUnsetBodyXBlockExpressionParserRuleCall_7_3_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAttribute__UnsetBodyAssignment_7_3_1"


    // $ANTLR start "rule__XReference__AnnotationsAssignment_1"
    // InternalXcore.g:26987:1: rule__XReference__AnnotationsAssignment_1 : ( ruleXAnnotation ) ;
    public final void rule__XReference__AnnotationsAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:26991:1: ( ( ruleXAnnotation ) )
            // InternalXcore.g:26992:1: ( ruleXAnnotation )
            {
            // InternalXcore.g:26992:1: ( ruleXAnnotation )
            // InternalXcore.g:26993:1: ruleXAnnotation
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getAnnotationsXAnnotationParserRuleCall_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXAnnotation();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXReferenceAccess().getAnnotationsXAnnotationParserRuleCall_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__AnnotationsAssignment_1"


    // $ANTLR start "rule__XReference__ContainmentAssignment_2_0_0"
    // InternalXcore.g:27002:1: rule__XReference__ContainmentAssignment_2_0_0 : ( ( 'contains' ) ) ;
    public final void rule__XReference__ContainmentAssignment_2_0_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:27006:1: ( ( ( 'contains' ) ) )
            // InternalXcore.g:27007:1: ( ( 'contains' ) )
            {
            // InternalXcore.g:27007:1: ( ( 'contains' ) )
            // InternalXcore.g:27008:1: ( 'contains' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getContainmentContainsKeyword_2_0_0_0()); 
            }
            // InternalXcore.g:27009:1: ( 'contains' )
            // InternalXcore.g:27010:1: 'contains'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getContainmentContainsKeyword_2_0_0_0()); 
            }
            match(input,29,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXReferenceAccess().getContainmentContainsKeyword_2_0_0_0()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXReferenceAccess().getContainmentContainsKeyword_2_0_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__ContainmentAssignment_2_0_0"


    // $ANTLR start "rule__XReference__ResolveProxiesAssignment_2_0_1"
    // InternalXcore.g:27025:1: rule__XReference__ResolveProxiesAssignment_2_0_1 : ( ( 'resolving' ) ) ;
    public final void rule__XReference__ResolveProxiesAssignment_2_0_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:27029:1: ( ( ( 'resolving' ) ) )
            // InternalXcore.g:27030:1: ( ( 'resolving' ) )
            {
            // InternalXcore.g:27030:1: ( ( 'resolving' ) )
            // InternalXcore.g:27031:1: ( 'resolving' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getResolveProxiesResolvingKeyword_2_0_1_0()); 
            }
            // InternalXcore.g:27032:1: ( 'resolving' )
            // InternalXcore.g:27033:1: 'resolving'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getResolveProxiesResolvingKeyword_2_0_1_0()); 
            }
            match(input,46,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXReferenceAccess().getResolveProxiesResolvingKeyword_2_0_1_0()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXReferenceAccess().getResolveProxiesResolvingKeyword_2_0_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__ResolveProxiesAssignment_2_0_1"


    // $ANTLR start "rule__XReference__ResolveProxiesAssignment_2_1_0"
    // InternalXcore.g:27048:1: rule__XReference__ResolveProxiesAssignment_2_1_0 : ( ( 'resolving' ) ) ;
    public final void rule__XReference__ResolveProxiesAssignment_2_1_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:27052:1: ( ( ( 'resolving' ) ) )
            // InternalXcore.g:27053:1: ( ( 'resolving' ) )
            {
            // InternalXcore.g:27053:1: ( ( 'resolving' ) )
            // InternalXcore.g:27054:1: ( 'resolving' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getResolveProxiesResolvingKeyword_2_1_0_0()); 
            }
            // InternalXcore.g:27055:1: ( 'resolving' )
            // InternalXcore.g:27056:1: 'resolving'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getResolveProxiesResolvingKeyword_2_1_0_0()); 
            }
            match(input,46,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXReferenceAccess().getResolveProxiesResolvingKeyword_2_1_0_0()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXReferenceAccess().getResolveProxiesResolvingKeyword_2_1_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__ResolveProxiesAssignment_2_1_0"


    // $ANTLR start "rule__XReference__ContainmentAssignment_2_1_1"
    // InternalXcore.g:27071:1: rule__XReference__ContainmentAssignment_2_1_1 : ( ( 'contains' ) ) ;
    public final void rule__XReference__ContainmentAssignment_2_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:27075:1: ( ( ( 'contains' ) ) )
            // InternalXcore.g:27076:1: ( ( 'contains' ) )
            {
            // InternalXcore.g:27076:1: ( ( 'contains' ) )
            // InternalXcore.g:27077:1: ( 'contains' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getContainmentContainsKeyword_2_1_1_0()); 
            }
            // InternalXcore.g:27078:1: ( 'contains' )
            // InternalXcore.g:27079:1: 'contains'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getContainmentContainsKeyword_2_1_1_0()); 
            }
            match(input,29,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXReferenceAccess().getContainmentContainsKeyword_2_1_1_0()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXReferenceAccess().getContainmentContainsKeyword_2_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__ContainmentAssignment_2_1_1"


    // $ANTLR start "rule__XReference__ContainerAssignment_2_2_0"
    // InternalXcore.g:27094:1: rule__XReference__ContainerAssignment_2_2_0 : ( ( 'container' ) ) ;
    public final void rule__XReference__ContainerAssignment_2_2_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:27098:1: ( ( ( 'container' ) ) )
            // InternalXcore.g:27099:1: ( ( 'container' ) )
            {
            // InternalXcore.g:27099:1: ( ( 'container' ) )
            // InternalXcore.g:27100:1: ( 'container' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getContainerContainerKeyword_2_2_0_0()); 
            }
            // InternalXcore.g:27101:1: ( 'container' )
            // InternalXcore.g:27102:1: 'container'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getContainerContainerKeyword_2_2_0_0()); 
            }
            match(input,28,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXReferenceAccess().getContainerContainerKeyword_2_2_0_0()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXReferenceAccess().getContainerContainerKeyword_2_2_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__ContainerAssignment_2_2_0"


    // $ANTLR start "rule__XReference__ResolveProxiesAssignment_2_2_1"
    // InternalXcore.g:27117:1: rule__XReference__ResolveProxiesAssignment_2_2_1 : ( ( 'resolving' ) ) ;
    public final void rule__XReference__ResolveProxiesAssignment_2_2_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:27121:1: ( ( ( 'resolving' ) ) )
            // InternalXcore.g:27122:1: ( ( 'resolving' ) )
            {
            // InternalXcore.g:27122:1: ( ( 'resolving' ) )
            // InternalXcore.g:27123:1: ( 'resolving' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getResolveProxiesResolvingKeyword_2_2_1_0()); 
            }
            // InternalXcore.g:27124:1: ( 'resolving' )
            // InternalXcore.g:27125:1: 'resolving'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getResolveProxiesResolvingKeyword_2_2_1_0()); 
            }
            match(input,46,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXReferenceAccess().getResolveProxiesResolvingKeyword_2_2_1_0()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXReferenceAccess().getResolveProxiesResolvingKeyword_2_2_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__ResolveProxiesAssignment_2_2_1"


    // $ANTLR start "rule__XReference__ResolveProxiesAssignment_2_3_0"
    // InternalXcore.g:27140:1: rule__XReference__ResolveProxiesAssignment_2_3_0 : ( ( 'resolving' ) ) ;
    public final void rule__XReference__ResolveProxiesAssignment_2_3_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:27144:1: ( ( ( 'resolving' ) ) )
            // InternalXcore.g:27145:1: ( ( 'resolving' ) )
            {
            // InternalXcore.g:27145:1: ( ( 'resolving' ) )
            // InternalXcore.g:27146:1: ( 'resolving' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getResolveProxiesResolvingKeyword_2_3_0_0()); 
            }
            // InternalXcore.g:27147:1: ( 'resolving' )
            // InternalXcore.g:27148:1: 'resolving'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getResolveProxiesResolvingKeyword_2_3_0_0()); 
            }
            match(input,46,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXReferenceAccess().getResolveProxiesResolvingKeyword_2_3_0_0()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXReferenceAccess().getResolveProxiesResolvingKeyword_2_3_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__ResolveProxiesAssignment_2_3_0"


    // $ANTLR start "rule__XReference__ContainerAssignment_2_3_1"
    // InternalXcore.g:27163:1: rule__XReference__ContainerAssignment_2_3_1 : ( ( 'container' ) ) ;
    public final void rule__XReference__ContainerAssignment_2_3_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:27167:1: ( ( ( 'container' ) ) )
            // InternalXcore.g:27168:1: ( ( 'container' ) )
            {
            // InternalXcore.g:27168:1: ( ( 'container' ) )
            // InternalXcore.g:27169:1: ( 'container' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getContainerContainerKeyword_2_3_1_0()); 
            }
            // InternalXcore.g:27170:1: ( 'container' )
            // InternalXcore.g:27171:1: 'container'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getContainerContainerKeyword_2_3_1_0()); 
            }
            match(input,28,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXReferenceAccess().getContainerContainerKeyword_2_3_1_0()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXReferenceAccess().getContainerContainerKeyword_2_3_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__ContainerAssignment_2_3_1"


    // $ANTLR start "rule__XReference__LocalAssignment_2_4_1"
    // InternalXcore.g:27186:1: rule__XReference__LocalAssignment_2_4_1 : ( ( 'local' ) ) ;
    public final void rule__XReference__LocalAssignment_2_4_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:27190:1: ( ( ( 'local' ) ) )
            // InternalXcore.g:27191:1: ( ( 'local' ) )
            {
            // InternalXcore.g:27191:1: ( ( 'local' ) )
            // InternalXcore.g:27192:1: ( 'local' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getLocalLocalKeyword_2_4_1_0()); 
            }
            // InternalXcore.g:27193:1: ( 'local' )
            // InternalXcore.g:27194:1: 'local'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getLocalLocalKeyword_2_4_1_0()); 
            }
            match(input,40,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXReferenceAccess().getLocalLocalKeyword_2_4_1_0()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXReferenceAccess().getLocalLocalKeyword_2_4_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__LocalAssignment_2_4_1"


    // $ANTLR start "rule__XReference__LocalAssignment_2_5_0"
    // InternalXcore.g:27209:1: rule__XReference__LocalAssignment_2_5_0 : ( ( 'local' ) ) ;
    public final void rule__XReference__LocalAssignment_2_5_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:27213:1: ( ( ( 'local' ) ) )
            // InternalXcore.g:27214:1: ( ( 'local' ) )
            {
            // InternalXcore.g:27214:1: ( ( 'local' ) )
            // InternalXcore.g:27215:1: ( 'local' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getLocalLocalKeyword_2_5_0_0()); 
            }
            // InternalXcore.g:27216:1: ( 'local' )
            // InternalXcore.g:27217:1: 'local'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getLocalLocalKeyword_2_5_0_0()); 
            }
            match(input,40,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXReferenceAccess().getLocalLocalKeyword_2_5_0_0()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXReferenceAccess().getLocalLocalKeyword_2_5_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__LocalAssignment_2_5_0"


    // $ANTLR start "rule__XReference__UnorderedAssignment_3_0"
    // InternalXcore.g:27232:1: rule__XReference__UnorderedAssignment_3_0 : ( ( 'unordered' ) ) ;
    public final void rule__XReference__UnorderedAssignment_3_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:27236:1: ( ( ( 'unordered' ) ) )
            // InternalXcore.g:27237:1: ( ( 'unordered' ) )
            {
            // InternalXcore.g:27237:1: ( ( 'unordered' ) )
            // InternalXcore.g:27238:1: ( 'unordered' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getUnorderedUnorderedKeyword_3_0_0()); 
            }
            // InternalXcore.g:27239:1: ( 'unordered' )
            // InternalXcore.g:27240:1: 'unordered'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getUnorderedUnorderedKeyword_3_0_0()); 
            }
            match(input,51,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXReferenceAccess().getUnorderedUnorderedKeyword_3_0_0()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXReferenceAccess().getUnorderedUnorderedKeyword_3_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__UnorderedAssignment_3_0"


    // $ANTLR start "rule__XReference__UniqueAssignment_3_1"
    // InternalXcore.g:27255:1: rule__XReference__UniqueAssignment_3_1 : ( ( 'unique' ) ) ;
    public final void rule__XReference__UniqueAssignment_3_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:27259:1: ( ( ( 'unique' ) ) )
            // InternalXcore.g:27260:1: ( ( 'unique' ) )
            {
            // InternalXcore.g:27260:1: ( ( 'unique' ) )
            // InternalXcore.g:27261:1: ( 'unique' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getUniqueUniqueKeyword_3_1_0()); 
            }
            // InternalXcore.g:27262:1: ( 'unique' )
            // InternalXcore.g:27263:1: 'unique'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getUniqueUniqueKeyword_3_1_0()); 
            }
            match(input,50,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXReferenceAccess().getUniqueUniqueKeyword_3_1_0()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXReferenceAccess().getUniqueUniqueKeyword_3_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__UniqueAssignment_3_1"


    // $ANTLR start "rule__XReference__ReadonlyAssignment_3_2"
    // InternalXcore.g:27278:1: rule__XReference__ReadonlyAssignment_3_2 : ( ( 'readonly' ) ) ;
    public final void rule__XReference__ReadonlyAssignment_3_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:27282:1: ( ( ( 'readonly' ) ) )
            // InternalXcore.g:27283:1: ( ( 'readonly' ) )
            {
            // InternalXcore.g:27283:1: ( ( 'readonly' ) )
            // InternalXcore.g:27284:1: ( 'readonly' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getReadonlyReadonlyKeyword_3_2_0()); 
            }
            // InternalXcore.g:27285:1: ( 'readonly' )
            // InternalXcore.g:27286:1: 'readonly'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getReadonlyReadonlyKeyword_3_2_0()); 
            }
            match(input,44,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXReferenceAccess().getReadonlyReadonlyKeyword_3_2_0()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXReferenceAccess().getReadonlyReadonlyKeyword_3_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__ReadonlyAssignment_3_2"


    // $ANTLR start "rule__XReference__TransientAssignment_3_3"
    // InternalXcore.g:27301:1: rule__XReference__TransientAssignment_3_3 : ( ( 'transient' ) ) ;
    public final void rule__XReference__TransientAssignment_3_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:27305:1: ( ( ( 'transient' ) ) )
            // InternalXcore.g:27306:1: ( ( 'transient' ) )
            {
            // InternalXcore.g:27306:1: ( ( 'transient' ) )
            // InternalXcore.g:27307:1: ( 'transient' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getTransientTransientKeyword_3_3_0()); 
            }
            // InternalXcore.g:27308:1: ( 'transient' )
            // InternalXcore.g:27309:1: 'transient'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getTransientTransientKeyword_3_3_0()); 
            }
            match(input,49,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXReferenceAccess().getTransientTransientKeyword_3_3_0()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXReferenceAccess().getTransientTransientKeyword_3_3_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__TransientAssignment_3_3"


    // $ANTLR start "rule__XReference__VolatileAssignment_3_4"
    // InternalXcore.g:27324:1: rule__XReference__VolatileAssignment_3_4 : ( ( 'volatile' ) ) ;
    public final void rule__XReference__VolatileAssignment_3_4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:27328:1: ( ( ( 'volatile' ) ) )
            // InternalXcore.g:27329:1: ( ( 'volatile' ) )
            {
            // InternalXcore.g:27329:1: ( ( 'volatile' ) )
            // InternalXcore.g:27330:1: ( 'volatile' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getVolatileVolatileKeyword_3_4_0()); 
            }
            // InternalXcore.g:27331:1: ( 'volatile' )
            // InternalXcore.g:27332:1: 'volatile'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getVolatileVolatileKeyword_3_4_0()); 
            }
            match(input,53,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXReferenceAccess().getVolatileVolatileKeyword_3_4_0()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXReferenceAccess().getVolatileVolatileKeyword_3_4_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__VolatileAssignment_3_4"


    // $ANTLR start "rule__XReference__UnsettableAssignment_3_5"
    // InternalXcore.g:27347:1: rule__XReference__UnsettableAssignment_3_5 : ( ( 'unsettable' ) ) ;
    public final void rule__XReference__UnsettableAssignment_3_5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:27351:1: ( ( ( 'unsettable' ) ) )
            // InternalXcore.g:27352:1: ( ( 'unsettable' ) )
            {
            // InternalXcore.g:27352:1: ( ( 'unsettable' ) )
            // InternalXcore.g:27353:1: ( 'unsettable' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getUnsettableUnsettableKeyword_3_5_0()); 
            }
            // InternalXcore.g:27354:1: ( 'unsettable' )
            // InternalXcore.g:27355:1: 'unsettable'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getUnsettableUnsettableKeyword_3_5_0()); 
            }
            match(input,52,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXReferenceAccess().getUnsettableUnsettableKeyword_3_5_0()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXReferenceAccess().getUnsettableUnsettableKeyword_3_5_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__UnsettableAssignment_3_5"


    // $ANTLR start "rule__XReference__DerivedAssignment_3_6"
    // InternalXcore.g:27370:1: rule__XReference__DerivedAssignment_3_6 : ( ( 'derived' ) ) ;
    public final void rule__XReference__DerivedAssignment_3_6() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:27374:1: ( ( ( 'derived' ) ) )
            // InternalXcore.g:27375:1: ( ( 'derived' ) )
            {
            // InternalXcore.g:27375:1: ( ( 'derived' ) )
            // InternalXcore.g:27376:1: ( 'derived' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getDerivedDerivedKeyword_3_6_0()); 
            }
            // InternalXcore.g:27377:1: ( 'derived' )
            // InternalXcore.g:27378:1: 'derived'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getDerivedDerivedKeyword_3_6_0()); 
            }
            match(input,32,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXReferenceAccess().getDerivedDerivedKeyword_3_6_0()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXReferenceAccess().getDerivedDerivedKeyword_3_6_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__DerivedAssignment_3_6"


    // $ANTLR start "rule__XReference__TypeAssignment_4"
    // InternalXcore.g:27393:1: rule__XReference__TypeAssignment_4 : ( ruleXGenericType ) ;
    public final void rule__XReference__TypeAssignment_4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:27397:1: ( ( ruleXGenericType ) )
            // InternalXcore.g:27398:1: ( ruleXGenericType )
            {
            // InternalXcore.g:27398:1: ( ruleXGenericType )
            // InternalXcore.g:27399:1: ruleXGenericType
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getTypeXGenericTypeParserRuleCall_4_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXGenericType();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXReferenceAccess().getTypeXGenericTypeParserRuleCall_4_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__TypeAssignment_4"


    // $ANTLR start "rule__XReference__MultiplicityAssignment_5"
    // InternalXcore.g:27408:1: rule__XReference__MultiplicityAssignment_5 : ( ruleXMultiplicity ) ;
    public final void rule__XReference__MultiplicityAssignment_5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:27412:1: ( ( ruleXMultiplicity ) )
            // InternalXcore.g:27413:1: ( ruleXMultiplicity )
            {
            // InternalXcore.g:27413:1: ( ruleXMultiplicity )
            // InternalXcore.g:27414:1: ruleXMultiplicity
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getMultiplicityXMultiplicityParserRuleCall_5_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXMultiplicity();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXReferenceAccess().getMultiplicityXMultiplicityParserRuleCall_5_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__MultiplicityAssignment_5"


    // $ANTLR start "rule__XReference__NameAssignment_6"
    // InternalXcore.g:27423:1: rule__XReference__NameAssignment_6 : ( RULE_ID ) ;
    public final void rule__XReference__NameAssignment_6() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:27427:1: ( ( RULE_ID ) )
            // InternalXcore.g:27428:1: ( RULE_ID )
            {
            // InternalXcore.g:27428:1: ( RULE_ID )
            // InternalXcore.g:27429:1: RULE_ID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getNameIDTerminalRuleCall_6_0()); 
            }
            match(input,RULE_ID,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXReferenceAccess().getNameIDTerminalRuleCall_6_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__NameAssignment_6"


    // $ANTLR start "rule__XReference__OppositeAssignment_7_1"
    // InternalXcore.g:27438:1: rule__XReference__OppositeAssignment_7_1 : ( ( ruleValidID ) ) ;
    public final void rule__XReference__OppositeAssignment_7_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:27442:1: ( ( ( ruleValidID ) ) )
            // InternalXcore.g:27443:1: ( ( ruleValidID ) )
            {
            // InternalXcore.g:27443:1: ( ( ruleValidID ) )
            // InternalXcore.g:27444:1: ( ruleValidID )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getOppositeGenFeatureCrossReference_7_1_0()); 
            }
            // InternalXcore.g:27445:1: ( ruleValidID )
            // InternalXcore.g:27446:1: ruleValidID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getOppositeGenFeatureValidIDParserRuleCall_7_1_0_1()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleValidID();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXReferenceAccess().getOppositeGenFeatureValidIDParserRuleCall_7_1_0_1()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXReferenceAccess().getOppositeGenFeatureCrossReference_7_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__OppositeAssignment_7_1"


    // $ANTLR start "rule__XReference__KeysAssignment_8_1"
    // InternalXcore.g:27457:1: rule__XReference__KeysAssignment_8_1 : ( ( ruleValidID ) ) ;
    public final void rule__XReference__KeysAssignment_8_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:27461:1: ( ( ( ruleValidID ) ) )
            // InternalXcore.g:27462:1: ( ( ruleValidID ) )
            {
            // InternalXcore.g:27462:1: ( ( ruleValidID ) )
            // InternalXcore.g:27463:1: ( ruleValidID )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getKeysGenFeatureCrossReference_8_1_0()); 
            }
            // InternalXcore.g:27464:1: ( ruleValidID )
            // InternalXcore.g:27465:1: ruleValidID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getKeysGenFeatureValidIDParserRuleCall_8_1_0_1()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleValidID();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXReferenceAccess().getKeysGenFeatureValidIDParserRuleCall_8_1_0_1()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXReferenceAccess().getKeysGenFeatureCrossReference_8_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__KeysAssignment_8_1"


    // $ANTLR start "rule__XReference__KeysAssignment_8_2_1"
    // InternalXcore.g:27476:1: rule__XReference__KeysAssignment_8_2_1 : ( ( ruleValidID ) ) ;
    public final void rule__XReference__KeysAssignment_8_2_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:27480:1: ( ( ( ruleValidID ) ) )
            // InternalXcore.g:27481:1: ( ( ruleValidID ) )
            {
            // InternalXcore.g:27481:1: ( ( ruleValidID ) )
            // InternalXcore.g:27482:1: ( ruleValidID )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getKeysGenFeatureCrossReference_8_2_1_0()); 
            }
            // InternalXcore.g:27483:1: ( ruleValidID )
            // InternalXcore.g:27484:1: ruleValidID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getKeysGenFeatureValidIDParserRuleCall_8_2_1_0_1()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleValidID();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXReferenceAccess().getKeysGenFeatureValidIDParserRuleCall_8_2_1_0_1()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXReferenceAccess().getKeysGenFeatureCrossReference_8_2_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__KeysAssignment_8_2_1"


    // $ANTLR start "rule__XReference__GetBodyAssignment_9_0_1"
    // InternalXcore.g:27495:1: rule__XReference__GetBodyAssignment_9_0_1 : ( ruleXBlockExpression ) ;
    public final void rule__XReference__GetBodyAssignment_9_0_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:27499:1: ( ( ruleXBlockExpression ) )
            // InternalXcore.g:27500:1: ( ruleXBlockExpression )
            {
            // InternalXcore.g:27500:1: ( ruleXBlockExpression )
            // InternalXcore.g:27501:1: ruleXBlockExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getGetBodyXBlockExpressionParserRuleCall_9_0_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXBlockExpression();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXReferenceAccess().getGetBodyXBlockExpressionParserRuleCall_9_0_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__GetBodyAssignment_9_0_1"


    // $ANTLR start "rule__XReference__SetBodyAssignment_9_1_1"
    // InternalXcore.g:27510:1: rule__XReference__SetBodyAssignment_9_1_1 : ( ruleXBlockExpression ) ;
    public final void rule__XReference__SetBodyAssignment_9_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:27514:1: ( ( ruleXBlockExpression ) )
            // InternalXcore.g:27515:1: ( ruleXBlockExpression )
            {
            // InternalXcore.g:27515:1: ( ruleXBlockExpression )
            // InternalXcore.g:27516:1: ruleXBlockExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getSetBodyXBlockExpressionParserRuleCall_9_1_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXBlockExpression();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXReferenceAccess().getSetBodyXBlockExpressionParserRuleCall_9_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__SetBodyAssignment_9_1_1"


    // $ANTLR start "rule__XReference__IsSetBodyAssignment_9_2_1"
    // InternalXcore.g:27525:1: rule__XReference__IsSetBodyAssignment_9_2_1 : ( ruleXBlockExpression ) ;
    public final void rule__XReference__IsSetBodyAssignment_9_2_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:27529:1: ( ( ruleXBlockExpression ) )
            // InternalXcore.g:27530:1: ( ruleXBlockExpression )
            {
            // InternalXcore.g:27530:1: ( ruleXBlockExpression )
            // InternalXcore.g:27531:1: ruleXBlockExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getIsSetBodyXBlockExpressionParserRuleCall_9_2_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXBlockExpression();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXReferenceAccess().getIsSetBodyXBlockExpressionParserRuleCall_9_2_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__IsSetBodyAssignment_9_2_1"


    // $ANTLR start "rule__XReference__UnsetBodyAssignment_9_3_1"
    // InternalXcore.g:27540:1: rule__XReference__UnsetBodyAssignment_9_3_1 : ( ruleXBlockExpression ) ;
    public final void rule__XReference__UnsetBodyAssignment_9_3_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:27544:1: ( ( ruleXBlockExpression ) )
            // InternalXcore.g:27545:1: ( ruleXBlockExpression )
            {
            // InternalXcore.g:27545:1: ( ruleXBlockExpression )
            // InternalXcore.g:27546:1: ruleXBlockExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReferenceAccess().getUnsetBodyXBlockExpressionParserRuleCall_9_3_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXBlockExpression();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXReferenceAccess().getUnsetBodyXBlockExpressionParserRuleCall_9_3_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReference__UnsetBodyAssignment_9_3_1"


    // $ANTLR start "rule__XOperation__AnnotationsAssignment_1"
    // InternalXcore.g:27555:1: rule__XOperation__AnnotationsAssignment_1 : ( ruleXAnnotation ) ;
    public final void rule__XOperation__AnnotationsAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:27559:1: ( ( ruleXAnnotation ) )
            // InternalXcore.g:27560:1: ( ruleXAnnotation )
            {
            // InternalXcore.g:27560:1: ( ruleXAnnotation )
            // InternalXcore.g:27561:1: ruleXAnnotation
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getAnnotationsXAnnotationParserRuleCall_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXAnnotation();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXOperationAccess().getAnnotationsXAnnotationParserRuleCall_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOperation__AnnotationsAssignment_1"


    // $ANTLR start "rule__XOperation__UnorderedAssignment_3_0_0"
    // InternalXcore.g:27570:1: rule__XOperation__UnorderedAssignment_3_0_0 : ( ( 'unordered' ) ) ;
    public final void rule__XOperation__UnorderedAssignment_3_0_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:27574:1: ( ( ( 'unordered' ) ) )
            // InternalXcore.g:27575:1: ( ( 'unordered' ) )
            {
            // InternalXcore.g:27575:1: ( ( 'unordered' ) )
            // InternalXcore.g:27576:1: ( 'unordered' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getUnorderedUnorderedKeyword_3_0_0_0()); 
            }
            // InternalXcore.g:27577:1: ( 'unordered' )
            // InternalXcore.g:27578:1: 'unordered'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getUnorderedUnorderedKeyword_3_0_0_0()); 
            }
            match(input,51,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXOperationAccess().getUnorderedUnorderedKeyword_3_0_0_0()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXOperationAccess().getUnorderedUnorderedKeyword_3_0_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOperation__UnorderedAssignment_3_0_0"


    // $ANTLR start "rule__XOperation__UniqueAssignment_3_0_1"
    // InternalXcore.g:27593:1: rule__XOperation__UniqueAssignment_3_0_1 : ( ( 'unique' ) ) ;
    public final void rule__XOperation__UniqueAssignment_3_0_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:27597:1: ( ( ( 'unique' ) ) )
            // InternalXcore.g:27598:1: ( ( 'unique' ) )
            {
            // InternalXcore.g:27598:1: ( ( 'unique' ) )
            // InternalXcore.g:27599:1: ( 'unique' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getUniqueUniqueKeyword_3_0_1_0()); 
            }
            // InternalXcore.g:27600:1: ( 'unique' )
            // InternalXcore.g:27601:1: 'unique'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getUniqueUniqueKeyword_3_0_1_0()); 
            }
            match(input,50,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXOperationAccess().getUniqueUniqueKeyword_3_0_1_0()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXOperationAccess().getUniqueUniqueKeyword_3_0_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOperation__UniqueAssignment_3_0_1"


    // $ANTLR start "rule__XOperation__UniqueAssignment_3_1_0"
    // InternalXcore.g:27616:1: rule__XOperation__UniqueAssignment_3_1_0 : ( ( 'unique' ) ) ;
    public final void rule__XOperation__UniqueAssignment_3_1_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:27620:1: ( ( ( 'unique' ) ) )
            // InternalXcore.g:27621:1: ( ( 'unique' ) )
            {
            // InternalXcore.g:27621:1: ( ( 'unique' ) )
            // InternalXcore.g:27622:1: ( 'unique' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getUniqueUniqueKeyword_3_1_0_0()); 
            }
            // InternalXcore.g:27623:1: ( 'unique' )
            // InternalXcore.g:27624:1: 'unique'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getUniqueUniqueKeyword_3_1_0_0()); 
            }
            match(input,50,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXOperationAccess().getUniqueUniqueKeyword_3_1_0_0()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXOperationAccess().getUniqueUniqueKeyword_3_1_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOperation__UniqueAssignment_3_1_0"


    // $ANTLR start "rule__XOperation__UnorderedAssignment_3_1_1"
    // InternalXcore.g:27639:1: rule__XOperation__UnorderedAssignment_3_1_1 : ( ( 'unordered' ) ) ;
    public final void rule__XOperation__UnorderedAssignment_3_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:27643:1: ( ( ( 'unordered' ) ) )
            // InternalXcore.g:27644:1: ( ( 'unordered' ) )
            {
            // InternalXcore.g:27644:1: ( ( 'unordered' ) )
            // InternalXcore.g:27645:1: ( 'unordered' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getUnorderedUnorderedKeyword_3_1_1_0()); 
            }
            // InternalXcore.g:27646:1: ( 'unordered' )
            // InternalXcore.g:27647:1: 'unordered'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getUnorderedUnorderedKeyword_3_1_1_0()); 
            }
            match(input,51,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXOperationAccess().getUnorderedUnorderedKeyword_3_1_1_0()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXOperationAccess().getUnorderedUnorderedKeyword_3_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOperation__UnorderedAssignment_3_1_1"


    // $ANTLR start "rule__XOperation__TypeParametersAssignment_4_1"
    // InternalXcore.g:27662:1: rule__XOperation__TypeParametersAssignment_4_1 : ( ruleXTypeParameter ) ;
    public final void rule__XOperation__TypeParametersAssignment_4_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:27666:1: ( ( ruleXTypeParameter ) )
            // InternalXcore.g:27667:1: ( ruleXTypeParameter )
            {
            // InternalXcore.g:27667:1: ( ruleXTypeParameter )
            // InternalXcore.g:27668:1: ruleXTypeParameter
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getTypeParametersXTypeParameterParserRuleCall_4_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXTypeParameter();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXOperationAccess().getTypeParametersXTypeParameterParserRuleCall_4_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOperation__TypeParametersAssignment_4_1"


    // $ANTLR start "rule__XOperation__TypeParametersAssignment_4_2_1"
    // InternalXcore.g:27677:1: rule__XOperation__TypeParametersAssignment_4_2_1 : ( ruleXTypeParameter ) ;
    public final void rule__XOperation__TypeParametersAssignment_4_2_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:27681:1: ( ( ruleXTypeParameter ) )
            // InternalXcore.g:27682:1: ( ruleXTypeParameter )
            {
            // InternalXcore.g:27682:1: ( ruleXTypeParameter )
            // InternalXcore.g:27683:1: ruleXTypeParameter
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getTypeParametersXTypeParameterParserRuleCall_4_2_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXTypeParameter();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXOperationAccess().getTypeParametersXTypeParameterParserRuleCall_4_2_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOperation__TypeParametersAssignment_4_2_1"


    // $ANTLR start "rule__XOperation__TypeAssignment_5_0"
    // InternalXcore.g:27692:1: rule__XOperation__TypeAssignment_5_0 : ( ruleXGenericType ) ;
    public final void rule__XOperation__TypeAssignment_5_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:27696:1: ( ( ruleXGenericType ) )
            // InternalXcore.g:27697:1: ( ruleXGenericType )
            {
            // InternalXcore.g:27697:1: ( ruleXGenericType )
            // InternalXcore.g:27698:1: ruleXGenericType
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getTypeXGenericTypeParserRuleCall_5_0_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXGenericType();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXOperationAccess().getTypeXGenericTypeParserRuleCall_5_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOperation__TypeAssignment_5_0"


    // $ANTLR start "rule__XOperation__MultiplicityAssignment_6"
    // InternalXcore.g:27707:1: rule__XOperation__MultiplicityAssignment_6 : ( ruleXMultiplicity ) ;
    public final void rule__XOperation__MultiplicityAssignment_6() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:27711:1: ( ( ruleXMultiplicity ) )
            // InternalXcore.g:27712:1: ( ruleXMultiplicity )
            {
            // InternalXcore.g:27712:1: ( ruleXMultiplicity )
            // InternalXcore.g:27713:1: ruleXMultiplicity
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getMultiplicityXMultiplicityParserRuleCall_6_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXMultiplicity();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXOperationAccess().getMultiplicityXMultiplicityParserRuleCall_6_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOperation__MultiplicityAssignment_6"


    // $ANTLR start "rule__XOperation__NameAssignment_7"
    // InternalXcore.g:27722:1: rule__XOperation__NameAssignment_7 : ( RULE_ID ) ;
    public final void rule__XOperation__NameAssignment_7() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:27726:1: ( ( RULE_ID ) )
            // InternalXcore.g:27727:1: ( RULE_ID )
            {
            // InternalXcore.g:27727:1: ( RULE_ID )
            // InternalXcore.g:27728:1: RULE_ID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getNameIDTerminalRuleCall_7_0()); 
            }
            match(input,RULE_ID,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXOperationAccess().getNameIDTerminalRuleCall_7_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOperation__NameAssignment_7"


    // $ANTLR start "rule__XOperation__ParametersAssignment_9_0"
    // InternalXcore.g:27737:1: rule__XOperation__ParametersAssignment_9_0 : ( ruleXParameter ) ;
    public final void rule__XOperation__ParametersAssignment_9_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:27741:1: ( ( ruleXParameter ) )
            // InternalXcore.g:27742:1: ( ruleXParameter )
            {
            // InternalXcore.g:27742:1: ( ruleXParameter )
            // InternalXcore.g:27743:1: ruleXParameter
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getParametersXParameterParserRuleCall_9_0_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXParameter();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXOperationAccess().getParametersXParameterParserRuleCall_9_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOperation__ParametersAssignment_9_0"


    // $ANTLR start "rule__XOperation__ParametersAssignment_9_1_1"
    // InternalXcore.g:27752:1: rule__XOperation__ParametersAssignment_9_1_1 : ( ruleXParameter ) ;
    public final void rule__XOperation__ParametersAssignment_9_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:27756:1: ( ( ruleXParameter ) )
            // InternalXcore.g:27757:1: ( ruleXParameter )
            {
            // InternalXcore.g:27757:1: ( ruleXParameter )
            // InternalXcore.g:27758:1: ruleXParameter
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getParametersXParameterParserRuleCall_9_1_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXParameter();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXOperationAccess().getParametersXParameterParserRuleCall_9_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOperation__ParametersAssignment_9_1_1"


    // $ANTLR start "rule__XOperation__ExceptionsAssignment_11_1"
    // InternalXcore.g:27767:1: rule__XOperation__ExceptionsAssignment_11_1 : ( ruleXGenericType ) ;
    public final void rule__XOperation__ExceptionsAssignment_11_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:27771:1: ( ( ruleXGenericType ) )
            // InternalXcore.g:27772:1: ( ruleXGenericType )
            {
            // InternalXcore.g:27772:1: ( ruleXGenericType )
            // InternalXcore.g:27773:1: ruleXGenericType
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getExceptionsXGenericTypeParserRuleCall_11_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXGenericType();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXOperationAccess().getExceptionsXGenericTypeParserRuleCall_11_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOperation__ExceptionsAssignment_11_1"


    // $ANTLR start "rule__XOperation__ExceptionsAssignment_11_2_1"
    // InternalXcore.g:27782:1: rule__XOperation__ExceptionsAssignment_11_2_1 : ( ruleXGenericType ) ;
    public final void rule__XOperation__ExceptionsAssignment_11_2_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:27786:1: ( ( ruleXGenericType ) )
            // InternalXcore.g:27787:1: ( ruleXGenericType )
            {
            // InternalXcore.g:27787:1: ( ruleXGenericType )
            // InternalXcore.g:27788:1: ruleXGenericType
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getExceptionsXGenericTypeParserRuleCall_11_2_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXGenericType();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXOperationAccess().getExceptionsXGenericTypeParserRuleCall_11_2_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOperation__ExceptionsAssignment_11_2_1"


    // $ANTLR start "rule__XOperation__BodyAssignment_12"
    // InternalXcore.g:27797:1: rule__XOperation__BodyAssignment_12 : ( ruleXBlockExpression ) ;
    public final void rule__XOperation__BodyAssignment_12() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:27801:1: ( ( ruleXBlockExpression ) )
            // InternalXcore.g:27802:1: ( ruleXBlockExpression )
            {
            // InternalXcore.g:27802:1: ( ruleXBlockExpression )
            // InternalXcore.g:27803:1: ruleXBlockExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOperationAccess().getBodyXBlockExpressionParserRuleCall_12_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXBlockExpression();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXOperationAccess().getBodyXBlockExpressionParserRuleCall_12_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOperation__BodyAssignment_12"


    // $ANTLR start "rule__XParameter__AnnotationsAssignment_0"
    // InternalXcore.g:27812:1: rule__XParameter__AnnotationsAssignment_0 : ( ruleXAnnotation ) ;
    public final void rule__XParameter__AnnotationsAssignment_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:27816:1: ( ( ruleXAnnotation ) )
            // InternalXcore.g:27817:1: ( ruleXAnnotation )
            {
            // InternalXcore.g:27817:1: ( ruleXAnnotation )
            // InternalXcore.g:27818:1: ruleXAnnotation
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXParameterAccess().getAnnotationsXAnnotationParserRuleCall_0_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXAnnotation();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXParameterAccess().getAnnotationsXAnnotationParserRuleCall_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XParameter__AnnotationsAssignment_0"


    // $ANTLR start "rule__XParameter__UnorderedAssignment_1_0_0"
    // InternalXcore.g:27827:1: rule__XParameter__UnorderedAssignment_1_0_0 : ( ( 'unordered' ) ) ;
    public final void rule__XParameter__UnorderedAssignment_1_0_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:27831:1: ( ( ( 'unordered' ) ) )
            // InternalXcore.g:27832:1: ( ( 'unordered' ) )
            {
            // InternalXcore.g:27832:1: ( ( 'unordered' ) )
            // InternalXcore.g:27833:1: ( 'unordered' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXParameterAccess().getUnorderedUnorderedKeyword_1_0_0_0()); 
            }
            // InternalXcore.g:27834:1: ( 'unordered' )
            // InternalXcore.g:27835:1: 'unordered'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXParameterAccess().getUnorderedUnorderedKeyword_1_0_0_0()); 
            }
            match(input,51,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXParameterAccess().getUnorderedUnorderedKeyword_1_0_0_0()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXParameterAccess().getUnorderedUnorderedKeyword_1_0_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XParameter__UnorderedAssignment_1_0_0"


    // $ANTLR start "rule__XParameter__UniqueAssignment_1_0_1"
    // InternalXcore.g:27850:1: rule__XParameter__UniqueAssignment_1_0_1 : ( ( 'unique' ) ) ;
    public final void rule__XParameter__UniqueAssignment_1_0_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:27854:1: ( ( ( 'unique' ) ) )
            // InternalXcore.g:27855:1: ( ( 'unique' ) )
            {
            // InternalXcore.g:27855:1: ( ( 'unique' ) )
            // InternalXcore.g:27856:1: ( 'unique' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXParameterAccess().getUniqueUniqueKeyword_1_0_1_0()); 
            }
            // InternalXcore.g:27857:1: ( 'unique' )
            // InternalXcore.g:27858:1: 'unique'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXParameterAccess().getUniqueUniqueKeyword_1_0_1_0()); 
            }
            match(input,50,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXParameterAccess().getUniqueUniqueKeyword_1_0_1_0()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXParameterAccess().getUniqueUniqueKeyword_1_0_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XParameter__UniqueAssignment_1_0_1"


    // $ANTLR start "rule__XParameter__UniqueAssignment_1_1_0"
    // InternalXcore.g:27873:1: rule__XParameter__UniqueAssignment_1_1_0 : ( ( 'unique' ) ) ;
    public final void rule__XParameter__UniqueAssignment_1_1_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:27877:1: ( ( ( 'unique' ) ) )
            // InternalXcore.g:27878:1: ( ( 'unique' ) )
            {
            // InternalXcore.g:27878:1: ( ( 'unique' ) )
            // InternalXcore.g:27879:1: ( 'unique' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXParameterAccess().getUniqueUniqueKeyword_1_1_0_0()); 
            }
            // InternalXcore.g:27880:1: ( 'unique' )
            // InternalXcore.g:27881:1: 'unique'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXParameterAccess().getUniqueUniqueKeyword_1_1_0_0()); 
            }
            match(input,50,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXParameterAccess().getUniqueUniqueKeyword_1_1_0_0()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXParameterAccess().getUniqueUniqueKeyword_1_1_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XParameter__UniqueAssignment_1_1_0"


    // $ANTLR start "rule__XParameter__UnorderedAssignment_1_1_1"
    // InternalXcore.g:27896:1: rule__XParameter__UnorderedAssignment_1_1_1 : ( ( 'unordered' ) ) ;
    public final void rule__XParameter__UnorderedAssignment_1_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:27900:1: ( ( ( 'unordered' ) ) )
            // InternalXcore.g:27901:1: ( ( 'unordered' ) )
            {
            // InternalXcore.g:27901:1: ( ( 'unordered' ) )
            // InternalXcore.g:27902:1: ( 'unordered' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXParameterAccess().getUnorderedUnorderedKeyword_1_1_1_0()); 
            }
            // InternalXcore.g:27903:1: ( 'unordered' )
            // InternalXcore.g:27904:1: 'unordered'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXParameterAccess().getUnorderedUnorderedKeyword_1_1_1_0()); 
            }
            match(input,51,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXParameterAccess().getUnorderedUnorderedKeyword_1_1_1_0()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXParameterAccess().getUnorderedUnorderedKeyword_1_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XParameter__UnorderedAssignment_1_1_1"


    // $ANTLR start "rule__XParameter__TypeAssignment_2"
    // InternalXcore.g:27919:1: rule__XParameter__TypeAssignment_2 : ( ruleXGenericType ) ;
    public final void rule__XParameter__TypeAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:27923:1: ( ( ruleXGenericType ) )
            // InternalXcore.g:27924:1: ( ruleXGenericType )
            {
            // InternalXcore.g:27924:1: ( ruleXGenericType )
            // InternalXcore.g:27925:1: ruleXGenericType
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXParameterAccess().getTypeXGenericTypeParserRuleCall_2_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXGenericType();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXParameterAccess().getTypeXGenericTypeParserRuleCall_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XParameter__TypeAssignment_2"


    // $ANTLR start "rule__XParameter__MultiplicityAssignment_3"
    // InternalXcore.g:27934:1: rule__XParameter__MultiplicityAssignment_3 : ( ruleXMultiplicity ) ;
    public final void rule__XParameter__MultiplicityAssignment_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:27938:1: ( ( ruleXMultiplicity ) )
            // InternalXcore.g:27939:1: ( ruleXMultiplicity )
            {
            // InternalXcore.g:27939:1: ( ruleXMultiplicity )
            // InternalXcore.g:27940:1: ruleXMultiplicity
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXParameterAccess().getMultiplicityXMultiplicityParserRuleCall_3_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXMultiplicity();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXParameterAccess().getMultiplicityXMultiplicityParserRuleCall_3_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XParameter__MultiplicityAssignment_3"


    // $ANTLR start "rule__XParameter__NameAssignment_4"
    // InternalXcore.g:27949:1: rule__XParameter__NameAssignment_4 : ( RULE_ID ) ;
    public final void rule__XParameter__NameAssignment_4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:27953:1: ( ( RULE_ID ) )
            // InternalXcore.g:27954:1: ( RULE_ID )
            {
            // InternalXcore.g:27954:1: ( RULE_ID )
            // InternalXcore.g:27955:1: RULE_ID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXParameterAccess().getNameIDTerminalRuleCall_4_0()); 
            }
            match(input,RULE_ID,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXParameterAccess().getNameIDTerminalRuleCall_4_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XParameter__NameAssignment_4"


    // $ANTLR start "rule__XTypeParameter__AnnotationsAssignment_0"
    // InternalXcore.g:27964:1: rule__XTypeParameter__AnnotationsAssignment_0 : ( ruleXAnnotation ) ;
    public final void rule__XTypeParameter__AnnotationsAssignment_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:27968:1: ( ( ruleXAnnotation ) )
            // InternalXcore.g:27969:1: ( ruleXAnnotation )
            {
            // InternalXcore.g:27969:1: ( ruleXAnnotation )
            // InternalXcore.g:27970:1: ruleXAnnotation
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXTypeParameterAccess().getAnnotationsXAnnotationParserRuleCall_0_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXAnnotation();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXTypeParameterAccess().getAnnotationsXAnnotationParserRuleCall_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XTypeParameter__AnnotationsAssignment_0"


    // $ANTLR start "rule__XTypeParameter__NameAssignment_1"
    // InternalXcore.g:27979:1: rule__XTypeParameter__NameAssignment_1 : ( RULE_ID ) ;
    public final void rule__XTypeParameter__NameAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:27983:1: ( ( RULE_ID ) )
            // InternalXcore.g:27984:1: ( RULE_ID )
            {
            // InternalXcore.g:27984:1: ( RULE_ID )
            // InternalXcore.g:27985:1: RULE_ID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXTypeParameterAccess().getNameIDTerminalRuleCall_1_0()); 
            }
            match(input,RULE_ID,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXTypeParameterAccess().getNameIDTerminalRuleCall_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XTypeParameter__NameAssignment_1"


    // $ANTLR start "rule__XTypeParameter__BoundsAssignment_2_1"
    // InternalXcore.g:27994:1: rule__XTypeParameter__BoundsAssignment_2_1 : ( ruleXGenericType ) ;
    public final void rule__XTypeParameter__BoundsAssignment_2_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:27998:1: ( ( ruleXGenericType ) )
            // InternalXcore.g:27999:1: ( ruleXGenericType )
            {
            // InternalXcore.g:27999:1: ( ruleXGenericType )
            // InternalXcore.g:28000:1: ruleXGenericType
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXTypeParameterAccess().getBoundsXGenericTypeParserRuleCall_2_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXGenericType();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXTypeParameterAccess().getBoundsXGenericTypeParserRuleCall_2_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XTypeParameter__BoundsAssignment_2_1"


    // $ANTLR start "rule__XTypeParameter__BoundsAssignment_2_2_1"
    // InternalXcore.g:28009:1: rule__XTypeParameter__BoundsAssignment_2_2_1 : ( ruleXGenericType ) ;
    public final void rule__XTypeParameter__BoundsAssignment_2_2_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:28013:1: ( ( ruleXGenericType ) )
            // InternalXcore.g:28014:1: ( ruleXGenericType )
            {
            // InternalXcore.g:28014:1: ( ruleXGenericType )
            // InternalXcore.g:28015:1: ruleXGenericType
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXTypeParameterAccess().getBoundsXGenericTypeParserRuleCall_2_2_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXGenericType();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXTypeParameterAccess().getBoundsXGenericTypeParserRuleCall_2_2_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XTypeParameter__BoundsAssignment_2_2_1"


    // $ANTLR start "rule__XBlockExpression__ExpressionsAssignment_2_0"
    // InternalXcore.g:28024:1: rule__XBlockExpression__ExpressionsAssignment_2_0 : ( ruleXExpressionOrVarDeclaration ) ;
    public final void rule__XBlockExpression__ExpressionsAssignment_2_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:28028:1: ( ( ruleXExpressionOrVarDeclaration ) )
            // InternalXcore.g:28029:1: ( ruleXExpressionOrVarDeclaration )
            {
            // InternalXcore.g:28029:1: ( ruleXExpressionOrVarDeclaration )
            // InternalXcore.g:28030:1: ruleXExpressionOrVarDeclaration
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXBlockExpressionAccess().getExpressionsXExpressionOrVarDeclarationParserRuleCall_2_0_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXExpressionOrVarDeclaration();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXBlockExpressionAccess().getExpressionsXExpressionOrVarDeclarationParserRuleCall_2_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XBlockExpression__ExpressionsAssignment_2_0"


    // $ANTLR start "rule__XGenericType__TypeAssignment_0"
    // InternalXcore.g:28039:1: rule__XGenericType__TypeAssignment_0 : ( ( ruleXQualifiedName ) ) ;
    public final void rule__XGenericType__TypeAssignment_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:28043:1: ( ( ( ruleXQualifiedName ) ) )
            // InternalXcore.g:28044:1: ( ( ruleXQualifiedName ) )
            {
            // InternalXcore.g:28044:1: ( ( ruleXQualifiedName ) )
            // InternalXcore.g:28045:1: ( ruleXQualifiedName )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXGenericTypeAccess().getTypeGenBaseCrossReference_0_0()); 
            }
            // InternalXcore.g:28046:1: ( ruleXQualifiedName )
            // InternalXcore.g:28047:1: ruleXQualifiedName
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXGenericTypeAccess().getTypeGenBaseXQualifiedNameParserRuleCall_0_0_1()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXQualifiedName();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXGenericTypeAccess().getTypeGenBaseXQualifiedNameParserRuleCall_0_0_1()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXGenericTypeAccess().getTypeGenBaseCrossReference_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XGenericType__TypeAssignment_0"


    // $ANTLR start "rule__XGenericType__TypeArgumentsAssignment_1_1"
    // InternalXcore.g:28058:1: rule__XGenericType__TypeArgumentsAssignment_1_1 : ( ruleXGenericTypeArgument ) ;
    public final void rule__XGenericType__TypeArgumentsAssignment_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:28062:1: ( ( ruleXGenericTypeArgument ) )
            // InternalXcore.g:28063:1: ( ruleXGenericTypeArgument )
            {
            // InternalXcore.g:28063:1: ( ruleXGenericTypeArgument )
            // InternalXcore.g:28064:1: ruleXGenericTypeArgument
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXGenericTypeAccess().getTypeArgumentsXGenericTypeArgumentParserRuleCall_1_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXGenericTypeArgument();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXGenericTypeAccess().getTypeArgumentsXGenericTypeArgumentParserRuleCall_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XGenericType__TypeArgumentsAssignment_1_1"


    // $ANTLR start "rule__XGenericType__TypeArgumentsAssignment_1_2_1"
    // InternalXcore.g:28073:1: rule__XGenericType__TypeArgumentsAssignment_1_2_1 : ( ruleXGenericTypeArgument ) ;
    public final void rule__XGenericType__TypeArgumentsAssignment_1_2_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:28077:1: ( ( ruleXGenericTypeArgument ) )
            // InternalXcore.g:28078:1: ( ruleXGenericTypeArgument )
            {
            // InternalXcore.g:28078:1: ( ruleXGenericTypeArgument )
            // InternalXcore.g:28079:1: ruleXGenericTypeArgument
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXGenericTypeAccess().getTypeArgumentsXGenericTypeArgumentParserRuleCall_1_2_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXGenericTypeArgument();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXGenericTypeAccess().getTypeArgumentsXGenericTypeArgumentParserRuleCall_1_2_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XGenericType__TypeArgumentsAssignment_1_2_1"


    // $ANTLR start "rule__XGenericWildcardTypeArgument__UpperBoundAssignment_2_0_1"
    // InternalXcore.g:28088:1: rule__XGenericWildcardTypeArgument__UpperBoundAssignment_2_0_1 : ( ruleXGenericType ) ;
    public final void rule__XGenericWildcardTypeArgument__UpperBoundAssignment_2_0_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:28092:1: ( ( ruleXGenericType ) )
            // InternalXcore.g:28093:1: ( ruleXGenericType )
            {
            // InternalXcore.g:28093:1: ( ruleXGenericType )
            // InternalXcore.g:28094:1: ruleXGenericType
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXGenericWildcardTypeArgumentAccess().getUpperBoundXGenericTypeParserRuleCall_2_0_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXGenericType();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXGenericWildcardTypeArgumentAccess().getUpperBoundXGenericTypeParserRuleCall_2_0_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XGenericWildcardTypeArgument__UpperBoundAssignment_2_0_1"


    // $ANTLR start "rule__XGenericWildcardTypeArgument__LowerBoundAssignment_2_1_1"
    // InternalXcore.g:28103:1: rule__XGenericWildcardTypeArgument__LowerBoundAssignment_2_1_1 : ( ruleXGenericType ) ;
    public final void rule__XGenericWildcardTypeArgument__LowerBoundAssignment_2_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:28107:1: ( ( ruleXGenericType ) )
            // InternalXcore.g:28108:1: ( ruleXGenericType )
            {
            // InternalXcore.g:28108:1: ( ruleXGenericType )
            // InternalXcore.g:28109:1: ruleXGenericType
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXGenericWildcardTypeArgumentAccess().getLowerBoundXGenericTypeParserRuleCall_2_1_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXGenericType();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXGenericWildcardTypeArgumentAccess().getLowerBoundXGenericTypeParserRuleCall_2_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XGenericWildcardTypeArgument__LowerBoundAssignment_2_1_1"


    // $ANTLR start "rule__XAssignment__FeatureAssignment_0_1"
    // InternalXcore.g:28118:1: rule__XAssignment__FeatureAssignment_0_1 : ( ( ruleFeatureCallID ) ) ;
    public final void rule__XAssignment__FeatureAssignment_0_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:28122:1: ( ( ( ruleFeatureCallID ) ) )
            // InternalXcore.g:28123:1: ( ( ruleFeatureCallID ) )
            {
            // InternalXcore.g:28123:1: ( ( ruleFeatureCallID ) )
            // InternalXcore.g:28124:1: ( ruleFeatureCallID )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAssignmentAccess().getFeatureJvmIdentifiableElementCrossReference_0_1_0()); 
            }
            // InternalXcore.g:28125:1: ( ruleFeatureCallID )
            // InternalXcore.g:28126:1: ruleFeatureCallID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAssignmentAccess().getFeatureJvmIdentifiableElementFeatureCallIDParserRuleCall_0_1_0_1()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleFeatureCallID();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAssignmentAccess().getFeatureJvmIdentifiableElementFeatureCallIDParserRuleCall_0_1_0_1()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAssignmentAccess().getFeatureJvmIdentifiableElementCrossReference_0_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAssignment__FeatureAssignment_0_1"


    // $ANTLR start "rule__XAssignment__ValueAssignment_0_3"
    // InternalXcore.g:28137:1: rule__XAssignment__ValueAssignment_0_3 : ( ruleXAssignment ) ;
    public final void rule__XAssignment__ValueAssignment_0_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:28141:1: ( ( ruleXAssignment ) )
            // InternalXcore.g:28142:1: ( ruleXAssignment )
            {
            // InternalXcore.g:28142:1: ( ruleXAssignment )
            // InternalXcore.g:28143:1: ruleXAssignment
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAssignmentAccess().getValueXAssignmentParserRuleCall_0_3_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXAssignment();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAssignmentAccess().getValueXAssignmentParserRuleCall_0_3_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAssignment__ValueAssignment_0_3"


    // $ANTLR start "rule__XAssignment__FeatureAssignment_1_1_0_0_1"
    // InternalXcore.g:28152:1: rule__XAssignment__FeatureAssignment_1_1_0_0_1 : ( ( ruleOpMultiAssign ) ) ;
    public final void rule__XAssignment__FeatureAssignment_1_1_0_0_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:28156:1: ( ( ( ruleOpMultiAssign ) ) )
            // InternalXcore.g:28157:1: ( ( ruleOpMultiAssign ) )
            {
            // InternalXcore.g:28157:1: ( ( ruleOpMultiAssign ) )
            // InternalXcore.g:28158:1: ( ruleOpMultiAssign )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAssignmentAccess().getFeatureJvmIdentifiableElementCrossReference_1_1_0_0_1_0()); 
            }
            // InternalXcore.g:28159:1: ( ruleOpMultiAssign )
            // InternalXcore.g:28160:1: ruleOpMultiAssign
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAssignmentAccess().getFeatureJvmIdentifiableElementOpMultiAssignParserRuleCall_1_1_0_0_1_0_1()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleOpMultiAssign();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAssignmentAccess().getFeatureJvmIdentifiableElementOpMultiAssignParserRuleCall_1_1_0_0_1_0_1()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAssignmentAccess().getFeatureJvmIdentifiableElementCrossReference_1_1_0_0_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAssignment__FeatureAssignment_1_1_0_0_1"


    // $ANTLR start "rule__XAssignment__RightOperandAssignment_1_1_1"
    // InternalXcore.g:28171:1: rule__XAssignment__RightOperandAssignment_1_1_1 : ( ruleXAssignment ) ;
    public final void rule__XAssignment__RightOperandAssignment_1_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:28175:1: ( ( ruleXAssignment ) )
            // InternalXcore.g:28176:1: ( ruleXAssignment )
            {
            // InternalXcore.g:28176:1: ( ruleXAssignment )
            // InternalXcore.g:28177:1: ruleXAssignment
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAssignmentAccess().getRightOperandXAssignmentParserRuleCall_1_1_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXAssignment();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAssignmentAccess().getRightOperandXAssignmentParserRuleCall_1_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAssignment__RightOperandAssignment_1_1_1"


    // $ANTLR start "rule__XOrExpression__FeatureAssignment_1_0_0_1"
    // InternalXcore.g:28186:1: rule__XOrExpression__FeatureAssignment_1_0_0_1 : ( ( ruleOpOr ) ) ;
    public final void rule__XOrExpression__FeatureAssignment_1_0_0_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:28190:1: ( ( ( ruleOpOr ) ) )
            // InternalXcore.g:28191:1: ( ( ruleOpOr ) )
            {
            // InternalXcore.g:28191:1: ( ( ruleOpOr ) )
            // InternalXcore.g:28192:1: ( ruleOpOr )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOrExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); 
            }
            // InternalXcore.g:28193:1: ( ruleOpOr )
            // InternalXcore.g:28194:1: ruleOpOr
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOrExpressionAccess().getFeatureJvmIdentifiableElementOpOrParserRuleCall_1_0_0_1_0_1()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleOpOr();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXOrExpressionAccess().getFeatureJvmIdentifiableElementOpOrParserRuleCall_1_0_0_1_0_1()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXOrExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOrExpression__FeatureAssignment_1_0_0_1"


    // $ANTLR start "rule__XOrExpression__RightOperandAssignment_1_1"
    // InternalXcore.g:28205:1: rule__XOrExpression__RightOperandAssignment_1_1 : ( ruleXAndExpression ) ;
    public final void rule__XOrExpression__RightOperandAssignment_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:28209:1: ( ( ruleXAndExpression ) )
            // InternalXcore.g:28210:1: ( ruleXAndExpression )
            {
            // InternalXcore.g:28210:1: ( ruleXAndExpression )
            // InternalXcore.g:28211:1: ruleXAndExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOrExpressionAccess().getRightOperandXAndExpressionParserRuleCall_1_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXAndExpression();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXOrExpressionAccess().getRightOperandXAndExpressionParserRuleCall_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOrExpression__RightOperandAssignment_1_1"


    // $ANTLR start "rule__XAndExpression__FeatureAssignment_1_0_0_1"
    // InternalXcore.g:28220:1: rule__XAndExpression__FeatureAssignment_1_0_0_1 : ( ( ruleOpAnd ) ) ;
    public final void rule__XAndExpression__FeatureAssignment_1_0_0_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:28224:1: ( ( ( ruleOpAnd ) ) )
            // InternalXcore.g:28225:1: ( ( ruleOpAnd ) )
            {
            // InternalXcore.g:28225:1: ( ( ruleOpAnd ) )
            // InternalXcore.g:28226:1: ( ruleOpAnd )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAndExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); 
            }
            // InternalXcore.g:28227:1: ( ruleOpAnd )
            // InternalXcore.g:28228:1: ruleOpAnd
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAndExpressionAccess().getFeatureJvmIdentifiableElementOpAndParserRuleCall_1_0_0_1_0_1()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleOpAnd();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAndExpressionAccess().getFeatureJvmIdentifiableElementOpAndParserRuleCall_1_0_0_1_0_1()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAndExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAndExpression__FeatureAssignment_1_0_0_1"


    // $ANTLR start "rule__XAndExpression__RightOperandAssignment_1_1"
    // InternalXcore.g:28239:1: rule__XAndExpression__RightOperandAssignment_1_1 : ( ruleXEqualityExpression ) ;
    public final void rule__XAndExpression__RightOperandAssignment_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:28243:1: ( ( ruleXEqualityExpression ) )
            // InternalXcore.g:28244:1: ( ruleXEqualityExpression )
            {
            // InternalXcore.g:28244:1: ( ruleXEqualityExpression )
            // InternalXcore.g:28245:1: ruleXEqualityExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAndExpressionAccess().getRightOperandXEqualityExpressionParserRuleCall_1_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXEqualityExpression();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAndExpressionAccess().getRightOperandXEqualityExpressionParserRuleCall_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAndExpression__RightOperandAssignment_1_1"


    // $ANTLR start "rule__XEqualityExpression__FeatureAssignment_1_0_0_1"
    // InternalXcore.g:28254:1: rule__XEqualityExpression__FeatureAssignment_1_0_0_1 : ( ( ruleOpEquality ) ) ;
    public final void rule__XEqualityExpression__FeatureAssignment_1_0_0_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:28258:1: ( ( ( ruleOpEquality ) ) )
            // InternalXcore.g:28259:1: ( ( ruleOpEquality ) )
            {
            // InternalXcore.g:28259:1: ( ( ruleOpEquality ) )
            // InternalXcore.g:28260:1: ( ruleOpEquality )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXEqualityExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); 
            }
            // InternalXcore.g:28261:1: ( ruleOpEquality )
            // InternalXcore.g:28262:1: ruleOpEquality
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXEqualityExpressionAccess().getFeatureJvmIdentifiableElementOpEqualityParserRuleCall_1_0_0_1_0_1()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleOpEquality();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXEqualityExpressionAccess().getFeatureJvmIdentifiableElementOpEqualityParserRuleCall_1_0_0_1_0_1()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXEqualityExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XEqualityExpression__FeatureAssignment_1_0_0_1"


    // $ANTLR start "rule__XEqualityExpression__RightOperandAssignment_1_1"
    // InternalXcore.g:28273:1: rule__XEqualityExpression__RightOperandAssignment_1_1 : ( ruleXRelationalExpression ) ;
    public final void rule__XEqualityExpression__RightOperandAssignment_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:28277:1: ( ( ruleXRelationalExpression ) )
            // InternalXcore.g:28278:1: ( ruleXRelationalExpression )
            {
            // InternalXcore.g:28278:1: ( ruleXRelationalExpression )
            // InternalXcore.g:28279:1: ruleXRelationalExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXEqualityExpressionAccess().getRightOperandXRelationalExpressionParserRuleCall_1_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXRelationalExpression();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXEqualityExpressionAccess().getRightOperandXRelationalExpressionParserRuleCall_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XEqualityExpression__RightOperandAssignment_1_1"


    // $ANTLR start "rule__XRelationalExpression__TypeAssignment_1_0_1"
    // InternalXcore.g:28288:1: rule__XRelationalExpression__TypeAssignment_1_0_1 : ( ruleJvmTypeReference ) ;
    public final void rule__XRelationalExpression__TypeAssignment_1_0_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:28292:1: ( ( ruleJvmTypeReference ) )
            // InternalXcore.g:28293:1: ( ruleJvmTypeReference )
            {
            // InternalXcore.g:28293:1: ( ruleJvmTypeReference )
            // InternalXcore.g:28294:1: ruleJvmTypeReference
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXRelationalExpressionAccess().getTypeJvmTypeReferenceParserRuleCall_1_0_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleJvmTypeReference();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXRelationalExpressionAccess().getTypeJvmTypeReferenceParserRuleCall_1_0_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XRelationalExpression__TypeAssignment_1_0_1"


    // $ANTLR start "rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1"
    // InternalXcore.g:28303:1: rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1 : ( ( ruleOpCompare ) ) ;
    public final void rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:28307:1: ( ( ( ruleOpCompare ) ) )
            // InternalXcore.g:28308:1: ( ( ruleOpCompare ) )
            {
            // InternalXcore.g:28308:1: ( ( ruleOpCompare ) )
            // InternalXcore.g:28309:1: ( ruleOpCompare )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXRelationalExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_1_0_0_1_0()); 
            }
            // InternalXcore.g:28310:1: ( ruleOpCompare )
            // InternalXcore.g:28311:1: ruleOpCompare
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXRelationalExpressionAccess().getFeatureJvmIdentifiableElementOpCompareParserRuleCall_1_1_0_0_1_0_1()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleOpCompare();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXRelationalExpressionAccess().getFeatureJvmIdentifiableElementOpCompareParserRuleCall_1_1_0_0_1_0_1()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXRelationalExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_1_0_0_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1"


    // $ANTLR start "rule__XRelationalExpression__RightOperandAssignment_1_1_1"
    // InternalXcore.g:28322:1: rule__XRelationalExpression__RightOperandAssignment_1_1_1 : ( ruleXOtherOperatorExpression ) ;
    public final void rule__XRelationalExpression__RightOperandAssignment_1_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:28326:1: ( ( ruleXOtherOperatorExpression ) )
            // InternalXcore.g:28327:1: ( ruleXOtherOperatorExpression )
            {
            // InternalXcore.g:28327:1: ( ruleXOtherOperatorExpression )
            // InternalXcore.g:28328:1: ruleXOtherOperatorExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXRelationalExpressionAccess().getRightOperandXOtherOperatorExpressionParserRuleCall_1_1_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXOtherOperatorExpression();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXRelationalExpressionAccess().getRightOperandXOtherOperatorExpressionParserRuleCall_1_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XRelationalExpression__RightOperandAssignment_1_1_1"


    // $ANTLR start "rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1"
    // InternalXcore.g:28337:1: rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1 : ( ( ruleOpOther ) ) ;
    public final void rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:28341:1: ( ( ( ruleOpOther ) ) )
            // InternalXcore.g:28342:1: ( ( ruleOpOther ) )
            {
            // InternalXcore.g:28342:1: ( ( ruleOpOther ) )
            // InternalXcore.g:28343:1: ( ruleOpOther )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOtherOperatorExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); 
            }
            // InternalXcore.g:28344:1: ( ruleOpOther )
            // InternalXcore.g:28345:1: ruleOpOther
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOtherOperatorExpressionAccess().getFeatureJvmIdentifiableElementOpOtherParserRuleCall_1_0_0_1_0_1()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleOpOther();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXOtherOperatorExpressionAccess().getFeatureJvmIdentifiableElementOpOtherParserRuleCall_1_0_0_1_0_1()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXOtherOperatorExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1"


    // $ANTLR start "rule__XOtherOperatorExpression__RightOperandAssignment_1_1"
    // InternalXcore.g:28356:1: rule__XOtherOperatorExpression__RightOperandAssignment_1_1 : ( ruleXAdditiveExpression ) ;
    public final void rule__XOtherOperatorExpression__RightOperandAssignment_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:28360:1: ( ( ruleXAdditiveExpression ) )
            // InternalXcore.g:28361:1: ( ruleXAdditiveExpression )
            {
            // InternalXcore.g:28361:1: ( ruleXAdditiveExpression )
            // InternalXcore.g:28362:1: ruleXAdditiveExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXOtherOperatorExpressionAccess().getRightOperandXAdditiveExpressionParserRuleCall_1_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXAdditiveExpression();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXOtherOperatorExpressionAccess().getRightOperandXAdditiveExpressionParserRuleCall_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XOtherOperatorExpression__RightOperandAssignment_1_1"


    // $ANTLR start "rule__XAdditiveExpression__FeatureAssignment_1_0_0_1"
    // InternalXcore.g:28371:1: rule__XAdditiveExpression__FeatureAssignment_1_0_0_1 : ( ( ruleOpAdd ) ) ;
    public final void rule__XAdditiveExpression__FeatureAssignment_1_0_0_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:28375:1: ( ( ( ruleOpAdd ) ) )
            // InternalXcore.g:28376:1: ( ( ruleOpAdd ) )
            {
            // InternalXcore.g:28376:1: ( ( ruleOpAdd ) )
            // InternalXcore.g:28377:1: ( ruleOpAdd )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAdditiveExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); 
            }
            // InternalXcore.g:28378:1: ( ruleOpAdd )
            // InternalXcore.g:28379:1: ruleOpAdd
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAdditiveExpressionAccess().getFeatureJvmIdentifiableElementOpAddParserRuleCall_1_0_0_1_0_1()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleOpAdd();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAdditiveExpressionAccess().getFeatureJvmIdentifiableElementOpAddParserRuleCall_1_0_0_1_0_1()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAdditiveExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAdditiveExpression__FeatureAssignment_1_0_0_1"


    // $ANTLR start "rule__XAdditiveExpression__RightOperandAssignment_1_1"
    // InternalXcore.g:28390:1: rule__XAdditiveExpression__RightOperandAssignment_1_1 : ( ruleXMultiplicativeExpression ) ;
    public final void rule__XAdditiveExpression__RightOperandAssignment_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:28394:1: ( ( ruleXMultiplicativeExpression ) )
            // InternalXcore.g:28395:1: ( ruleXMultiplicativeExpression )
            {
            // InternalXcore.g:28395:1: ( ruleXMultiplicativeExpression )
            // InternalXcore.g:28396:1: ruleXMultiplicativeExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXAdditiveExpressionAccess().getRightOperandXMultiplicativeExpressionParserRuleCall_1_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXMultiplicativeExpression();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXAdditiveExpressionAccess().getRightOperandXMultiplicativeExpressionParserRuleCall_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XAdditiveExpression__RightOperandAssignment_1_1"


    // $ANTLR start "rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1"
    // InternalXcore.g:28405:1: rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1 : ( ( ruleOpMulti ) ) ;
    public final void rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:28409:1: ( ( ( ruleOpMulti ) ) )
            // InternalXcore.g:28410:1: ( ( ruleOpMulti ) )
            {
            // InternalXcore.g:28410:1: ( ( ruleOpMulti ) )
            // InternalXcore.g:28411:1: ( ruleOpMulti )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMultiplicativeExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); 
            }
            // InternalXcore.g:28412:1: ( ruleOpMulti )
            // InternalXcore.g:28413:1: ruleOpMulti
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMultiplicativeExpressionAccess().getFeatureJvmIdentifiableElementOpMultiParserRuleCall_1_0_0_1_0_1()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleOpMulti();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXMultiplicativeExpressionAccess().getFeatureJvmIdentifiableElementOpMultiParserRuleCall_1_0_0_1_0_1()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXMultiplicativeExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1"


    // $ANTLR start "rule__XMultiplicativeExpression__RightOperandAssignment_1_1"
    // InternalXcore.g:28424:1: rule__XMultiplicativeExpression__RightOperandAssignment_1_1 : ( ruleXUnaryOperation ) ;
    public final void rule__XMultiplicativeExpression__RightOperandAssignment_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:28428:1: ( ( ruleXUnaryOperation ) )
            // InternalXcore.g:28429:1: ( ruleXUnaryOperation )
            {
            // InternalXcore.g:28429:1: ( ruleXUnaryOperation )
            // InternalXcore.g:28430:1: ruleXUnaryOperation
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMultiplicativeExpressionAccess().getRightOperandXUnaryOperationParserRuleCall_1_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXUnaryOperation();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXMultiplicativeExpressionAccess().getRightOperandXUnaryOperationParserRuleCall_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMultiplicativeExpression__RightOperandAssignment_1_1"


    // $ANTLR start "rule__XUnaryOperation__FeatureAssignment_0_1"
    // InternalXcore.g:28439:1: rule__XUnaryOperation__FeatureAssignment_0_1 : ( ( ruleOpUnary ) ) ;
    public final void rule__XUnaryOperation__FeatureAssignment_0_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:28443:1: ( ( ( ruleOpUnary ) ) )
            // InternalXcore.g:28444:1: ( ( ruleOpUnary ) )
            {
            // InternalXcore.g:28444:1: ( ( ruleOpUnary ) )
            // InternalXcore.g:28445:1: ( ruleOpUnary )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXUnaryOperationAccess().getFeatureJvmIdentifiableElementCrossReference_0_1_0()); 
            }
            // InternalXcore.g:28446:1: ( ruleOpUnary )
            // InternalXcore.g:28447:1: ruleOpUnary
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXUnaryOperationAccess().getFeatureJvmIdentifiableElementOpUnaryParserRuleCall_0_1_0_1()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleOpUnary();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXUnaryOperationAccess().getFeatureJvmIdentifiableElementOpUnaryParserRuleCall_0_1_0_1()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXUnaryOperationAccess().getFeatureJvmIdentifiableElementCrossReference_0_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XUnaryOperation__FeatureAssignment_0_1"


    // $ANTLR start "rule__XUnaryOperation__OperandAssignment_0_2"
    // InternalXcore.g:28458:1: rule__XUnaryOperation__OperandAssignment_0_2 : ( ruleXUnaryOperation ) ;
    public final void rule__XUnaryOperation__OperandAssignment_0_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:28462:1: ( ( ruleXUnaryOperation ) )
            // InternalXcore.g:28463:1: ( ruleXUnaryOperation )
            {
            // InternalXcore.g:28463:1: ( ruleXUnaryOperation )
            // InternalXcore.g:28464:1: ruleXUnaryOperation
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXUnaryOperationAccess().getOperandXUnaryOperationParserRuleCall_0_2_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXUnaryOperation();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXUnaryOperationAccess().getOperandXUnaryOperationParserRuleCall_0_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XUnaryOperation__OperandAssignment_0_2"


    // $ANTLR start "rule__XCastedExpression__TypeAssignment_1_1"
    // InternalXcore.g:28473:1: rule__XCastedExpression__TypeAssignment_1_1 : ( ruleJvmTypeReference ) ;
    public final void rule__XCastedExpression__TypeAssignment_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:28477:1: ( ( ruleJvmTypeReference ) )
            // InternalXcore.g:28478:1: ( ruleJvmTypeReference )
            {
            // InternalXcore.g:28478:1: ( ruleJvmTypeReference )
            // InternalXcore.g:28479:1: ruleJvmTypeReference
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXCastedExpressionAccess().getTypeJvmTypeReferenceParserRuleCall_1_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleJvmTypeReference();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXCastedExpressionAccess().getTypeJvmTypeReferenceParserRuleCall_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XCastedExpression__TypeAssignment_1_1"


    // $ANTLR start "rule__XPostfixOperation__FeatureAssignment_1_0_1"
    // InternalXcore.g:28488:1: rule__XPostfixOperation__FeatureAssignment_1_0_1 : ( ( ruleOpPostfix ) ) ;
    public final void rule__XPostfixOperation__FeatureAssignment_1_0_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:28492:1: ( ( ( ruleOpPostfix ) ) )
            // InternalXcore.g:28493:1: ( ( ruleOpPostfix ) )
            {
            // InternalXcore.g:28493:1: ( ( ruleOpPostfix ) )
            // InternalXcore.g:28494:1: ( ruleOpPostfix )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXPostfixOperationAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_1_0()); 
            }
            // InternalXcore.g:28495:1: ( ruleOpPostfix )
            // InternalXcore.g:28496:1: ruleOpPostfix
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXPostfixOperationAccess().getFeatureJvmIdentifiableElementOpPostfixParserRuleCall_1_0_1_0_1()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleOpPostfix();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXPostfixOperationAccess().getFeatureJvmIdentifiableElementOpPostfixParserRuleCall_1_0_1_0_1()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXPostfixOperationAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XPostfixOperation__FeatureAssignment_1_0_1"


    // $ANTLR start "rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1"
    // InternalXcore.g:28507:1: rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1 : ( ( '::' ) ) ;
    public final void rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:28511:1: ( ( ( '::' ) ) )
            // InternalXcore.g:28512:1: ( ( '::' ) )
            {
            // InternalXcore.g:28512:1: ( ( '::' ) )
            // InternalXcore.g:28513:1: ( '::' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_0_0_0_1_1_0()); 
            }
            // InternalXcore.g:28514:1: ( '::' )
            // InternalXcore.g:28515:1: '::'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_0_0_0_1_1_0()); 
            }
            match(input,115,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_0_0_0_1_1_0()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_0_0_0_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1"


    // $ANTLR start "rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2"
    // InternalXcore.g:28530:1: rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2 : ( ( ruleFeatureCallID ) ) ;
    public final void rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:28534:1: ( ( ( ruleFeatureCallID ) ) )
            // InternalXcore.g:28535:1: ( ( ruleFeatureCallID ) )
            {
            // InternalXcore.g:28535:1: ( ( ruleFeatureCallID ) )
            // InternalXcore.g:28536:1: ( ruleFeatureCallID )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberFeatureCallAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_0_2_0()); 
            }
            // InternalXcore.g:28537:1: ( ruleFeatureCallID )
            // InternalXcore.g:28538:1: ruleFeatureCallID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberFeatureCallAccess().getFeatureJvmIdentifiableElementFeatureCallIDParserRuleCall_1_0_0_0_2_0_1()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleFeatureCallID();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXMemberFeatureCallAccess().getFeatureJvmIdentifiableElementFeatureCallIDParserRuleCall_1_0_0_0_2_0_1()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXMemberFeatureCallAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_0_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2"


    // $ANTLR start "rule__XMemberFeatureCall__ValueAssignment_1_0_1"
    // InternalXcore.g:28549:1: rule__XMemberFeatureCall__ValueAssignment_1_0_1 : ( ruleXAssignment ) ;
    public final void rule__XMemberFeatureCall__ValueAssignment_1_0_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:28553:1: ( ( ruleXAssignment ) )
            // InternalXcore.g:28554:1: ( ruleXAssignment )
            {
            // InternalXcore.g:28554:1: ( ruleXAssignment )
            // InternalXcore.g:28555:1: ruleXAssignment
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberFeatureCallAccess().getValueXAssignmentParserRuleCall_1_0_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXAssignment();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXMemberFeatureCallAccess().getValueXAssignmentParserRuleCall_1_0_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMemberFeatureCall__ValueAssignment_1_0_1"


    // $ANTLR start "rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1"
    // InternalXcore.g:28564:1: rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1 : ( ( '?.' ) ) ;
    public final void rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:28568:1: ( ( ( '?.' ) ) )
            // InternalXcore.g:28569:1: ( ( '?.' ) )
            {
            // InternalXcore.g:28569:1: ( ( '?.' ) )
            // InternalXcore.g:28570:1: ( '?.' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberFeatureCallAccess().getNullSafeQuestionMarkFullStopKeyword_1_1_0_0_1_1_0()); 
            }
            // InternalXcore.g:28571:1: ( '?.' )
            // InternalXcore.g:28572:1: '?.'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberFeatureCallAccess().getNullSafeQuestionMarkFullStopKeyword_1_1_0_0_1_1_0()); 
            }
            match(input,116,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXMemberFeatureCallAccess().getNullSafeQuestionMarkFullStopKeyword_1_1_0_0_1_1_0()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXMemberFeatureCallAccess().getNullSafeQuestionMarkFullStopKeyword_1_1_0_0_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1"


    // $ANTLR start "rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2"
    // InternalXcore.g:28587:1: rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2 : ( ( '::' ) ) ;
    public final void rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:28591:1: ( ( ( '::' ) ) )
            // InternalXcore.g:28592:1: ( ( '::' ) )
            {
            // InternalXcore.g:28592:1: ( ( '::' ) )
            // InternalXcore.g:28593:1: ( '::' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_1_0_0_1_2_0()); 
            }
            // InternalXcore.g:28594:1: ( '::' )
            // InternalXcore.g:28595:1: '::'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_1_0_0_1_2_0()); 
            }
            match(input,115,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_1_0_0_1_2_0()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_1_0_0_1_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2"


    // $ANTLR start "rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1"
    // InternalXcore.g:28610:1: rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1 : ( ruleJvmArgumentTypeReference ) ;
    public final void rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:28614:1: ( ( ruleJvmArgumentTypeReference ) )
            // InternalXcore.g:28615:1: ( ruleJvmArgumentTypeReference )
            {
            // InternalXcore.g:28615:1: ( ruleJvmArgumentTypeReference )
            // InternalXcore.g:28616:1: ruleJvmArgumentTypeReference
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_1_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleJvmArgumentTypeReference();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1"


    // $ANTLR start "rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1"
    // InternalXcore.g:28625:1: rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1 : ( ruleJvmArgumentTypeReference ) ;
    public final void rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:28629:1: ( ( ruleJvmArgumentTypeReference ) )
            // InternalXcore.g:28630:1: ( ruleJvmArgumentTypeReference )
            {
            // InternalXcore.g:28630:1: ( ruleJvmArgumentTypeReference )
            // InternalXcore.g:28631:1: ruleJvmArgumentTypeReference
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_1_2_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleJvmArgumentTypeReference();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_1_2_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1"


    // $ANTLR start "rule__XMemberFeatureCall__FeatureAssignment_1_1_2"
    // InternalXcore.g:28640:1: rule__XMemberFeatureCall__FeatureAssignment_1_1_2 : ( ( ruleIdOrSuper ) ) ;
    public final void rule__XMemberFeatureCall__FeatureAssignment_1_1_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:28644:1: ( ( ( ruleIdOrSuper ) ) )
            // InternalXcore.g:28645:1: ( ( ruleIdOrSuper ) )
            {
            // InternalXcore.g:28645:1: ( ( ruleIdOrSuper ) )
            // InternalXcore.g:28646:1: ( ruleIdOrSuper )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberFeatureCallAccess().getFeatureJvmIdentifiableElementCrossReference_1_1_2_0()); 
            }
            // InternalXcore.g:28647:1: ( ruleIdOrSuper )
            // InternalXcore.g:28648:1: ruleIdOrSuper
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberFeatureCallAccess().getFeatureJvmIdentifiableElementIdOrSuperParserRuleCall_1_1_2_0_1()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleIdOrSuper();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXMemberFeatureCallAccess().getFeatureJvmIdentifiableElementIdOrSuperParserRuleCall_1_1_2_0_1()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXMemberFeatureCallAccess().getFeatureJvmIdentifiableElementCrossReference_1_1_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMemberFeatureCall__FeatureAssignment_1_1_2"


    // $ANTLR start "rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0"
    // InternalXcore.g:28659:1: rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0 : ( ( '(' ) ) ;
    public final void rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:28663:1: ( ( ( '(' ) ) )
            // InternalXcore.g:28664:1: ( ( '(' ) )
            {
            // InternalXcore.g:28664:1: ( ( '(' ) )
            // InternalXcore.g:28665:1: ( '(' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_1_1_3_0_0()); 
            }
            // InternalXcore.g:28666:1: ( '(' )
            // InternalXcore.g:28667:1: '('
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_1_1_3_0_0()); 
            }
            match(input,85,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXMemberFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_1_1_3_0_0()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXMemberFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_1_1_3_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0"


    // $ANTLR start "rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0"
    // InternalXcore.g:28682:1: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 : ( ruleXShortClosure ) ;
    public final void rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:28686:1: ( ( ruleXShortClosure ) )
            // InternalXcore.g:28687:1: ( ruleXShortClosure )
            {
            // InternalXcore.g:28687:1: ( ruleXShortClosure )
            // InternalXcore.g:28688:1: ruleXShortClosure
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXShortClosureParserRuleCall_1_1_3_1_0_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXShortClosure();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXShortClosureParserRuleCall_1_1_3_1_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0"


    // $ANTLR start "rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0"
    // InternalXcore.g:28697:1: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0 : ( ruleXExpression ) ;
    public final void rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:28701:1: ( ( ruleXExpression ) )
            // InternalXcore.g:28702:1: ( ruleXExpression )
            {
            // InternalXcore.g:28702:1: ( ruleXExpression )
            // InternalXcore.g:28703:1: ruleXExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXExpressionParserRuleCall_1_1_3_1_1_0_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXExpression();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXExpressionParserRuleCall_1_1_3_1_1_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0"


    // $ANTLR start "rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1"
    // InternalXcore.g:28712:1: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1 : ( ruleXExpression ) ;
    public final void rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:28716:1: ( ( ruleXExpression ) )
            // InternalXcore.g:28717:1: ( ruleXExpression )
            {
            // InternalXcore.g:28717:1: ( ruleXExpression )
            // InternalXcore.g:28718:1: ruleXExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXExpressionParserRuleCall_1_1_3_1_1_1_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXExpression();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXExpressionParserRuleCall_1_1_3_1_1_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1"


    // $ANTLR start "rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4"
    // InternalXcore.g:28727:1: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 : ( ruleXClosure ) ;
    public final void rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:28731:1: ( ( ruleXClosure ) )
            // InternalXcore.g:28732:1: ( ruleXClosure )
            {
            // InternalXcore.g:28732:1: ( ruleXClosure )
            // InternalXcore.g:28733:1: ruleXClosure
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXClosureParserRuleCall_1_1_4_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXClosure();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXClosureParserRuleCall_1_1_4_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4"


    // $ANTLR start "rule__XSetLiteral__ElementsAssignment_3_0"
    // InternalXcore.g:28742:1: rule__XSetLiteral__ElementsAssignment_3_0 : ( ruleXExpression ) ;
    public final void rule__XSetLiteral__ElementsAssignment_3_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:28746:1: ( ( ruleXExpression ) )
            // InternalXcore.g:28747:1: ( ruleXExpression )
            {
            // InternalXcore.g:28747:1: ( ruleXExpression )
            // InternalXcore.g:28748:1: ruleXExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSetLiteralAccess().getElementsXExpressionParserRuleCall_3_0_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXExpression();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXSetLiteralAccess().getElementsXExpressionParserRuleCall_3_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XSetLiteral__ElementsAssignment_3_0"


    // $ANTLR start "rule__XSetLiteral__ElementsAssignment_3_1_1"
    // InternalXcore.g:28757:1: rule__XSetLiteral__ElementsAssignment_3_1_1 : ( ruleXExpression ) ;
    public final void rule__XSetLiteral__ElementsAssignment_3_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:28761:1: ( ( ruleXExpression ) )
            // InternalXcore.g:28762:1: ( ruleXExpression )
            {
            // InternalXcore.g:28762:1: ( ruleXExpression )
            // InternalXcore.g:28763:1: ruleXExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSetLiteralAccess().getElementsXExpressionParserRuleCall_3_1_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXExpression();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXSetLiteralAccess().getElementsXExpressionParserRuleCall_3_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XSetLiteral__ElementsAssignment_3_1_1"


    // $ANTLR start "rule__XListLiteral__ElementsAssignment_3_0"
    // InternalXcore.g:28772:1: rule__XListLiteral__ElementsAssignment_3_0 : ( ruleXExpression ) ;
    public final void rule__XListLiteral__ElementsAssignment_3_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:28776:1: ( ( ruleXExpression ) )
            // InternalXcore.g:28777:1: ( ruleXExpression )
            {
            // InternalXcore.g:28777:1: ( ruleXExpression )
            // InternalXcore.g:28778:1: ruleXExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXListLiteralAccess().getElementsXExpressionParserRuleCall_3_0_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXExpression();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXListLiteralAccess().getElementsXExpressionParserRuleCall_3_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XListLiteral__ElementsAssignment_3_0"


    // $ANTLR start "rule__XListLiteral__ElementsAssignment_3_1_1"
    // InternalXcore.g:28787:1: rule__XListLiteral__ElementsAssignment_3_1_1 : ( ruleXExpression ) ;
    public final void rule__XListLiteral__ElementsAssignment_3_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:28791:1: ( ( ruleXExpression ) )
            // InternalXcore.g:28792:1: ( ruleXExpression )
            {
            // InternalXcore.g:28792:1: ( ruleXExpression )
            // InternalXcore.g:28793:1: ruleXExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXListLiteralAccess().getElementsXExpressionParserRuleCall_3_1_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXExpression();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXListLiteralAccess().getElementsXExpressionParserRuleCall_3_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XListLiteral__ElementsAssignment_3_1_1"


    // $ANTLR start "rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0"
    // InternalXcore.g:28802:1: rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0 : ( ruleJvmFormalParameter ) ;
    public final void rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:28806:1: ( ( ruleJvmFormalParameter ) )
            // InternalXcore.g:28807:1: ( ruleJvmFormalParameter )
            {
            // InternalXcore.g:28807:1: ( ruleJvmFormalParameter )
            // InternalXcore.g:28808:1: ruleJvmFormalParameter
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_1_0_0_0_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleJvmFormalParameter();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_1_0_0_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0"


    // $ANTLR start "rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1"
    // InternalXcore.g:28817:1: rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1 : ( ruleJvmFormalParameter ) ;
    public final void rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:28821:1: ( ( ruleJvmFormalParameter ) )
            // InternalXcore.g:28822:1: ( ruleJvmFormalParameter )
            {
            // InternalXcore.g:28822:1: ( ruleJvmFormalParameter )
            // InternalXcore.g:28823:1: ruleJvmFormalParameter
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_1_0_0_1_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleJvmFormalParameter();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_1_0_0_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1"


    // $ANTLR start "rule__XClosure__ExplicitSyntaxAssignment_1_0_1"
    // InternalXcore.g:28832:1: rule__XClosure__ExplicitSyntaxAssignment_1_0_1 : ( ( '|' ) ) ;
    public final void rule__XClosure__ExplicitSyntaxAssignment_1_0_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:28836:1: ( ( ( '|' ) ) )
            // InternalXcore.g:28837:1: ( ( '|' ) )
            {
            // InternalXcore.g:28837:1: ( ( '|' ) )
            // InternalXcore.g:28838:1: ( '|' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClosureAccess().getExplicitSyntaxVerticalLineKeyword_1_0_1_0()); 
            }
            // InternalXcore.g:28839:1: ( '|' )
            // InternalXcore.g:28840:1: '|'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClosureAccess().getExplicitSyntaxVerticalLineKeyword_1_0_1_0()); 
            }
            match(input,117,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXClosureAccess().getExplicitSyntaxVerticalLineKeyword_1_0_1_0()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXClosureAccess().getExplicitSyntaxVerticalLineKeyword_1_0_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XClosure__ExplicitSyntaxAssignment_1_0_1"


    // $ANTLR start "rule__XClosure__ExpressionAssignment_2"
    // InternalXcore.g:28855:1: rule__XClosure__ExpressionAssignment_2 : ( ruleXExpressionInClosure ) ;
    public final void rule__XClosure__ExpressionAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:28859:1: ( ( ruleXExpressionInClosure ) )
            // InternalXcore.g:28860:1: ( ruleXExpressionInClosure )
            {
            // InternalXcore.g:28860:1: ( ruleXExpressionInClosure )
            // InternalXcore.g:28861:1: ruleXExpressionInClosure
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXClosureAccess().getExpressionXExpressionInClosureParserRuleCall_2_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXExpressionInClosure();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXClosureAccess().getExpressionXExpressionInClosureParserRuleCall_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XClosure__ExpressionAssignment_2"


    // $ANTLR start "rule__XExpressionInClosure__ExpressionsAssignment_1_0"
    // InternalXcore.g:28870:1: rule__XExpressionInClosure__ExpressionsAssignment_1_0 : ( ruleXExpressionOrVarDeclaration ) ;
    public final void rule__XExpressionInClosure__ExpressionsAssignment_1_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:28874:1: ( ( ruleXExpressionOrVarDeclaration ) )
            // InternalXcore.g:28875:1: ( ruleXExpressionOrVarDeclaration )
            {
            // InternalXcore.g:28875:1: ( ruleXExpressionOrVarDeclaration )
            // InternalXcore.g:28876:1: ruleXExpressionOrVarDeclaration
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXExpressionInClosureAccess().getExpressionsXExpressionOrVarDeclarationParserRuleCall_1_0_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXExpressionOrVarDeclaration();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXExpressionInClosureAccess().getExpressionsXExpressionOrVarDeclarationParserRuleCall_1_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XExpressionInClosure__ExpressionsAssignment_1_0"


    // $ANTLR start "rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0"
    // InternalXcore.g:28885:1: rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0 : ( ruleJvmFormalParameter ) ;
    public final void rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:28889:1: ( ( ruleJvmFormalParameter ) )
            // InternalXcore.g:28890:1: ( ruleJvmFormalParameter )
            {
            // InternalXcore.g:28890:1: ( ruleJvmFormalParameter )
            // InternalXcore.g:28891:1: ruleJvmFormalParameter
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_0_0_1_0_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleJvmFormalParameter();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_0_0_1_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0"


    // $ANTLR start "rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1"
    // InternalXcore.g:28900:1: rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1 : ( ruleJvmFormalParameter ) ;
    public final void rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:28904:1: ( ( ruleJvmFormalParameter ) )
            // InternalXcore.g:28905:1: ( ruleJvmFormalParameter )
            {
            // InternalXcore.g:28905:1: ( ruleJvmFormalParameter )
            // InternalXcore.g:28906:1: ruleJvmFormalParameter
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_0_0_1_1_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleJvmFormalParameter();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_0_0_1_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1"


    // $ANTLR start "rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2"
    // InternalXcore.g:28915:1: rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2 : ( ( '|' ) ) ;
    public final void rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:28919:1: ( ( ( '|' ) ) )
            // InternalXcore.g:28920:1: ( ( '|' ) )
            {
            // InternalXcore.g:28920:1: ( ( '|' ) )
            // InternalXcore.g:28921:1: ( '|' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXShortClosureAccess().getExplicitSyntaxVerticalLineKeyword_0_0_2_0()); 
            }
            // InternalXcore.g:28922:1: ( '|' )
            // InternalXcore.g:28923:1: '|'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXShortClosureAccess().getExplicitSyntaxVerticalLineKeyword_0_0_2_0()); 
            }
            match(input,117,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXShortClosureAccess().getExplicitSyntaxVerticalLineKeyword_0_0_2_0()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXShortClosureAccess().getExplicitSyntaxVerticalLineKeyword_0_0_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2"


    // $ANTLR start "rule__XShortClosure__ExpressionAssignment_1"
    // InternalXcore.g:28938:1: rule__XShortClosure__ExpressionAssignment_1 : ( ruleXExpression ) ;
    public final void rule__XShortClosure__ExpressionAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:28942:1: ( ( ruleXExpression ) )
            // InternalXcore.g:28943:1: ( ruleXExpression )
            {
            // InternalXcore.g:28943:1: ( ruleXExpression )
            // InternalXcore.g:28944:1: ruleXExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXShortClosureAccess().getExpressionXExpressionParserRuleCall_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXExpression();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXShortClosureAccess().getExpressionXExpressionParserRuleCall_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XShortClosure__ExpressionAssignment_1"


    // $ANTLR start "rule__XIfExpression__IfAssignment_3"
    // InternalXcore.g:28953:1: rule__XIfExpression__IfAssignment_3 : ( ruleXExpression ) ;
    public final void rule__XIfExpression__IfAssignment_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:28957:1: ( ( ruleXExpression ) )
            // InternalXcore.g:28958:1: ( ruleXExpression )
            {
            // InternalXcore.g:28958:1: ( ruleXExpression )
            // InternalXcore.g:28959:1: ruleXExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXIfExpressionAccess().getIfXExpressionParserRuleCall_3_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXExpression();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXIfExpressionAccess().getIfXExpressionParserRuleCall_3_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XIfExpression__IfAssignment_3"


    // $ANTLR start "rule__XIfExpression__ThenAssignment_5"
    // InternalXcore.g:28968:1: rule__XIfExpression__ThenAssignment_5 : ( ruleXExpression ) ;
    public final void rule__XIfExpression__ThenAssignment_5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:28972:1: ( ( ruleXExpression ) )
            // InternalXcore.g:28973:1: ( ruleXExpression )
            {
            // InternalXcore.g:28973:1: ( ruleXExpression )
            // InternalXcore.g:28974:1: ruleXExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXIfExpressionAccess().getThenXExpressionParserRuleCall_5_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXExpression();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXIfExpressionAccess().getThenXExpressionParserRuleCall_5_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XIfExpression__ThenAssignment_5"


    // $ANTLR start "rule__XIfExpression__ElseAssignment_6_1"
    // InternalXcore.g:28983:1: rule__XIfExpression__ElseAssignment_6_1 : ( ruleXExpression ) ;
    public final void rule__XIfExpression__ElseAssignment_6_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:28987:1: ( ( ruleXExpression ) )
            // InternalXcore.g:28988:1: ( ruleXExpression )
            {
            // InternalXcore.g:28988:1: ( ruleXExpression )
            // InternalXcore.g:28989:1: ruleXExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXIfExpressionAccess().getElseXExpressionParserRuleCall_6_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXExpression();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXIfExpressionAccess().getElseXExpressionParserRuleCall_6_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XIfExpression__ElseAssignment_6_1"


    // $ANTLR start "rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1"
    // InternalXcore.g:28998:1: rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1 : ( ruleJvmFormalParameter ) ;
    public final void rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:29002:1: ( ( ruleJvmFormalParameter ) )
            // InternalXcore.g:29003:1: ( ruleJvmFormalParameter )
            {
            // InternalXcore.g:29003:1: ( ruleJvmFormalParameter )
            // InternalXcore.g:29004:1: ruleJvmFormalParameter
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSwitchExpressionAccess().getDeclaredParamJvmFormalParameterParserRuleCall_2_0_0_0_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleJvmFormalParameter();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXSwitchExpressionAccess().getDeclaredParamJvmFormalParameterParserRuleCall_2_0_0_0_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1"


    // $ANTLR start "rule__XSwitchExpression__SwitchAssignment_2_0_1"
    // InternalXcore.g:29013:1: rule__XSwitchExpression__SwitchAssignment_2_0_1 : ( ruleXExpression ) ;
    public final void rule__XSwitchExpression__SwitchAssignment_2_0_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:29017:1: ( ( ruleXExpression ) )
            // InternalXcore.g:29018:1: ( ruleXExpression )
            {
            // InternalXcore.g:29018:1: ( ruleXExpression )
            // InternalXcore.g:29019:1: ruleXExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSwitchExpressionAccess().getSwitchXExpressionParserRuleCall_2_0_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXExpression();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXSwitchExpressionAccess().getSwitchXExpressionParserRuleCall_2_0_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XSwitchExpression__SwitchAssignment_2_0_1"


    // $ANTLR start "rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0"
    // InternalXcore.g:29028:1: rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0 : ( ruleJvmFormalParameter ) ;
    public final void rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:29032:1: ( ( ruleJvmFormalParameter ) )
            // InternalXcore.g:29033:1: ( ruleJvmFormalParameter )
            {
            // InternalXcore.g:29033:1: ( ruleJvmFormalParameter )
            // InternalXcore.g:29034:1: ruleJvmFormalParameter
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSwitchExpressionAccess().getDeclaredParamJvmFormalParameterParserRuleCall_2_1_0_0_0_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleJvmFormalParameter();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXSwitchExpressionAccess().getDeclaredParamJvmFormalParameterParserRuleCall_2_1_0_0_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0"


    // $ANTLR start "rule__XSwitchExpression__SwitchAssignment_2_1_1"
    // InternalXcore.g:29043:1: rule__XSwitchExpression__SwitchAssignment_2_1_1 : ( ruleXExpression ) ;
    public final void rule__XSwitchExpression__SwitchAssignment_2_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:29047:1: ( ( ruleXExpression ) )
            // InternalXcore.g:29048:1: ( ruleXExpression )
            {
            // InternalXcore.g:29048:1: ( ruleXExpression )
            // InternalXcore.g:29049:1: ruleXExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSwitchExpressionAccess().getSwitchXExpressionParserRuleCall_2_1_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXExpression();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXSwitchExpressionAccess().getSwitchXExpressionParserRuleCall_2_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XSwitchExpression__SwitchAssignment_2_1_1"


    // $ANTLR start "rule__XSwitchExpression__CasesAssignment_4"
    // InternalXcore.g:29058:1: rule__XSwitchExpression__CasesAssignment_4 : ( ruleXCasePart ) ;
    public final void rule__XSwitchExpression__CasesAssignment_4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:29062:1: ( ( ruleXCasePart ) )
            // InternalXcore.g:29063:1: ( ruleXCasePart )
            {
            // InternalXcore.g:29063:1: ( ruleXCasePart )
            // InternalXcore.g:29064:1: ruleXCasePart
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSwitchExpressionAccess().getCasesXCasePartParserRuleCall_4_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXCasePart();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXSwitchExpressionAccess().getCasesXCasePartParserRuleCall_4_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XSwitchExpression__CasesAssignment_4"


    // $ANTLR start "rule__XSwitchExpression__DefaultAssignment_5_2"
    // InternalXcore.g:29073:1: rule__XSwitchExpression__DefaultAssignment_5_2 : ( ruleXExpression ) ;
    public final void rule__XSwitchExpression__DefaultAssignment_5_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:29077:1: ( ( ruleXExpression ) )
            // InternalXcore.g:29078:1: ( ruleXExpression )
            {
            // InternalXcore.g:29078:1: ( ruleXExpression )
            // InternalXcore.g:29079:1: ruleXExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSwitchExpressionAccess().getDefaultXExpressionParserRuleCall_5_2_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXExpression();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXSwitchExpressionAccess().getDefaultXExpressionParserRuleCall_5_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XSwitchExpression__DefaultAssignment_5_2"


    // $ANTLR start "rule__XCasePart__TypeGuardAssignment_1"
    // InternalXcore.g:29088:1: rule__XCasePart__TypeGuardAssignment_1 : ( ruleJvmTypeReference ) ;
    public final void rule__XCasePart__TypeGuardAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:29092:1: ( ( ruleJvmTypeReference ) )
            // InternalXcore.g:29093:1: ( ruleJvmTypeReference )
            {
            // InternalXcore.g:29093:1: ( ruleJvmTypeReference )
            // InternalXcore.g:29094:1: ruleJvmTypeReference
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXCasePartAccess().getTypeGuardJvmTypeReferenceParserRuleCall_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleJvmTypeReference();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXCasePartAccess().getTypeGuardJvmTypeReferenceParserRuleCall_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XCasePart__TypeGuardAssignment_1"


    // $ANTLR start "rule__XCasePart__CaseAssignment_2_1"
    // InternalXcore.g:29103:1: rule__XCasePart__CaseAssignment_2_1 : ( ruleXExpression ) ;
    public final void rule__XCasePart__CaseAssignment_2_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:29107:1: ( ( ruleXExpression ) )
            // InternalXcore.g:29108:1: ( ruleXExpression )
            {
            // InternalXcore.g:29108:1: ( ruleXExpression )
            // InternalXcore.g:29109:1: ruleXExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXCasePartAccess().getCaseXExpressionParserRuleCall_2_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXExpression();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXCasePartAccess().getCaseXExpressionParserRuleCall_2_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XCasePart__CaseAssignment_2_1"


    // $ANTLR start "rule__XCasePart__ThenAssignment_3_0_1"
    // InternalXcore.g:29118:1: rule__XCasePart__ThenAssignment_3_0_1 : ( ruleXExpression ) ;
    public final void rule__XCasePart__ThenAssignment_3_0_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:29122:1: ( ( ruleXExpression ) )
            // InternalXcore.g:29123:1: ( ruleXExpression )
            {
            // InternalXcore.g:29123:1: ( ruleXExpression )
            // InternalXcore.g:29124:1: ruleXExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXCasePartAccess().getThenXExpressionParserRuleCall_3_0_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXExpression();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXCasePartAccess().getThenXExpressionParserRuleCall_3_0_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XCasePart__ThenAssignment_3_0_1"


    // $ANTLR start "rule__XCasePart__FallThroughAssignment_3_1"
    // InternalXcore.g:29133:1: rule__XCasePart__FallThroughAssignment_3_1 : ( ( ',' ) ) ;
    public final void rule__XCasePart__FallThroughAssignment_3_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:29137:1: ( ( ( ',' ) ) )
            // InternalXcore.g:29138:1: ( ( ',' ) )
            {
            // InternalXcore.g:29138:1: ( ( ',' ) )
            // InternalXcore.g:29139:1: ( ',' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXCasePartAccess().getFallThroughCommaKeyword_3_1_0()); 
            }
            // InternalXcore.g:29140:1: ( ',' )
            // InternalXcore.g:29141:1: ','
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXCasePartAccess().getFallThroughCommaKeyword_3_1_0()); 
            }
            match(input,87,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXCasePartAccess().getFallThroughCommaKeyword_3_1_0()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXCasePartAccess().getFallThroughCommaKeyword_3_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XCasePart__FallThroughAssignment_3_1"


    // $ANTLR start "rule__XForLoopExpression__DeclaredParamAssignment_0_0_3"
    // InternalXcore.g:29156:1: rule__XForLoopExpression__DeclaredParamAssignment_0_0_3 : ( ruleJvmFormalParameter ) ;
    public final void rule__XForLoopExpression__DeclaredParamAssignment_0_0_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:29160:1: ( ( ruleJvmFormalParameter ) )
            // InternalXcore.g:29161:1: ( ruleJvmFormalParameter )
            {
            // InternalXcore.g:29161:1: ( ruleJvmFormalParameter )
            // InternalXcore.g:29162:1: ruleJvmFormalParameter
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXForLoopExpressionAccess().getDeclaredParamJvmFormalParameterParserRuleCall_0_0_3_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleJvmFormalParameter();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXForLoopExpressionAccess().getDeclaredParamJvmFormalParameterParserRuleCall_0_0_3_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XForLoopExpression__DeclaredParamAssignment_0_0_3"


    // $ANTLR start "rule__XForLoopExpression__ForExpressionAssignment_1"
    // InternalXcore.g:29171:1: rule__XForLoopExpression__ForExpressionAssignment_1 : ( ruleXExpression ) ;
    public final void rule__XForLoopExpression__ForExpressionAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:29175:1: ( ( ruleXExpression ) )
            // InternalXcore.g:29176:1: ( ruleXExpression )
            {
            // InternalXcore.g:29176:1: ( ruleXExpression )
            // InternalXcore.g:29177:1: ruleXExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXForLoopExpressionAccess().getForExpressionXExpressionParserRuleCall_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXExpression();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXForLoopExpressionAccess().getForExpressionXExpressionParserRuleCall_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XForLoopExpression__ForExpressionAssignment_1"


    // $ANTLR start "rule__XForLoopExpression__EachExpressionAssignment_3"
    // InternalXcore.g:29186:1: rule__XForLoopExpression__EachExpressionAssignment_3 : ( ruleXExpression ) ;
    public final void rule__XForLoopExpression__EachExpressionAssignment_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:29190:1: ( ( ruleXExpression ) )
            // InternalXcore.g:29191:1: ( ruleXExpression )
            {
            // InternalXcore.g:29191:1: ( ruleXExpression )
            // InternalXcore.g:29192:1: ruleXExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXForLoopExpressionAccess().getEachExpressionXExpressionParserRuleCall_3_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXExpression();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXForLoopExpressionAccess().getEachExpressionXExpressionParserRuleCall_3_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XForLoopExpression__EachExpressionAssignment_3"


    // $ANTLR start "rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0"
    // InternalXcore.g:29201:1: rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0 : ( ruleXExpressionOrVarDeclaration ) ;
    public final void rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:29205:1: ( ( ruleXExpressionOrVarDeclaration ) )
            // InternalXcore.g:29206:1: ( ruleXExpressionOrVarDeclaration )
            {
            // InternalXcore.g:29206:1: ( ruleXExpressionOrVarDeclaration )
            // InternalXcore.g:29207:1: ruleXExpressionOrVarDeclaration
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXBasicForLoopExpressionAccess().getInitExpressionsXExpressionOrVarDeclarationParserRuleCall_3_0_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXExpressionOrVarDeclaration();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXBasicForLoopExpressionAccess().getInitExpressionsXExpressionOrVarDeclarationParserRuleCall_3_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0"


    // $ANTLR start "rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1"
    // InternalXcore.g:29216:1: rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1 : ( ruleXExpressionOrVarDeclaration ) ;
    public final void rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:29220:1: ( ( ruleXExpressionOrVarDeclaration ) )
            // InternalXcore.g:29221:1: ( ruleXExpressionOrVarDeclaration )
            {
            // InternalXcore.g:29221:1: ( ruleXExpressionOrVarDeclaration )
            // InternalXcore.g:29222:1: ruleXExpressionOrVarDeclaration
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXBasicForLoopExpressionAccess().getInitExpressionsXExpressionOrVarDeclarationParserRuleCall_3_1_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXExpressionOrVarDeclaration();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXBasicForLoopExpressionAccess().getInitExpressionsXExpressionOrVarDeclarationParserRuleCall_3_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1"


    // $ANTLR start "rule__XBasicForLoopExpression__ExpressionAssignment_5"
    // InternalXcore.g:29231:1: rule__XBasicForLoopExpression__ExpressionAssignment_5 : ( ruleXExpression ) ;
    public final void rule__XBasicForLoopExpression__ExpressionAssignment_5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:29235:1: ( ( ruleXExpression ) )
            // InternalXcore.g:29236:1: ( ruleXExpression )
            {
            // InternalXcore.g:29236:1: ( ruleXExpression )
            // InternalXcore.g:29237:1: ruleXExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXBasicForLoopExpressionAccess().getExpressionXExpressionParserRuleCall_5_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXExpression();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXBasicForLoopExpressionAccess().getExpressionXExpressionParserRuleCall_5_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XBasicForLoopExpression__ExpressionAssignment_5"


    // $ANTLR start "rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0"
    // InternalXcore.g:29246:1: rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0 : ( ruleXExpression ) ;
    public final void rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:29250:1: ( ( ruleXExpression ) )
            // InternalXcore.g:29251:1: ( ruleXExpression )
            {
            // InternalXcore.g:29251:1: ( ruleXExpression )
            // InternalXcore.g:29252:1: ruleXExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXBasicForLoopExpressionAccess().getUpdateExpressionsXExpressionParserRuleCall_7_0_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXExpression();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXBasicForLoopExpressionAccess().getUpdateExpressionsXExpressionParserRuleCall_7_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0"


    // $ANTLR start "rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1"
    // InternalXcore.g:29261:1: rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1 : ( ruleXExpression ) ;
    public final void rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:29265:1: ( ( ruleXExpression ) )
            // InternalXcore.g:29266:1: ( ruleXExpression )
            {
            // InternalXcore.g:29266:1: ( ruleXExpression )
            // InternalXcore.g:29267:1: ruleXExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXBasicForLoopExpressionAccess().getUpdateExpressionsXExpressionParserRuleCall_7_1_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXExpression();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXBasicForLoopExpressionAccess().getUpdateExpressionsXExpressionParserRuleCall_7_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1"


    // $ANTLR start "rule__XBasicForLoopExpression__EachExpressionAssignment_9"
    // InternalXcore.g:29276:1: rule__XBasicForLoopExpression__EachExpressionAssignment_9 : ( ruleXExpression ) ;
    public final void rule__XBasicForLoopExpression__EachExpressionAssignment_9() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:29280:1: ( ( ruleXExpression ) )
            // InternalXcore.g:29281:1: ( ruleXExpression )
            {
            // InternalXcore.g:29281:1: ( ruleXExpression )
            // InternalXcore.g:29282:1: ruleXExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXBasicForLoopExpressionAccess().getEachExpressionXExpressionParserRuleCall_9_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXExpression();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXBasicForLoopExpressionAccess().getEachExpressionXExpressionParserRuleCall_9_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XBasicForLoopExpression__EachExpressionAssignment_9"


    // $ANTLR start "rule__XWhileExpression__PredicateAssignment_3"
    // InternalXcore.g:29291:1: rule__XWhileExpression__PredicateAssignment_3 : ( ruleXExpression ) ;
    public final void rule__XWhileExpression__PredicateAssignment_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:29295:1: ( ( ruleXExpression ) )
            // InternalXcore.g:29296:1: ( ruleXExpression )
            {
            // InternalXcore.g:29296:1: ( ruleXExpression )
            // InternalXcore.g:29297:1: ruleXExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXWhileExpressionAccess().getPredicateXExpressionParserRuleCall_3_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXExpression();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXWhileExpressionAccess().getPredicateXExpressionParserRuleCall_3_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XWhileExpression__PredicateAssignment_3"


    // $ANTLR start "rule__XWhileExpression__BodyAssignment_5"
    // InternalXcore.g:29306:1: rule__XWhileExpression__BodyAssignment_5 : ( ruleXExpression ) ;
    public final void rule__XWhileExpression__BodyAssignment_5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:29310:1: ( ( ruleXExpression ) )
            // InternalXcore.g:29311:1: ( ruleXExpression )
            {
            // InternalXcore.g:29311:1: ( ruleXExpression )
            // InternalXcore.g:29312:1: ruleXExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXWhileExpressionAccess().getBodyXExpressionParserRuleCall_5_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXExpression();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXWhileExpressionAccess().getBodyXExpressionParserRuleCall_5_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XWhileExpression__BodyAssignment_5"


    // $ANTLR start "rule__XDoWhileExpression__BodyAssignment_2"
    // InternalXcore.g:29321:1: rule__XDoWhileExpression__BodyAssignment_2 : ( ruleXExpression ) ;
    public final void rule__XDoWhileExpression__BodyAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:29325:1: ( ( ruleXExpression ) )
            // InternalXcore.g:29326:1: ( ruleXExpression )
            {
            // InternalXcore.g:29326:1: ( ruleXExpression )
            // InternalXcore.g:29327:1: ruleXExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXDoWhileExpressionAccess().getBodyXExpressionParserRuleCall_2_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXExpression();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXDoWhileExpressionAccess().getBodyXExpressionParserRuleCall_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XDoWhileExpression__BodyAssignment_2"


    // $ANTLR start "rule__XDoWhileExpression__PredicateAssignment_5"
    // InternalXcore.g:29336:1: rule__XDoWhileExpression__PredicateAssignment_5 : ( ruleXExpression ) ;
    public final void rule__XDoWhileExpression__PredicateAssignment_5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:29340:1: ( ( ruleXExpression ) )
            // InternalXcore.g:29341:1: ( ruleXExpression )
            {
            // InternalXcore.g:29341:1: ( ruleXExpression )
            // InternalXcore.g:29342:1: ruleXExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXDoWhileExpressionAccess().getPredicateXExpressionParserRuleCall_5_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXExpression();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXDoWhileExpressionAccess().getPredicateXExpressionParserRuleCall_5_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XDoWhileExpression__PredicateAssignment_5"


    // $ANTLR start "rule__XVariableDeclaration__WriteableAssignment_1_0"
    // InternalXcore.g:29351:1: rule__XVariableDeclaration__WriteableAssignment_1_0 : ( ( 'var' ) ) ;
    public final void rule__XVariableDeclaration__WriteableAssignment_1_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:29355:1: ( ( ( 'var' ) ) )
            // InternalXcore.g:29356:1: ( ( 'var' ) )
            {
            // InternalXcore.g:29356:1: ( ( 'var' ) )
            // InternalXcore.g:29357:1: ( 'var' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXVariableDeclarationAccess().getWriteableVarKeyword_1_0_0()); 
            }
            // InternalXcore.g:29358:1: ( 'var' )
            // InternalXcore.g:29359:1: 'var'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXVariableDeclarationAccess().getWriteableVarKeyword_1_0_0()); 
            }
            match(input,118,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXVariableDeclarationAccess().getWriteableVarKeyword_1_0_0()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXVariableDeclarationAccess().getWriteableVarKeyword_1_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XVariableDeclaration__WriteableAssignment_1_0"


    // $ANTLR start "rule__XVariableDeclaration__TypeAssignment_2_0_0_0"
    // InternalXcore.g:29374:1: rule__XVariableDeclaration__TypeAssignment_2_0_0_0 : ( ruleJvmTypeReference ) ;
    public final void rule__XVariableDeclaration__TypeAssignment_2_0_0_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:29378:1: ( ( ruleJvmTypeReference ) )
            // InternalXcore.g:29379:1: ( ruleJvmTypeReference )
            {
            // InternalXcore.g:29379:1: ( ruleJvmTypeReference )
            // InternalXcore.g:29380:1: ruleJvmTypeReference
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXVariableDeclarationAccess().getTypeJvmTypeReferenceParserRuleCall_2_0_0_0_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleJvmTypeReference();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXVariableDeclarationAccess().getTypeJvmTypeReferenceParserRuleCall_2_0_0_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XVariableDeclaration__TypeAssignment_2_0_0_0"


    // $ANTLR start "rule__XVariableDeclaration__NameAssignment_2_0_0_1"
    // InternalXcore.g:29389:1: rule__XVariableDeclaration__NameAssignment_2_0_0_1 : ( ruleValidID ) ;
    public final void rule__XVariableDeclaration__NameAssignment_2_0_0_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:29393:1: ( ( ruleValidID ) )
            // InternalXcore.g:29394:1: ( ruleValidID )
            {
            // InternalXcore.g:29394:1: ( ruleValidID )
            // InternalXcore.g:29395:1: ruleValidID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXVariableDeclarationAccess().getNameValidIDParserRuleCall_2_0_0_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleValidID();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXVariableDeclarationAccess().getNameValidIDParserRuleCall_2_0_0_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XVariableDeclaration__NameAssignment_2_0_0_1"


    // $ANTLR start "rule__XVariableDeclaration__NameAssignment_2_1"
    // InternalXcore.g:29404:1: rule__XVariableDeclaration__NameAssignment_2_1 : ( ruleValidID ) ;
    public final void rule__XVariableDeclaration__NameAssignment_2_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:29408:1: ( ( ruleValidID ) )
            // InternalXcore.g:29409:1: ( ruleValidID )
            {
            // InternalXcore.g:29409:1: ( ruleValidID )
            // InternalXcore.g:29410:1: ruleValidID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXVariableDeclarationAccess().getNameValidIDParserRuleCall_2_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleValidID();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXVariableDeclarationAccess().getNameValidIDParserRuleCall_2_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XVariableDeclaration__NameAssignment_2_1"


    // $ANTLR start "rule__XVariableDeclaration__RightAssignment_3_1"
    // InternalXcore.g:29419:1: rule__XVariableDeclaration__RightAssignment_3_1 : ( ruleXExpression ) ;
    public final void rule__XVariableDeclaration__RightAssignment_3_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:29423:1: ( ( ruleXExpression ) )
            // InternalXcore.g:29424:1: ( ruleXExpression )
            {
            // InternalXcore.g:29424:1: ( ruleXExpression )
            // InternalXcore.g:29425:1: ruleXExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXVariableDeclarationAccess().getRightXExpressionParserRuleCall_3_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXExpression();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXVariableDeclarationAccess().getRightXExpressionParserRuleCall_3_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XVariableDeclaration__RightAssignment_3_1"


    // $ANTLR start "rule__JvmFormalParameter__ParameterTypeAssignment_0"
    // InternalXcore.g:29434:1: rule__JvmFormalParameter__ParameterTypeAssignment_0 : ( ruleJvmTypeReference ) ;
    public final void rule__JvmFormalParameter__ParameterTypeAssignment_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:29438:1: ( ( ruleJvmTypeReference ) )
            // InternalXcore.g:29439:1: ( ruleJvmTypeReference )
            {
            // InternalXcore.g:29439:1: ( ruleJvmTypeReference )
            // InternalXcore.g:29440:1: ruleJvmTypeReference
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmFormalParameterAccess().getParameterTypeJvmTypeReferenceParserRuleCall_0_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleJvmTypeReference();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getJvmFormalParameterAccess().getParameterTypeJvmTypeReferenceParserRuleCall_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmFormalParameter__ParameterTypeAssignment_0"


    // $ANTLR start "rule__JvmFormalParameter__NameAssignment_1"
    // InternalXcore.g:29449:1: rule__JvmFormalParameter__NameAssignment_1 : ( ruleValidID ) ;
    public final void rule__JvmFormalParameter__NameAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:29453:1: ( ( ruleValidID ) )
            // InternalXcore.g:29454:1: ( ruleValidID )
            {
            // InternalXcore.g:29454:1: ( ruleValidID )
            // InternalXcore.g:29455:1: ruleValidID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmFormalParameterAccess().getNameValidIDParserRuleCall_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleValidID();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getJvmFormalParameterAccess().getNameValidIDParserRuleCall_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmFormalParameter__NameAssignment_1"


    // $ANTLR start "rule__FullJvmFormalParameter__ParameterTypeAssignment_0"
    // InternalXcore.g:29464:1: rule__FullJvmFormalParameter__ParameterTypeAssignment_0 : ( ruleJvmTypeReference ) ;
    public final void rule__FullJvmFormalParameter__ParameterTypeAssignment_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:29468:1: ( ( ruleJvmTypeReference ) )
            // InternalXcore.g:29469:1: ( ruleJvmTypeReference )
            {
            // InternalXcore.g:29469:1: ( ruleJvmTypeReference )
            // InternalXcore.g:29470:1: ruleJvmTypeReference
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getFullJvmFormalParameterAccess().getParameterTypeJvmTypeReferenceParserRuleCall_0_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleJvmTypeReference();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getFullJvmFormalParameterAccess().getParameterTypeJvmTypeReferenceParserRuleCall_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__FullJvmFormalParameter__ParameterTypeAssignment_0"


    // $ANTLR start "rule__FullJvmFormalParameter__NameAssignment_1"
    // InternalXcore.g:29479:1: rule__FullJvmFormalParameter__NameAssignment_1 : ( ruleValidID ) ;
    public final void rule__FullJvmFormalParameter__NameAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:29483:1: ( ( ruleValidID ) )
            // InternalXcore.g:29484:1: ( ruleValidID )
            {
            // InternalXcore.g:29484:1: ( ruleValidID )
            // InternalXcore.g:29485:1: ruleValidID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getFullJvmFormalParameterAccess().getNameValidIDParserRuleCall_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleValidID();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getFullJvmFormalParameterAccess().getNameValidIDParserRuleCall_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__FullJvmFormalParameter__NameAssignment_1"


    // $ANTLR start "rule__XFeatureCall__TypeArgumentsAssignment_1_1"
    // InternalXcore.g:29494:1: rule__XFeatureCall__TypeArgumentsAssignment_1_1 : ( ruleJvmArgumentTypeReference ) ;
    public final void rule__XFeatureCall__TypeArgumentsAssignment_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:29498:1: ( ( ruleJvmArgumentTypeReference ) )
            // InternalXcore.g:29499:1: ( ruleJvmArgumentTypeReference )
            {
            // InternalXcore.g:29499:1: ( ruleJvmArgumentTypeReference )
            // InternalXcore.g:29500:1: ruleJvmArgumentTypeReference
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleJvmArgumentTypeReference();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XFeatureCall__TypeArgumentsAssignment_1_1"


    // $ANTLR start "rule__XFeatureCall__TypeArgumentsAssignment_1_2_1"
    // InternalXcore.g:29509:1: rule__XFeatureCall__TypeArgumentsAssignment_1_2_1 : ( ruleJvmArgumentTypeReference ) ;
    public final void rule__XFeatureCall__TypeArgumentsAssignment_1_2_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:29513:1: ( ( ruleJvmArgumentTypeReference ) )
            // InternalXcore.g:29514:1: ( ruleJvmArgumentTypeReference )
            {
            // InternalXcore.g:29514:1: ( ruleJvmArgumentTypeReference )
            // InternalXcore.g:29515:1: ruleJvmArgumentTypeReference
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_2_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleJvmArgumentTypeReference();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_2_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XFeatureCall__TypeArgumentsAssignment_1_2_1"


    // $ANTLR start "rule__XFeatureCall__FeatureAssignment_2"
    // InternalXcore.g:29524:1: rule__XFeatureCall__FeatureAssignment_2 : ( ( ruleIdOrSuper ) ) ;
    public final void rule__XFeatureCall__FeatureAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:29528:1: ( ( ( ruleIdOrSuper ) ) )
            // InternalXcore.g:29529:1: ( ( ruleIdOrSuper ) )
            {
            // InternalXcore.g:29529:1: ( ( ruleIdOrSuper ) )
            // InternalXcore.g:29530:1: ( ruleIdOrSuper )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXFeatureCallAccess().getFeatureJvmIdentifiableElementCrossReference_2_0()); 
            }
            // InternalXcore.g:29531:1: ( ruleIdOrSuper )
            // InternalXcore.g:29532:1: ruleIdOrSuper
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXFeatureCallAccess().getFeatureJvmIdentifiableElementIdOrSuperParserRuleCall_2_0_1()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleIdOrSuper();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXFeatureCallAccess().getFeatureJvmIdentifiableElementIdOrSuperParserRuleCall_2_0_1()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXFeatureCallAccess().getFeatureJvmIdentifiableElementCrossReference_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XFeatureCall__FeatureAssignment_2"


    // $ANTLR start "rule__XFeatureCall__ExplicitOperationCallAssignment_3_0"
    // InternalXcore.g:29543:1: rule__XFeatureCall__ExplicitOperationCallAssignment_3_0 : ( ( '(' ) ) ;
    public final void rule__XFeatureCall__ExplicitOperationCallAssignment_3_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:29547:1: ( ( ( '(' ) ) )
            // InternalXcore.g:29548:1: ( ( '(' ) )
            {
            // InternalXcore.g:29548:1: ( ( '(' ) )
            // InternalXcore.g:29549:1: ( '(' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_3_0_0()); 
            }
            // InternalXcore.g:29550:1: ( '(' )
            // InternalXcore.g:29551:1: '('
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_3_0_0()); 
            }
            match(input,85,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_3_0_0()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_3_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XFeatureCall__ExplicitOperationCallAssignment_3_0"


    // $ANTLR start "rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0"
    // InternalXcore.g:29566:1: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 : ( ruleXShortClosure ) ;
    public final void rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:29570:1: ( ( ruleXShortClosure ) )
            // InternalXcore.g:29571:1: ( ruleXShortClosure )
            {
            // InternalXcore.g:29571:1: ( ruleXShortClosure )
            // InternalXcore.g:29572:1: ruleXShortClosure
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXShortClosureParserRuleCall_3_1_0_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXShortClosure();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXShortClosureParserRuleCall_3_1_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0"


    // $ANTLR start "rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0"
    // InternalXcore.g:29581:1: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0 : ( ruleXExpression ) ;
    public final void rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:29585:1: ( ( ruleXExpression ) )
            // InternalXcore.g:29586:1: ( ruleXExpression )
            {
            // InternalXcore.g:29586:1: ( ruleXExpression )
            // InternalXcore.g:29587:1: ruleXExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXExpressionParserRuleCall_3_1_1_0_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXExpression();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXExpressionParserRuleCall_3_1_1_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0"


    // $ANTLR start "rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1"
    // InternalXcore.g:29596:1: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1 : ( ruleXExpression ) ;
    public final void rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:29600:1: ( ( ruleXExpression ) )
            // InternalXcore.g:29601:1: ( ruleXExpression )
            {
            // InternalXcore.g:29601:1: ( ruleXExpression )
            // InternalXcore.g:29602:1: ruleXExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXExpressionParserRuleCall_3_1_1_1_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXExpression();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXExpressionParserRuleCall_3_1_1_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1"


    // $ANTLR start "rule__XFeatureCall__FeatureCallArgumentsAssignment_4"
    // InternalXcore.g:29611:1: rule__XFeatureCall__FeatureCallArgumentsAssignment_4 : ( ruleXClosure ) ;
    public final void rule__XFeatureCall__FeatureCallArgumentsAssignment_4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:29615:1: ( ( ruleXClosure ) )
            // InternalXcore.g:29616:1: ( ruleXClosure )
            {
            // InternalXcore.g:29616:1: ( ruleXClosure )
            // InternalXcore.g:29617:1: ruleXClosure
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXClosureParserRuleCall_4_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXClosure();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXClosureParserRuleCall_4_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XFeatureCall__FeatureCallArgumentsAssignment_4"


    // $ANTLR start "rule__XConstructorCall__ConstructorAssignment_2"
    // InternalXcore.g:29626:1: rule__XConstructorCall__ConstructorAssignment_2 : ( ( ruleQualifiedName ) ) ;
    public final void rule__XConstructorCall__ConstructorAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:29630:1: ( ( ( ruleQualifiedName ) ) )
            // InternalXcore.g:29631:1: ( ( ruleQualifiedName ) )
            {
            // InternalXcore.g:29631:1: ( ( ruleQualifiedName ) )
            // InternalXcore.g:29632:1: ( ruleQualifiedName )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXConstructorCallAccess().getConstructorJvmConstructorCrossReference_2_0()); 
            }
            // InternalXcore.g:29633:1: ( ruleQualifiedName )
            // InternalXcore.g:29634:1: ruleQualifiedName
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXConstructorCallAccess().getConstructorJvmConstructorQualifiedNameParserRuleCall_2_0_1()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleQualifiedName();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXConstructorCallAccess().getConstructorJvmConstructorQualifiedNameParserRuleCall_2_0_1()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXConstructorCallAccess().getConstructorJvmConstructorCrossReference_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XConstructorCall__ConstructorAssignment_2"


    // $ANTLR start "rule__XConstructorCall__TypeArgumentsAssignment_3_1"
    // InternalXcore.g:29645:1: rule__XConstructorCall__TypeArgumentsAssignment_3_1 : ( ruleJvmArgumentTypeReference ) ;
    public final void rule__XConstructorCall__TypeArgumentsAssignment_3_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:29649:1: ( ( ruleJvmArgumentTypeReference ) )
            // InternalXcore.g:29650:1: ( ruleJvmArgumentTypeReference )
            {
            // InternalXcore.g:29650:1: ( ruleJvmArgumentTypeReference )
            // InternalXcore.g:29651:1: ruleJvmArgumentTypeReference
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXConstructorCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_3_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleJvmArgumentTypeReference();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXConstructorCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_3_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XConstructorCall__TypeArgumentsAssignment_3_1"


    // $ANTLR start "rule__XConstructorCall__TypeArgumentsAssignment_3_2_1"
    // InternalXcore.g:29660:1: rule__XConstructorCall__TypeArgumentsAssignment_3_2_1 : ( ruleJvmArgumentTypeReference ) ;
    public final void rule__XConstructorCall__TypeArgumentsAssignment_3_2_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:29664:1: ( ( ruleJvmArgumentTypeReference ) )
            // InternalXcore.g:29665:1: ( ruleJvmArgumentTypeReference )
            {
            // InternalXcore.g:29665:1: ( ruleJvmArgumentTypeReference )
            // InternalXcore.g:29666:1: ruleJvmArgumentTypeReference
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXConstructorCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_3_2_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleJvmArgumentTypeReference();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXConstructorCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_3_2_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XConstructorCall__TypeArgumentsAssignment_3_2_1"


    // $ANTLR start "rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0"
    // InternalXcore.g:29675:1: rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0 : ( ( '(' ) ) ;
    public final void rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:29679:1: ( ( ( '(' ) ) )
            // InternalXcore.g:29680:1: ( ( '(' ) )
            {
            // InternalXcore.g:29680:1: ( ( '(' ) )
            // InternalXcore.g:29681:1: ( '(' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXConstructorCallAccess().getExplicitConstructorCallLeftParenthesisKeyword_4_0_0()); 
            }
            // InternalXcore.g:29682:1: ( '(' )
            // InternalXcore.g:29683:1: '('
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXConstructorCallAccess().getExplicitConstructorCallLeftParenthesisKeyword_4_0_0()); 
            }
            match(input,85,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXConstructorCallAccess().getExplicitConstructorCallLeftParenthesisKeyword_4_0_0()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXConstructorCallAccess().getExplicitConstructorCallLeftParenthesisKeyword_4_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0"


    // $ANTLR start "rule__XConstructorCall__ArgumentsAssignment_4_1_0"
    // InternalXcore.g:29698:1: rule__XConstructorCall__ArgumentsAssignment_4_1_0 : ( ruleXShortClosure ) ;
    public final void rule__XConstructorCall__ArgumentsAssignment_4_1_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:29702:1: ( ( ruleXShortClosure ) )
            // InternalXcore.g:29703:1: ( ruleXShortClosure )
            {
            // InternalXcore.g:29703:1: ( ruleXShortClosure )
            // InternalXcore.g:29704:1: ruleXShortClosure
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXConstructorCallAccess().getArgumentsXShortClosureParserRuleCall_4_1_0_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXShortClosure();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXConstructorCallAccess().getArgumentsXShortClosureParserRuleCall_4_1_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XConstructorCall__ArgumentsAssignment_4_1_0"


    // $ANTLR start "rule__XConstructorCall__ArgumentsAssignment_4_1_1_0"
    // InternalXcore.g:29713:1: rule__XConstructorCall__ArgumentsAssignment_4_1_1_0 : ( ruleXExpression ) ;
    public final void rule__XConstructorCall__ArgumentsAssignment_4_1_1_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:29717:1: ( ( ruleXExpression ) )
            // InternalXcore.g:29718:1: ( ruleXExpression )
            {
            // InternalXcore.g:29718:1: ( ruleXExpression )
            // InternalXcore.g:29719:1: ruleXExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXConstructorCallAccess().getArgumentsXExpressionParserRuleCall_4_1_1_0_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXExpression();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXConstructorCallAccess().getArgumentsXExpressionParserRuleCall_4_1_1_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XConstructorCall__ArgumentsAssignment_4_1_1_0"


    // $ANTLR start "rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1"
    // InternalXcore.g:29728:1: rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1 : ( ruleXExpression ) ;
    public final void rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:29732:1: ( ( ruleXExpression ) )
            // InternalXcore.g:29733:1: ( ruleXExpression )
            {
            // InternalXcore.g:29733:1: ( ruleXExpression )
            // InternalXcore.g:29734:1: ruleXExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXConstructorCallAccess().getArgumentsXExpressionParserRuleCall_4_1_1_1_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXExpression();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXConstructorCallAccess().getArgumentsXExpressionParserRuleCall_4_1_1_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1"


    // $ANTLR start "rule__XConstructorCall__ArgumentsAssignment_5"
    // InternalXcore.g:29743:1: rule__XConstructorCall__ArgumentsAssignment_5 : ( ruleXClosure ) ;
    public final void rule__XConstructorCall__ArgumentsAssignment_5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:29747:1: ( ( ruleXClosure ) )
            // InternalXcore.g:29748:1: ( ruleXClosure )
            {
            // InternalXcore.g:29748:1: ( ruleXClosure )
            // InternalXcore.g:29749:1: ruleXClosure
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXConstructorCallAccess().getArgumentsXClosureParserRuleCall_5_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXClosure();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXConstructorCallAccess().getArgumentsXClosureParserRuleCall_5_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XConstructorCall__ArgumentsAssignment_5"


    // $ANTLR start "rule__XBooleanLiteral__IsTrueAssignment_1_1"
    // InternalXcore.g:29758:1: rule__XBooleanLiteral__IsTrueAssignment_1_1 : ( ( 'true' ) ) ;
    public final void rule__XBooleanLiteral__IsTrueAssignment_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:29762:1: ( ( ( 'true' ) ) )
            // InternalXcore.g:29763:1: ( ( 'true' ) )
            {
            // InternalXcore.g:29763:1: ( ( 'true' ) )
            // InternalXcore.g:29764:1: ( 'true' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXBooleanLiteralAccess().getIsTrueTrueKeyword_1_1_0()); 
            }
            // InternalXcore.g:29765:1: ( 'true' )
            // InternalXcore.g:29766:1: 'true'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXBooleanLiteralAccess().getIsTrueTrueKeyword_1_1_0()); 
            }
            match(input,119,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXBooleanLiteralAccess().getIsTrueTrueKeyword_1_1_0()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXBooleanLiteralAccess().getIsTrueTrueKeyword_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XBooleanLiteral__IsTrueAssignment_1_1"


    // $ANTLR start "rule__XNumberLiteral__ValueAssignment_1"
    // InternalXcore.g:29781:1: rule__XNumberLiteral__ValueAssignment_1 : ( ruleNumber ) ;
    public final void rule__XNumberLiteral__ValueAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:29785:1: ( ( ruleNumber ) )
            // InternalXcore.g:29786:1: ( ruleNumber )
            {
            // InternalXcore.g:29786:1: ( ruleNumber )
            // InternalXcore.g:29787:1: ruleNumber
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXNumberLiteralAccess().getValueNumberParserRuleCall_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleNumber();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXNumberLiteralAccess().getValueNumberParserRuleCall_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XNumberLiteral__ValueAssignment_1"


    // $ANTLR start "rule__XStringLiteral__ValueAssignment_1"
    // InternalXcore.g:29796:1: rule__XStringLiteral__ValueAssignment_1 : ( RULE_STRING ) ;
    public final void rule__XStringLiteral__ValueAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:29800:1: ( ( RULE_STRING ) )
            // InternalXcore.g:29801:1: ( RULE_STRING )
            {
            // InternalXcore.g:29801:1: ( RULE_STRING )
            // InternalXcore.g:29802:1: RULE_STRING
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXStringLiteralAccess().getValueSTRINGTerminalRuleCall_1_0()); 
            }
            match(input,RULE_STRING,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXStringLiteralAccess().getValueSTRINGTerminalRuleCall_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XStringLiteral__ValueAssignment_1"


    // $ANTLR start "rule__XTypeLiteral__TypeAssignment_3"
    // InternalXcore.g:29811:1: rule__XTypeLiteral__TypeAssignment_3 : ( ( ruleQualifiedName ) ) ;
    public final void rule__XTypeLiteral__TypeAssignment_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:29815:1: ( ( ( ruleQualifiedName ) ) )
            // InternalXcore.g:29816:1: ( ( ruleQualifiedName ) )
            {
            // InternalXcore.g:29816:1: ( ( ruleQualifiedName ) )
            // InternalXcore.g:29817:1: ( ruleQualifiedName )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXTypeLiteralAccess().getTypeJvmTypeCrossReference_3_0()); 
            }
            // InternalXcore.g:29818:1: ( ruleQualifiedName )
            // InternalXcore.g:29819:1: ruleQualifiedName
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXTypeLiteralAccess().getTypeJvmTypeQualifiedNameParserRuleCall_3_0_1()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleQualifiedName();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXTypeLiteralAccess().getTypeJvmTypeQualifiedNameParserRuleCall_3_0_1()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXTypeLiteralAccess().getTypeJvmTypeCrossReference_3_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XTypeLiteral__TypeAssignment_3"


    // $ANTLR start "rule__XTypeLiteral__ArrayDimensionsAssignment_4"
    // InternalXcore.g:29830:1: rule__XTypeLiteral__ArrayDimensionsAssignment_4 : ( ruleArrayBrackets ) ;
    public final void rule__XTypeLiteral__ArrayDimensionsAssignment_4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:29834:1: ( ( ruleArrayBrackets ) )
            // InternalXcore.g:29835:1: ( ruleArrayBrackets )
            {
            // InternalXcore.g:29835:1: ( ruleArrayBrackets )
            // InternalXcore.g:29836:1: ruleArrayBrackets
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXTypeLiteralAccess().getArrayDimensionsArrayBracketsParserRuleCall_4_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleArrayBrackets();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXTypeLiteralAccess().getArrayDimensionsArrayBracketsParserRuleCall_4_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XTypeLiteral__ArrayDimensionsAssignment_4"


    // $ANTLR start "rule__XThrowExpression__ExpressionAssignment_2"
    // InternalXcore.g:29845:1: rule__XThrowExpression__ExpressionAssignment_2 : ( ruleXExpression ) ;
    public final void rule__XThrowExpression__ExpressionAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:29849:1: ( ( ruleXExpression ) )
            // InternalXcore.g:29850:1: ( ruleXExpression )
            {
            // InternalXcore.g:29850:1: ( ruleXExpression )
            // InternalXcore.g:29851:1: ruleXExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXThrowExpressionAccess().getExpressionXExpressionParserRuleCall_2_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXExpression();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXThrowExpressionAccess().getExpressionXExpressionParserRuleCall_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XThrowExpression__ExpressionAssignment_2"


    // $ANTLR start "rule__XReturnExpression__ExpressionAssignment_2"
    // InternalXcore.g:29860:1: rule__XReturnExpression__ExpressionAssignment_2 : ( ruleXExpression ) ;
    public final void rule__XReturnExpression__ExpressionAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:29864:1: ( ( ruleXExpression ) )
            // InternalXcore.g:29865:1: ( ruleXExpression )
            {
            // InternalXcore.g:29865:1: ( ruleXExpression )
            // InternalXcore.g:29866:1: ruleXExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXReturnExpressionAccess().getExpressionXExpressionParserRuleCall_2_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXExpression();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXReturnExpressionAccess().getExpressionXExpressionParserRuleCall_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XReturnExpression__ExpressionAssignment_2"


    // $ANTLR start "rule__XTryCatchFinallyExpression__ExpressionAssignment_2"
    // InternalXcore.g:29875:1: rule__XTryCatchFinallyExpression__ExpressionAssignment_2 : ( ruleXExpression ) ;
    public final void rule__XTryCatchFinallyExpression__ExpressionAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:29879:1: ( ( ruleXExpression ) )
            // InternalXcore.g:29880:1: ( ruleXExpression )
            {
            // InternalXcore.g:29880:1: ( ruleXExpression )
            // InternalXcore.g:29881:1: ruleXExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXTryCatchFinallyExpressionAccess().getExpressionXExpressionParserRuleCall_2_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXExpression();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXTryCatchFinallyExpressionAccess().getExpressionXExpressionParserRuleCall_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XTryCatchFinallyExpression__ExpressionAssignment_2"


    // $ANTLR start "rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0"
    // InternalXcore.g:29890:1: rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 : ( ruleXCatchClause ) ;
    public final void rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:29894:1: ( ( ruleXCatchClause ) )
            // InternalXcore.g:29895:1: ( ruleXCatchClause )
            {
            // InternalXcore.g:29895:1: ( ruleXCatchClause )
            // InternalXcore.g:29896:1: ruleXCatchClause
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXTryCatchFinallyExpressionAccess().getCatchClausesXCatchClauseParserRuleCall_3_0_0_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXCatchClause();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXTryCatchFinallyExpressionAccess().getCatchClausesXCatchClauseParserRuleCall_3_0_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0"


    // $ANTLR start "rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1"
    // InternalXcore.g:29905:1: rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1 : ( ruleXExpression ) ;
    public final void rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:29909:1: ( ( ruleXExpression ) )
            // InternalXcore.g:29910:1: ( ruleXExpression )
            {
            // InternalXcore.g:29910:1: ( ruleXExpression )
            // InternalXcore.g:29911:1: ruleXExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyExpressionXExpressionParserRuleCall_3_0_1_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXExpression();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyExpressionXExpressionParserRuleCall_3_0_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1"


    // $ANTLR start "rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1"
    // InternalXcore.g:29920:1: rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1 : ( ruleXExpression ) ;
    public final void rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:29924:1: ( ( ruleXExpression ) )
            // InternalXcore.g:29925:1: ( ruleXExpression )
            {
            // InternalXcore.g:29925:1: ( ruleXExpression )
            // InternalXcore.g:29926:1: ruleXExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyExpressionXExpressionParserRuleCall_3_1_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXExpression();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyExpressionXExpressionParserRuleCall_3_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1"


    // $ANTLR start "rule__XSynchronizedExpression__ParamAssignment_1"
    // InternalXcore.g:29935:1: rule__XSynchronizedExpression__ParamAssignment_1 : ( ruleXExpression ) ;
    public final void rule__XSynchronizedExpression__ParamAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:29939:1: ( ( ruleXExpression ) )
            // InternalXcore.g:29940:1: ( ruleXExpression )
            {
            // InternalXcore.g:29940:1: ( ruleXExpression )
            // InternalXcore.g:29941:1: ruleXExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSynchronizedExpressionAccess().getParamXExpressionParserRuleCall_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXExpression();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXSynchronizedExpressionAccess().getParamXExpressionParserRuleCall_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XSynchronizedExpression__ParamAssignment_1"


    // $ANTLR start "rule__XSynchronizedExpression__ExpressionAssignment_3"
    // InternalXcore.g:29950:1: rule__XSynchronizedExpression__ExpressionAssignment_3 : ( ruleXExpression ) ;
    public final void rule__XSynchronizedExpression__ExpressionAssignment_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:29954:1: ( ( ruleXExpression ) )
            // InternalXcore.g:29955:1: ( ruleXExpression )
            {
            // InternalXcore.g:29955:1: ( ruleXExpression )
            // InternalXcore.g:29956:1: ruleXExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXSynchronizedExpressionAccess().getExpressionXExpressionParserRuleCall_3_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXExpression();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXSynchronizedExpressionAccess().getExpressionXExpressionParserRuleCall_3_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XSynchronizedExpression__ExpressionAssignment_3"


    // $ANTLR start "rule__XCatchClause__DeclaredParamAssignment_2"
    // InternalXcore.g:29965:1: rule__XCatchClause__DeclaredParamAssignment_2 : ( ruleFullJvmFormalParameter ) ;
    public final void rule__XCatchClause__DeclaredParamAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:29969:1: ( ( ruleFullJvmFormalParameter ) )
            // InternalXcore.g:29970:1: ( ruleFullJvmFormalParameter )
            {
            // InternalXcore.g:29970:1: ( ruleFullJvmFormalParameter )
            // InternalXcore.g:29971:1: ruleFullJvmFormalParameter
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXCatchClauseAccess().getDeclaredParamFullJvmFormalParameterParserRuleCall_2_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleFullJvmFormalParameter();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXCatchClauseAccess().getDeclaredParamFullJvmFormalParameterParserRuleCall_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XCatchClause__DeclaredParamAssignment_2"


    // $ANTLR start "rule__XCatchClause__ExpressionAssignment_4"
    // InternalXcore.g:29980:1: rule__XCatchClause__ExpressionAssignment_4 : ( ruleXExpression ) ;
    public final void rule__XCatchClause__ExpressionAssignment_4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:29984:1: ( ( ruleXExpression ) )
            // InternalXcore.g:29985:1: ( ruleXExpression )
            {
            // InternalXcore.g:29985:1: ( ruleXExpression )
            // InternalXcore.g:29986:1: ruleXExpression
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXCatchClauseAccess().getExpressionXExpressionParserRuleCall_4_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleXExpression();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXCatchClauseAccess().getExpressionXExpressionParserRuleCall_4_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XCatchClause__ExpressionAssignment_4"


    // $ANTLR start "rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0"
    // InternalXcore.g:29995:1: rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0 : ( ruleJvmTypeReference ) ;
    public final void rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:29999:1: ( ( ruleJvmTypeReference ) )
            // InternalXcore.g:30000:1: ( ruleJvmTypeReference )
            {
            // InternalXcore.g:30000:1: ( ruleJvmTypeReference )
            // InternalXcore.g:30001:1: ruleJvmTypeReference
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXFunctionTypeRefAccess().getParamTypesJvmTypeReferenceParserRuleCall_0_1_0_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleJvmTypeReference();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXFunctionTypeRefAccess().getParamTypesJvmTypeReferenceParserRuleCall_0_1_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0"


    // $ANTLR start "rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1"
    // InternalXcore.g:30010:1: rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1 : ( ruleJvmTypeReference ) ;
    public final void rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:30014:1: ( ( ruleJvmTypeReference ) )
            // InternalXcore.g:30015:1: ( ruleJvmTypeReference )
            {
            // InternalXcore.g:30015:1: ( ruleJvmTypeReference )
            // InternalXcore.g:30016:1: ruleJvmTypeReference
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXFunctionTypeRefAccess().getParamTypesJvmTypeReferenceParserRuleCall_0_1_1_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleJvmTypeReference();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXFunctionTypeRefAccess().getParamTypesJvmTypeReferenceParserRuleCall_0_1_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1"


    // $ANTLR start "rule__XFunctionTypeRef__ReturnTypeAssignment_2"
    // InternalXcore.g:30025:1: rule__XFunctionTypeRef__ReturnTypeAssignment_2 : ( ruleJvmTypeReference ) ;
    public final void rule__XFunctionTypeRef__ReturnTypeAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:30029:1: ( ( ruleJvmTypeReference ) )
            // InternalXcore.g:30030:1: ( ruleJvmTypeReference )
            {
            // InternalXcore.g:30030:1: ( ruleJvmTypeReference )
            // InternalXcore.g:30031:1: ruleJvmTypeReference
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXFunctionTypeRefAccess().getReturnTypeJvmTypeReferenceParserRuleCall_2_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleJvmTypeReference();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXFunctionTypeRefAccess().getReturnTypeJvmTypeReferenceParserRuleCall_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XFunctionTypeRef__ReturnTypeAssignment_2"


    // $ANTLR start "rule__JvmParameterizedTypeReference__TypeAssignment_0"
    // InternalXcore.g:30040:1: rule__JvmParameterizedTypeReference__TypeAssignment_0 : ( ( ruleQualifiedName ) ) ;
    public final void rule__JvmParameterizedTypeReference__TypeAssignment_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:30044:1: ( ( ( ruleQualifiedName ) ) )
            // InternalXcore.g:30045:1: ( ( ruleQualifiedName ) )
            {
            // InternalXcore.g:30045:1: ( ( ruleQualifiedName ) )
            // InternalXcore.g:30046:1: ( ruleQualifiedName )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeJvmTypeCrossReference_0_0()); 
            }
            // InternalXcore.g:30047:1: ( ruleQualifiedName )
            // InternalXcore.g:30048:1: ruleQualifiedName
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeJvmTypeQualifiedNameParserRuleCall_0_0_1()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleQualifiedName();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeJvmTypeQualifiedNameParserRuleCall_0_0_1()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeJvmTypeCrossReference_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmParameterizedTypeReference__TypeAssignment_0"


    // $ANTLR start "rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1"
    // InternalXcore.g:30059:1: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1 : ( ruleJvmArgumentTypeReference ) ;
    public final void rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:30063:1: ( ( ruleJvmArgumentTypeReference ) )
            // InternalXcore.g:30064:1: ( ruleJvmArgumentTypeReference )
            {
            // InternalXcore.g:30064:1: ( ruleJvmArgumentTypeReference )
            // InternalXcore.g:30065:1: ruleJvmArgumentTypeReference
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleJvmArgumentTypeReference();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1"


    // $ANTLR start "rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1"
    // InternalXcore.g:30074:1: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1 : ( ruleJvmArgumentTypeReference ) ;
    public final void rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:30078:1: ( ( ruleJvmArgumentTypeReference ) )
            // InternalXcore.g:30079:1: ( ruleJvmArgumentTypeReference )
            {
            // InternalXcore.g:30079:1: ( ruleJvmArgumentTypeReference )
            // InternalXcore.g:30080:1: ruleJvmArgumentTypeReference
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_2_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleJvmArgumentTypeReference();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_2_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1"


    // $ANTLR start "rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1"
    // InternalXcore.g:30089:1: rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1 : ( ( ruleValidID ) ) ;
    public final void rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:30093:1: ( ( ( ruleValidID ) ) )
            // InternalXcore.g:30094:1: ( ( ruleValidID ) )
            {
            // InternalXcore.g:30094:1: ( ( ruleValidID ) )
            // InternalXcore.g:30095:1: ( ruleValidID )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeJvmTypeCrossReference_1_4_1_0()); 
            }
            // InternalXcore.g:30096:1: ( ruleValidID )
            // InternalXcore.g:30097:1: ruleValidID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeJvmTypeValidIDParserRuleCall_1_4_1_0_1()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleValidID();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeJvmTypeValidIDParserRuleCall_1_4_1_0_1()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeJvmTypeCrossReference_1_4_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1"


    // $ANTLR start "rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1"
    // InternalXcore.g:30108:1: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1 : ( ruleJvmArgumentTypeReference ) ;
    public final void rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:30112:1: ( ( ruleJvmArgumentTypeReference ) )
            // InternalXcore.g:30113:1: ( ruleJvmArgumentTypeReference )
            {
            // InternalXcore.g:30113:1: ( ruleJvmArgumentTypeReference )
            // InternalXcore.g:30114:1: ruleJvmArgumentTypeReference
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_4_2_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleJvmArgumentTypeReference();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_4_2_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1"


    // $ANTLR start "rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1"
    // InternalXcore.g:30123:1: rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1 : ( ruleJvmArgumentTypeReference ) ;
    public final void rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:30127:1: ( ( ruleJvmArgumentTypeReference ) )
            // InternalXcore.g:30128:1: ( ruleJvmArgumentTypeReference )
            {
            // InternalXcore.g:30128:1: ( ruleJvmArgumentTypeReference )
            // InternalXcore.g:30129:1: ruleJvmArgumentTypeReference
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_4_2_2_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleJvmArgumentTypeReference();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_4_2_2_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1"


    // $ANTLR start "rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0"
    // InternalXcore.g:30138:1: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0 : ( ruleJvmUpperBound ) ;
    public final void rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:30142:1: ( ( ruleJvmUpperBound ) )
            // InternalXcore.g:30143:1: ( ruleJvmUpperBound )
            {
            // InternalXcore.g:30143:1: ( ruleJvmUpperBound )
            // InternalXcore.g:30144:1: ruleJvmUpperBound
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmUpperBoundParserRuleCall_2_0_0_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleJvmUpperBound();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmUpperBoundParserRuleCall_2_0_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0"


    // $ANTLR start "rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1"
    // InternalXcore.g:30153:1: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1 : ( ruleJvmUpperBoundAnded ) ;
    public final void rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:30157:1: ( ( ruleJvmUpperBoundAnded ) )
            // InternalXcore.g:30158:1: ( ruleJvmUpperBoundAnded )
            {
            // InternalXcore.g:30158:1: ( ruleJvmUpperBoundAnded )
            // InternalXcore.g:30159:1: ruleJvmUpperBoundAnded
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmUpperBoundAndedParserRuleCall_2_0_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleJvmUpperBoundAnded();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmUpperBoundAndedParserRuleCall_2_0_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1"


    // $ANTLR start "rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0"
    // InternalXcore.g:30168:1: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0 : ( ruleJvmLowerBound ) ;
    public final void rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:30172:1: ( ( ruleJvmLowerBound ) )
            // InternalXcore.g:30173:1: ( ruleJvmLowerBound )
            {
            // InternalXcore.g:30173:1: ( ruleJvmLowerBound )
            // InternalXcore.g:30174:1: ruleJvmLowerBound
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmLowerBoundParserRuleCall_2_1_0_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleJvmLowerBound();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmLowerBoundParserRuleCall_2_1_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0"


    // $ANTLR start "rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1"
    // InternalXcore.g:30183:1: rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1 : ( ruleJvmLowerBoundAnded ) ;
    public final void rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:30187:1: ( ( ruleJvmLowerBoundAnded ) )
            // InternalXcore.g:30188:1: ( ruleJvmLowerBoundAnded )
            {
            // InternalXcore.g:30188:1: ( ruleJvmLowerBoundAnded )
            // InternalXcore.g:30189:1: ruleJvmLowerBoundAnded
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmLowerBoundAndedParserRuleCall_2_1_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleJvmLowerBoundAnded();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmLowerBoundAndedParserRuleCall_2_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1"


    // $ANTLR start "rule__JvmUpperBound__TypeReferenceAssignment_1"
    // InternalXcore.g:30198:1: rule__JvmUpperBound__TypeReferenceAssignment_1 : ( ruleJvmTypeReference ) ;
    public final void rule__JvmUpperBound__TypeReferenceAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:30202:1: ( ( ruleJvmTypeReference ) )
            // InternalXcore.g:30203:1: ( ruleJvmTypeReference )
            {
            // InternalXcore.g:30203:1: ( ruleJvmTypeReference )
            // InternalXcore.g:30204:1: ruleJvmTypeReference
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmUpperBoundAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleJvmTypeReference();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getJvmUpperBoundAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmUpperBound__TypeReferenceAssignment_1"


    // $ANTLR start "rule__JvmUpperBoundAnded__TypeReferenceAssignment_1"
    // InternalXcore.g:30213:1: rule__JvmUpperBoundAnded__TypeReferenceAssignment_1 : ( ruleJvmTypeReference ) ;
    public final void rule__JvmUpperBoundAnded__TypeReferenceAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:30217:1: ( ( ruleJvmTypeReference ) )
            // InternalXcore.g:30218:1: ( ruleJvmTypeReference )
            {
            // InternalXcore.g:30218:1: ( ruleJvmTypeReference )
            // InternalXcore.g:30219:1: ruleJvmTypeReference
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmUpperBoundAndedAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleJvmTypeReference();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getJvmUpperBoundAndedAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmUpperBoundAnded__TypeReferenceAssignment_1"


    // $ANTLR start "rule__JvmLowerBound__TypeReferenceAssignment_1"
    // InternalXcore.g:30228:1: rule__JvmLowerBound__TypeReferenceAssignment_1 : ( ruleJvmTypeReference ) ;
    public final void rule__JvmLowerBound__TypeReferenceAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:30232:1: ( ( ruleJvmTypeReference ) )
            // InternalXcore.g:30233:1: ( ruleJvmTypeReference )
            {
            // InternalXcore.g:30233:1: ( ruleJvmTypeReference )
            // InternalXcore.g:30234:1: ruleJvmTypeReference
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmLowerBoundAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleJvmTypeReference();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getJvmLowerBoundAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmLowerBound__TypeReferenceAssignment_1"


    // $ANTLR start "rule__JvmLowerBoundAnded__TypeReferenceAssignment_1"
    // InternalXcore.g:30243:1: rule__JvmLowerBoundAnded__TypeReferenceAssignment_1 : ( ruleJvmTypeReference ) ;
    public final void rule__JvmLowerBoundAnded__TypeReferenceAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:30247:1: ( ( ruleJvmTypeReference ) )
            // InternalXcore.g:30248:1: ( ruleJvmTypeReference )
            {
            // InternalXcore.g:30248:1: ( ruleJvmTypeReference )
            // InternalXcore.g:30249:1: ruleJvmTypeReference
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getJvmLowerBoundAndedAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleJvmTypeReference();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getJvmLowerBoundAndedAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JvmLowerBoundAnded__TypeReferenceAssignment_1"


    // $ANTLR start "rule__XImportDeclaration__StaticAssignment_1_0_0"
    // InternalXcore.g:30262:1: rule__XImportDeclaration__StaticAssignment_1_0_0 : ( ( 'static' ) ) ;
    public final void rule__XImportDeclaration__StaticAssignment_1_0_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:30266:1: ( ( ( 'static' ) ) )
            // InternalXcore.g:30267:1: ( ( 'static' ) )
            {
            // InternalXcore.g:30267:1: ( ( 'static' ) )
            // InternalXcore.g:30268:1: ( 'static' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXImportDeclarationAccess().getStaticStaticKeyword_1_0_0_0()); 
            }
            // InternalXcore.g:30269:1: ( 'static' )
            // InternalXcore.g:30270:1: 'static'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXImportDeclarationAccess().getStaticStaticKeyword_1_0_0_0()); 
            }
            match(input,47,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXImportDeclarationAccess().getStaticStaticKeyword_1_0_0_0()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXImportDeclarationAccess().getStaticStaticKeyword_1_0_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XImportDeclaration__StaticAssignment_1_0_0"


    // $ANTLR start "rule__XImportDeclaration__ExtensionAssignment_1_0_1"
    // InternalXcore.g:30285:1: rule__XImportDeclaration__ExtensionAssignment_1_0_1 : ( ( 'extension' ) ) ;
    public final void rule__XImportDeclaration__ExtensionAssignment_1_0_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:30289:1: ( ( ( 'extension' ) ) )
            // InternalXcore.g:30290:1: ( ( 'extension' ) )
            {
            // InternalXcore.g:30290:1: ( ( 'extension' ) )
            // InternalXcore.g:30291:1: ( 'extension' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXImportDeclarationAccess().getExtensionExtensionKeyword_1_0_1_0()); 
            }
            // InternalXcore.g:30292:1: ( 'extension' )
            // InternalXcore.g:30293:1: 'extension'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXImportDeclarationAccess().getExtensionExtensionKeyword_1_0_1_0()); 
            }
            match(input,35,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXImportDeclarationAccess().getExtensionExtensionKeyword_1_0_1_0()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXImportDeclarationAccess().getExtensionExtensionKeyword_1_0_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XImportDeclaration__ExtensionAssignment_1_0_1"


    // $ANTLR start "rule__XImportDeclaration__ImportedTypeAssignment_1_0_2"
    // InternalXcore.g:30308:1: rule__XImportDeclaration__ImportedTypeAssignment_1_0_2 : ( ( ruleQualifiedNameInStaticImport ) ) ;
    public final void rule__XImportDeclaration__ImportedTypeAssignment_1_0_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:30312:1: ( ( ( ruleQualifiedNameInStaticImport ) ) )
            // InternalXcore.g:30313:1: ( ( ruleQualifiedNameInStaticImport ) )
            {
            // InternalXcore.g:30313:1: ( ( ruleQualifiedNameInStaticImport ) )
            // InternalXcore.g:30314:1: ( ruleQualifiedNameInStaticImport )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeCrossReference_1_0_2_0()); 
            }
            // InternalXcore.g:30315:1: ( ruleQualifiedNameInStaticImport )
            // InternalXcore.g:30316:1: ruleQualifiedNameInStaticImport
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeQualifiedNameInStaticImportParserRuleCall_1_0_2_0_1()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleQualifiedNameInStaticImport();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeQualifiedNameInStaticImportParserRuleCall_1_0_2_0_1()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeCrossReference_1_0_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XImportDeclaration__ImportedTypeAssignment_1_0_2"


    // $ANTLR start "rule__XImportDeclaration__WildcardAssignment_1_0_3_0"
    // InternalXcore.g:30327:1: rule__XImportDeclaration__WildcardAssignment_1_0_3_0 : ( ( '*' ) ) ;
    public final void rule__XImportDeclaration__WildcardAssignment_1_0_3_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:30331:1: ( ( ( '*' ) ) )
            // InternalXcore.g:30332:1: ( ( '*' ) )
            {
            // InternalXcore.g:30332:1: ( ( '*' ) )
            // InternalXcore.g:30333:1: ( '*' )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXImportDeclarationAccess().getWildcardAsteriskKeyword_1_0_3_0_0()); 
            }
            // InternalXcore.g:30334:1: ( '*' )
            // InternalXcore.g:30335:1: '*'
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXImportDeclarationAccess().getWildcardAsteriskKeyword_1_0_3_0_0()); 
            }
            match(input,18,FollowSets000.FOLLOW_2); if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXImportDeclarationAccess().getWildcardAsteriskKeyword_1_0_3_0_0()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXImportDeclarationAccess().getWildcardAsteriskKeyword_1_0_3_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XImportDeclaration__WildcardAssignment_1_0_3_0"


    // $ANTLR start "rule__XImportDeclaration__MemberNameAssignment_1_0_3_1"
    // InternalXcore.g:30350:1: rule__XImportDeclaration__MemberNameAssignment_1_0_3_1 : ( ruleValidID ) ;
    public final void rule__XImportDeclaration__MemberNameAssignment_1_0_3_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:30354:1: ( ( ruleValidID ) )
            // InternalXcore.g:30355:1: ( ruleValidID )
            {
            // InternalXcore.g:30355:1: ( ruleValidID )
            // InternalXcore.g:30356:1: ruleValidID
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXImportDeclarationAccess().getMemberNameValidIDParserRuleCall_1_0_3_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleValidID();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXImportDeclarationAccess().getMemberNameValidIDParserRuleCall_1_0_3_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XImportDeclaration__MemberNameAssignment_1_0_3_1"


    // $ANTLR start "rule__XImportDeclaration__ImportedTypeAssignment_1_1"
    // InternalXcore.g:30365:1: rule__XImportDeclaration__ImportedTypeAssignment_1_1 : ( ( ruleQualifiedName ) ) ;
    public final void rule__XImportDeclaration__ImportedTypeAssignment_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:30369:1: ( ( ( ruleQualifiedName ) ) )
            // InternalXcore.g:30370:1: ( ( ruleQualifiedName ) )
            {
            // InternalXcore.g:30370:1: ( ( ruleQualifiedName ) )
            // InternalXcore.g:30371:1: ( ruleQualifiedName )
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeCrossReference_1_1_0()); 
            }
            // InternalXcore.g:30372:1: ( ruleQualifiedName )
            // InternalXcore.g:30373:1: ruleQualifiedName
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeQualifiedNameParserRuleCall_1_1_0_1()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleQualifiedName();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeQualifiedNameParserRuleCall_1_1_0_1()); 
            }

            }

            if ( state.backtracking==0 ) {
               after(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeCrossReference_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XImportDeclaration__ImportedTypeAssignment_1_1"


    // $ANTLR start "rule__XImportDeclaration__ImportedNamespaceAssignment_1_2"
    // InternalXcore.g:30384:1: rule__XImportDeclaration__ImportedNamespaceAssignment_1_2 : ( ruleQualifiedNameWithWildcard ) ;
    public final void rule__XImportDeclaration__ImportedNamespaceAssignment_1_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // InternalXcore.g:30388:1: ( ( ruleQualifiedNameWithWildcard ) )
            // InternalXcore.g:30389:1: ( ruleQualifiedNameWithWildcard )
            {
            // InternalXcore.g:30389:1: ( ruleQualifiedNameWithWildcard )
            // InternalXcore.g:30390:1: ruleQualifiedNameWithWildcard
            {
            if ( state.backtracking==0 ) {
               before(grammarAccess.getXImportDeclarationAccess().getImportedNamespaceQualifiedNameWithWildcardParserRuleCall_1_2_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_2);
            ruleQualifiedNameWithWildcard();

            state._fsp--;
            if (state.failed) return ;
            if ( state.backtracking==0 ) {
               after(grammarAccess.getXImportDeclarationAccess().getImportedNamespaceQualifiedNameWithWildcardParserRuleCall_1_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__XImportDeclaration__ImportedNamespaceAssignment_1_2"

    // $ANTLR start synpred82_InternalXcore
    public final void synpred82_InternalXcore_fragment() throws RecognitionException {   
        // InternalXcore.g:3791:1: ( ( ( rule__OpOther__Group_6_1_0__0 ) ) )
        // InternalXcore.g:3791:1: ( ( rule__OpOther__Group_6_1_0__0 ) )
        {
        // InternalXcore.g:3791:1: ( ( rule__OpOther__Group_6_1_0__0 ) )
        // InternalXcore.g:3792:1: ( rule__OpOther__Group_6_1_0__0 )
        {
        if ( state.backtracking==0 ) {
           before(grammarAccess.getOpOtherAccess().getGroup_6_1_0()); 
        }
        // InternalXcore.g:3793:1: ( rule__OpOther__Group_6_1_0__0 )
        // InternalXcore.g:3793:2: rule__OpOther__Group_6_1_0__0
        {
        pushFollow(FollowSets000.FOLLOW_2);
        rule__OpOther__Group_6_1_0__0();

        state._fsp--;
        if (state.failed) return ;

        }


        }


        }
    }
    // $ANTLR end synpred82_InternalXcore

    // $ANTLR start synpred83_InternalXcore
    public final void synpred83_InternalXcore_fragment() throws RecognitionException {   
        // InternalXcore.g:3797:6: ( ( '<' ) )
        // InternalXcore.g:3797:6: ( '<' )
        {
        // InternalXcore.g:3797:6: ( '<' )
        // InternalXcore.g:3798:1: '<'
        {
        if ( state.backtracking==0 ) {
           before(grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_1()); 
        }
        match(input,66,FollowSets000.FOLLOW_2); if (state.failed) return ;

        }


        }
    }
    // $ANTLR end synpred83_InternalXcore

    // $ANTLR start synpred96_InternalXcore
    public final void synpred96_InternalXcore_fragment() throws RecognitionException {   
        // InternalXcore.g:4049:1: ( ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) ) )
        // InternalXcore.g:4049:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) )
        {
        // InternalXcore.g:4049:1: ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) )
        // InternalXcore.g:4050:1: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 )
        {
        if ( state.backtracking==0 ) {
           before(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsAssignment_1_1_3_1_0()); 
        }
        // InternalXcore.g:4051:1: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 )
        // InternalXcore.g:4051:2: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0
        {
        pushFollow(FollowSets000.FOLLOW_2);
        rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0();

        state._fsp--;
        if (state.failed) return ;

        }


        }


        }
    }
    // $ANTLR end synpred96_InternalXcore

    // $ANTLR start synpred104_InternalXcore
    public final void synpred104_InternalXcore_fragment() throws RecognitionException {   
        // InternalXcore.g:4113:6: ( ( ( ruleXForLoopExpression ) ) )
        // InternalXcore.g:4113:6: ( ( ruleXForLoopExpression ) )
        {
        // InternalXcore.g:4113:6: ( ( ruleXForLoopExpression ) )
        // InternalXcore.g:4114:1: ( ruleXForLoopExpression )
        {
        if ( state.backtracking==0 ) {
           before(grammarAccess.getXPrimaryExpressionAccess().getXForLoopExpressionParserRuleCall_7()); 
        }
        // InternalXcore.g:4115:1: ( ruleXForLoopExpression )
        // InternalXcore.g:4115:3: ruleXForLoopExpression
        {
        pushFollow(FollowSets000.FOLLOW_2);
        ruleXForLoopExpression();

        state._fsp--;
        if (state.failed) return ;

        }


        }


        }
    }
    // $ANTLR end synpred104_InternalXcore

    // $ANTLR start synpred105_InternalXcore
    public final void synpred105_InternalXcore_fragment() throws RecognitionException {   
        // InternalXcore.g:4119:6: ( ( ruleXBasicForLoopExpression ) )
        // InternalXcore.g:4119:6: ( ruleXBasicForLoopExpression )
        {
        // InternalXcore.g:4119:6: ( ruleXBasicForLoopExpression )
        // InternalXcore.g:4120:1: ruleXBasicForLoopExpression
        {
        if ( state.backtracking==0 ) {
           before(grammarAccess.getXPrimaryExpressionAccess().getXBasicForLoopExpressionParserRuleCall_8()); 
        }
        pushFollow(FollowSets000.FOLLOW_2);
        ruleXBasicForLoopExpression();

        state._fsp--;
        if (state.failed) return ;

        }


        }
    }
    // $ANTLR end synpred105_InternalXcore

    // $ANTLR start synpred118_InternalXcore
    public final void synpred118_InternalXcore_fragment() throws RecognitionException {   
        // InternalXcore.g:4245:1: ( ( ( rule__XSwitchExpression__Group_2_0__0 ) ) )
        // InternalXcore.g:4245:1: ( ( rule__XSwitchExpression__Group_2_0__0 ) )
        {
        // InternalXcore.g:4245:1: ( ( rule__XSwitchExpression__Group_2_0__0 ) )
        // InternalXcore.g:4246:1: ( rule__XSwitchExpression__Group_2_0__0 )
        {
        if ( state.backtracking==0 ) {
           before(grammarAccess.getXSwitchExpressionAccess().getGroup_2_0()); 
        }
        // InternalXcore.g:4247:1: ( rule__XSwitchExpression__Group_2_0__0 )
        // InternalXcore.g:4247:2: rule__XSwitchExpression__Group_2_0__0
        {
        pushFollow(FollowSets000.FOLLOW_2);
        rule__XSwitchExpression__Group_2_0__0();

        state._fsp--;
        if (state.failed) return ;

        }


        }


        }
    }
    // $ANTLR end synpred118_InternalXcore

    // $ANTLR start synpred122_InternalXcore
    public final void synpred122_InternalXcore_fragment() throws RecognitionException {   
        // InternalXcore.g:4335:1: ( ( ( rule__XVariableDeclaration__Group_2_0__0 ) ) )
        // InternalXcore.g:4335:1: ( ( rule__XVariableDeclaration__Group_2_0__0 ) )
        {
        // InternalXcore.g:4335:1: ( ( rule__XVariableDeclaration__Group_2_0__0 ) )
        // InternalXcore.g:4336:1: ( rule__XVariableDeclaration__Group_2_0__0 )
        {
        if ( state.backtracking==0 ) {
           before(grammarAccess.getXVariableDeclarationAccess().getGroup_2_0()); 
        }
        // InternalXcore.g:4337:1: ( rule__XVariableDeclaration__Group_2_0__0 )
        // InternalXcore.g:4337:2: rule__XVariableDeclaration__Group_2_0__0
        {
        pushFollow(FollowSets000.FOLLOW_2);
        rule__XVariableDeclaration__Group_2_0__0();

        state._fsp--;
        if (state.failed) return ;

        }


        }


        }
    }
    // $ANTLR end synpred122_InternalXcore

    // $ANTLR start synpred123_InternalXcore
    public final void synpred123_InternalXcore_fragment() throws RecognitionException {   
        // InternalXcore.g:4357:1: ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) ) )
        // InternalXcore.g:4357:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) )
        {
        // InternalXcore.g:4357:1: ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) )
        // InternalXcore.g:4358:1: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 )
        {
        if ( state.backtracking==0 ) {
           before(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsAssignment_3_1_0()); 
        }
        // InternalXcore.g:4359:1: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 )
        // InternalXcore.g:4359:2: rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0
        {
        pushFollow(FollowSets000.FOLLOW_2);
        rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0();

        state._fsp--;
        if (state.failed) return ;

        }


        }


        }
    }
    // $ANTLR end synpred123_InternalXcore

    // $ANTLR start synpred125_InternalXcore
    public final void synpred125_InternalXcore_fragment() throws RecognitionException {   
        // InternalXcore.g:4403:1: ( ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) ) )
        // InternalXcore.g:4403:1: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) )
        {
        // InternalXcore.g:4403:1: ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) )
        // InternalXcore.g:4404:1: ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 )
        {
        if ( state.backtracking==0 ) {
           before(grammarAccess.getXConstructorCallAccess().getArgumentsAssignment_4_1_0()); 
        }
        // InternalXcore.g:4405:1: ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 )
        // InternalXcore.g:4405:2: rule__XConstructorCall__ArgumentsAssignment_4_1_0
        {
        pushFollow(FollowSets000.FOLLOW_2);
        rule__XConstructorCall__ArgumentsAssignment_4_1_0();

        state._fsp--;
        if (state.failed) return ;

        }


        }


        }
    }
    // $ANTLR end synpred125_InternalXcore

    // $ANTLR start synpred201_InternalXcore
    public final void synpred201_InternalXcore_fragment() throws RecognitionException {   
        // InternalXcore.g:11906:2: ( rule__XAssignment__Group_1_1__0 )
        // InternalXcore.g:11906:2: rule__XAssignment__Group_1_1__0
        {
        pushFollow(FollowSets000.FOLLOW_2);
        rule__XAssignment__Group_1_1__0();

        state._fsp--;
        if (state.failed) return ;

        }
    }
    // $ANTLR end synpred201_InternalXcore

    // $ANTLR start synpred203_InternalXcore
    public final void synpred203_InternalXcore_fragment() throws RecognitionException {   
        // InternalXcore.g:12317:2: ( rule__XOrExpression__Group_1__0 )
        // InternalXcore.g:12317:2: rule__XOrExpression__Group_1__0
        {
        pushFollow(FollowSets000.FOLLOW_2);
        rule__XOrExpression__Group_1__0();

        state._fsp--;
        if (state.failed) return ;

        }
    }
    // $ANTLR end synpred203_InternalXcore

    // $ANTLR start synpred204_InternalXcore
    public final void synpred204_InternalXcore_fragment() throws RecognitionException {   
        // InternalXcore.g:12532:2: ( rule__XAndExpression__Group_1__0 )
        // InternalXcore.g:12532:2: rule__XAndExpression__Group_1__0
        {
        pushFollow(FollowSets000.FOLLOW_2);
        rule__XAndExpression__Group_1__0();

        state._fsp--;
        if (state.failed) return ;

        }
    }
    // $ANTLR end synpred204_InternalXcore

    // $ANTLR start synpred205_InternalXcore
    public final void synpred205_InternalXcore_fragment() throws RecognitionException {   
        // InternalXcore.g:12747:2: ( rule__XEqualityExpression__Group_1__0 )
        // InternalXcore.g:12747:2: rule__XEqualityExpression__Group_1__0
        {
        pushFollow(FollowSets000.FOLLOW_2);
        rule__XEqualityExpression__Group_1__0();

        state._fsp--;
        if (state.failed) return ;

        }
    }
    // $ANTLR end synpred205_InternalXcore

    // $ANTLR start synpred206_InternalXcore
    public final void synpred206_InternalXcore_fragment() throws RecognitionException {   
        // InternalXcore.g:12962:2: ( rule__XRelationalExpression__Alternatives_1 )
        // InternalXcore.g:12962:2: rule__XRelationalExpression__Alternatives_1
        {
        pushFollow(FollowSets000.FOLLOW_2);
        rule__XRelationalExpression__Alternatives_1();

        state._fsp--;
        if (state.failed) return ;

        }
    }
    // $ANTLR end synpred206_InternalXcore

    // $ANTLR start synpred207_InternalXcore
    public final void synpred207_InternalXcore_fragment() throws RecognitionException {   
        // InternalXcore.g:13398:2: ( rule__XOtherOperatorExpression__Group_1__0 )
        // InternalXcore.g:13398:2: rule__XOtherOperatorExpression__Group_1__0
        {
        pushFollow(FollowSets000.FOLLOW_2);
        rule__XOtherOperatorExpression__Group_1__0();

        state._fsp--;
        if (state.failed) return ;

        }
    }
    // $ANTLR end synpred207_InternalXcore

    // $ANTLR start synpred208_InternalXcore
    public final void synpred208_InternalXcore_fragment() throws RecognitionException {   
        // InternalXcore.g:13994:2: ( rule__XAdditiveExpression__Group_1__0 )
        // InternalXcore.g:13994:2: rule__XAdditiveExpression__Group_1__0
        {
        pushFollow(FollowSets000.FOLLOW_2);
        rule__XAdditiveExpression__Group_1__0();

        state._fsp--;
        if (state.failed) return ;

        }
    }
    // $ANTLR end synpred208_InternalXcore

    // $ANTLR start synpred209_InternalXcore
    public final void synpred209_InternalXcore_fragment() throws RecognitionException {   
        // InternalXcore.g:14209:2: ( rule__XMultiplicativeExpression__Group_1__0 )
        // InternalXcore.g:14209:2: rule__XMultiplicativeExpression__Group_1__0
        {
        pushFollow(FollowSets000.FOLLOW_2);
        rule__XMultiplicativeExpression__Group_1__0();

        state._fsp--;
        if (state.failed) return ;

        }
    }
    // $ANTLR end synpred209_InternalXcore

    // $ANTLR start synpred210_InternalXcore
    public final void synpred210_InternalXcore_fragment() throws RecognitionException {   
        // InternalXcore.g:14518:2: ( rule__XCastedExpression__Group_1__0 )
        // InternalXcore.g:14518:2: rule__XCastedExpression__Group_1__0
        {
        pushFollow(FollowSets000.FOLLOW_2);
        rule__XCastedExpression__Group_1__0();

        state._fsp--;
        if (state.failed) return ;

        }
    }
    // $ANTLR end synpred210_InternalXcore

    // $ANTLR start synpred211_InternalXcore
    public final void synpred211_InternalXcore_fragment() throws RecognitionException {   
        // InternalXcore.g:14735:2: ( rule__XPostfixOperation__Group_1__0 )
        // InternalXcore.g:14735:2: rule__XPostfixOperation__Group_1__0
        {
        pushFollow(FollowSets000.FOLLOW_2);
        rule__XPostfixOperation__Group_1__0();

        state._fsp--;
        if (state.failed) return ;

        }
    }
    // $ANTLR end synpred211_InternalXcore

    // $ANTLR start synpred212_InternalXcore
    public final void synpred212_InternalXcore_fragment() throws RecognitionException {   
        // InternalXcore.g:14889:2: ( rule__XMemberFeatureCall__Alternatives_1 )
        // InternalXcore.g:14889:2: rule__XMemberFeatureCall__Alternatives_1
        {
        pushFollow(FollowSets000.FOLLOW_2);
        rule__XMemberFeatureCall__Alternatives_1();

        state._fsp--;
        if (state.failed) return ;

        }
    }
    // $ANTLR end synpred212_InternalXcore

    // $ANTLR start synpred214_InternalXcore
    public final void synpred214_InternalXcore_fragment() throws RecognitionException {   
        // InternalXcore.g:15225:2: ( rule__XMemberFeatureCall__Group_1_1_3__0 )
        // InternalXcore.g:15225:2: rule__XMemberFeatureCall__Group_1_1_3__0
        {
        pushFollow(FollowSets000.FOLLOW_2);
        rule__XMemberFeatureCall__Group_1_1_3__0();

        state._fsp--;
        if (state.failed) return ;

        }
    }
    // $ANTLR end synpred214_InternalXcore

    // $ANTLR start synpred215_InternalXcore
    public final void synpred215_InternalXcore_fragment() throws RecognitionException {   
        // InternalXcore.g:15253:2: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )
        // InternalXcore.g:15253:2: rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4
        {
        pushFollow(FollowSets000.FOLLOW_2);
        rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4();

        state._fsp--;
        if (state.failed) return ;

        }
    }
    // $ANTLR end synpred215_InternalXcore

    // $ANTLR start synpred223_InternalXcore
    public final void synpred223_InternalXcore_fragment() throws RecognitionException {   
        // InternalXcore.g:16394:2: ( rule__XClosure__Group_1__0 )
        // InternalXcore.g:16394:2: rule__XClosure__Group_1__0
        {
        pushFollow(FollowSets000.FOLLOW_2);
        rule__XClosure__Group_1__0();

        state._fsp--;
        if (state.failed) return ;

        }
    }
    // $ANTLR end synpred223_InternalXcore

    // $ANTLR start synpred230_InternalXcore
    public final void synpred230_InternalXcore_fragment() throws RecognitionException {   
        // InternalXcore.g:17512:2: ( rule__XIfExpression__Group_6__0 )
        // InternalXcore.g:17512:2: rule__XIfExpression__Group_6__0
        {
        pushFollow(FollowSets000.FOLLOW_2);
        rule__XIfExpression__Group_6__0();

        state._fsp--;
        if (state.failed) return ;

        }
    }
    // $ANTLR end synpred230_InternalXcore

    // $ANTLR start synpred233_InternalXcore
    public final void synpred233_InternalXcore_fragment() throws RecognitionException {   
        // InternalXcore.g:18062:2: ( rule__XSwitchExpression__Group_2_1_0__0 )
        // InternalXcore.g:18062:2: rule__XSwitchExpression__Group_2_1_0__0
        {
        pushFollow(FollowSets000.FOLLOW_2);
        rule__XSwitchExpression__Group_2_1_0__0();

        state._fsp--;
        if (state.failed) return ;

        }
    }
    // $ANTLR end synpred233_InternalXcore

    // $ANTLR start synpred244_InternalXcore
    public final void synpred244_InternalXcore_fragment() throws RecognitionException {   
        // InternalXcore.g:20358:2: ( rule__XFeatureCall__Group_3__0 )
        // InternalXcore.g:20358:2: rule__XFeatureCall__Group_3__0
        {
        pushFollow(FollowSets000.FOLLOW_2);
        rule__XFeatureCall__Group_3__0();

        state._fsp--;
        if (state.failed) return ;

        }
    }
    // $ANTLR end synpred244_InternalXcore

    // $ANTLR start synpred245_InternalXcore
    public final void synpred245_InternalXcore_fragment() throws RecognitionException {   
        // InternalXcore.g:20386:2: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )
        // InternalXcore.g:20386:2: rule__XFeatureCall__FeatureCallArgumentsAssignment_4
        {
        pushFollow(FollowSets000.FOLLOW_2);
        rule__XFeatureCall__FeatureCallArgumentsAssignment_4();

        state._fsp--;
        if (state.failed) return ;

        }
    }
    // $ANTLR end synpred245_InternalXcore

    // $ANTLR start synpred249_InternalXcore
    public final void synpred249_InternalXcore_fragment() throws RecognitionException {   
        // InternalXcore.g:20924:2: ( rule__XConstructorCall__Group_3__0 )
        // InternalXcore.g:20924:2: rule__XConstructorCall__Group_3__0
        {
        pushFollow(FollowSets000.FOLLOW_2);
        rule__XConstructorCall__Group_3__0();

        state._fsp--;
        if (state.failed) return ;

        }
    }
    // $ANTLR end synpred249_InternalXcore

    // $ANTLR start synpred250_InternalXcore
    public final void synpred250_InternalXcore_fragment() throws RecognitionException {   
        // InternalXcore.g:20953:2: ( rule__XConstructorCall__Group_4__0 )
        // InternalXcore.g:20953:2: rule__XConstructorCall__Group_4__0
        {
        pushFollow(FollowSets000.FOLLOW_2);
        rule__XConstructorCall__Group_4__0();

        state._fsp--;
        if (state.failed) return ;

        }
    }
    // $ANTLR end synpred250_InternalXcore

    // $ANTLR start synpred251_InternalXcore
    public final void synpred251_InternalXcore_fragment() throws RecognitionException {   
        // InternalXcore.g:20981:2: ( rule__XConstructorCall__ArgumentsAssignment_5 )
        // InternalXcore.g:20981:2: rule__XConstructorCall__ArgumentsAssignment_5
        {
        pushFollow(FollowSets000.FOLLOW_2);
        rule__XConstructorCall__ArgumentsAssignment_5();

        state._fsp--;
        if (state.failed) return ;

        }
    }
    // $ANTLR end synpred251_InternalXcore

    // $ANTLR start synpred256_InternalXcore
    public final void synpred256_InternalXcore_fragment() throws RecognitionException {   
        // InternalXcore.g:22034:2: ( rule__XReturnExpression__ExpressionAssignment_2 )
        // InternalXcore.g:22034:2: rule__XReturnExpression__ExpressionAssignment_2
        {
        pushFollow(FollowSets000.FOLLOW_2);
        rule__XReturnExpression__ExpressionAssignment_2();

        state._fsp--;
        if (state.failed) return ;

        }
    }
    // $ANTLR end synpred256_InternalXcore

    // $ANTLR start synpred257_InternalXcore
    public final void synpred257_InternalXcore_fragment() throws RecognitionException {   
        // InternalXcore.g:22202:2: ( rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0 )
        // InternalXcore.g:22202:2: rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0
        {
        pushFollow(FollowSets000.FOLLOW_2);
        rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0();

        state._fsp--;
        if (state.failed) return ;

        }
    }
    // $ANTLR end synpred257_InternalXcore

    // $ANTLR start synpred258_InternalXcore
    public final void synpred258_InternalXcore_fragment() throws RecognitionException {   
        // InternalXcore.g:22231:2: ( rule__XTryCatchFinallyExpression__Group_3_0_1__0 )
        // InternalXcore.g:22231:2: rule__XTryCatchFinallyExpression__Group_3_0_1__0
        {
        pushFollow(FollowSets000.FOLLOW_2);
        rule__XTryCatchFinallyExpression__Group_3_0_1__0();

        state._fsp--;
        if (state.failed) return ;

        }
    }
    // $ANTLR end synpred258_InternalXcore

    // $ANTLR start synpred259_InternalXcore
    public final void synpred259_InternalXcore_fragment() throws RecognitionException {   
        // InternalXcore.g:22831:2: ( rule__QualifiedName__Group_1__0 )
        // InternalXcore.g:22831:2: rule__QualifiedName__Group_1__0
        {
        pushFollow(FollowSets000.FOLLOW_2);
        rule__QualifiedName__Group_1__0();

        state._fsp--;
        if (state.failed) return ;

        }
    }
    // $ANTLR end synpred259_InternalXcore

    // $ANTLR start synpred261_InternalXcore
    public final void synpred261_InternalXcore_fragment() throws RecognitionException {   
        // InternalXcore.g:23080:2: ( rule__JvmTypeReference__Group_0_1__0 )
        // InternalXcore.g:23080:2: rule__JvmTypeReference__Group_0_1__0
        {
        pushFollow(FollowSets000.FOLLOW_2);
        rule__JvmTypeReference__Group_0_1__0();

        state._fsp--;
        if (state.failed) return ;

        }
    }
    // $ANTLR end synpred261_InternalXcore

    // $ANTLR start synpred265_InternalXcore
    public final void synpred265_InternalXcore_fragment() throws RecognitionException {   
        // InternalXcore.g:23613:2: ( rule__JvmParameterizedTypeReference__Group_1__0 )
        // InternalXcore.g:23613:2: rule__JvmParameterizedTypeReference__Group_1__0
        {
        pushFollow(FollowSets000.FOLLOW_2);
        rule__JvmParameterizedTypeReference__Group_1__0();

        state._fsp--;
        if (state.failed) return ;

        }
    }
    // $ANTLR end synpred265_InternalXcore

    // $ANTLR start synpred267_InternalXcore
    public final void synpred267_InternalXcore_fragment() throws RecognitionException {   
        // InternalXcore.g:23765:2: ( rule__JvmParameterizedTypeReference__Group_1_4__0 )
        // InternalXcore.g:23765:2: rule__JvmParameterizedTypeReference__Group_1_4__0
        {
        pushFollow(FollowSets000.FOLLOW_2);
        rule__JvmParameterizedTypeReference__Group_1_4__0();

        state._fsp--;
        if (state.failed) return ;

        }
    }
    // $ANTLR end synpred267_InternalXcore

    // $ANTLR start synpred268_InternalXcore
    public final void synpred268_InternalXcore_fragment() throws RecognitionException {   
        // InternalXcore.g:23924:2: ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )
        // InternalXcore.g:23924:2: rule__JvmParameterizedTypeReference__Group_1_4_2__0
        {
        pushFollow(FollowSets000.FOLLOW_2);
        rule__JvmParameterizedTypeReference__Group_1_4_2__0();

        state._fsp--;
        if (state.failed) return ;

        }
    }
    // $ANTLR end synpred268_InternalXcore

    // $ANTLR start synpred275_InternalXcore
    public final void synpred275_InternalXcore_fragment() throws RecognitionException {   
        // InternalXcore.g:25082:2: ( rule__XDataType__UnorderedGroup_6__0 )
        // InternalXcore.g:25082:2: rule__XDataType__UnorderedGroup_6__0
        {
        pushFollow(FollowSets000.FOLLOW_2);
        rule__XDataType__UnorderedGroup_6__0();

        state._fsp--;
        if (state.failed) return ;

        }
    }
    // $ANTLR end synpred275_InternalXcore

    // $ANTLR start synpred276_InternalXcore
    public final void synpred276_InternalXcore_fragment() throws RecognitionException {   
        // InternalXcore.g:25100:4: ( ({...}? => ( ( ( rule__XDataType__Group_6_0__0 ) ) ) ) )
        // InternalXcore.g:25100:4: ({...}? => ( ( ( rule__XDataType__Group_6_0__0 ) ) ) )
        {
        // InternalXcore.g:25100:4: ({...}? => ( ( ( rule__XDataType__Group_6_0__0 ) ) ) )
        // InternalXcore.g:25101:5: {...}? => ( ( ( rule__XDataType__Group_6_0__0 ) ) )
        {
        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getXDataTypeAccess().getUnorderedGroup_6(), 0) ) {
            if (state.backtracking>0) {state.failed=true; return ;}
            throw new FailedPredicateException(input, "synpred276_InternalXcore", "getUnorderedGroupHelper().canSelect(grammarAccess.getXDataTypeAccess().getUnorderedGroup_6(), 0)");
        }
        // InternalXcore.g:25101:106: ( ( ( rule__XDataType__Group_6_0__0 ) ) )
        // InternalXcore.g:25102:6: ( ( rule__XDataType__Group_6_0__0 ) )
        {
        getUnorderedGroupHelper().select(grammarAccess.getXDataTypeAccess().getUnorderedGroup_6(), 0);
        // InternalXcore.g:25108:6: ( ( rule__XDataType__Group_6_0__0 ) )
        // InternalXcore.g:25110:7: ( rule__XDataType__Group_6_0__0 )
        {
        if ( state.backtracking==0 ) {
           before(grammarAccess.getXDataTypeAccess().getGroup_6_0()); 
        }
        // InternalXcore.g:25111:7: ( rule__XDataType__Group_6_0__0 )
        // InternalXcore.g:25111:8: rule__XDataType__Group_6_0__0
        {
        pushFollow(FollowSets000.FOLLOW_2);
        rule__XDataType__Group_6_0__0();

        state._fsp--;
        if (state.failed) return ;

        }


        }


        }


        }


        }
    }
    // $ANTLR end synpred276_InternalXcore

    // $ANTLR start synpred277_InternalXcore
    public final void synpred277_InternalXcore_fragment() throws RecognitionException {   
        // InternalXcore.g:25149:2: ( rule__XDataType__UnorderedGroup_6__1 )
        // InternalXcore.g:25149:2: rule__XDataType__UnorderedGroup_6__1
        {
        pushFollow(FollowSets000.FOLLOW_2);
        rule__XDataType__UnorderedGroup_6__1();

        state._fsp--;
        if (state.failed) return ;

        }
    }
    // $ANTLR end synpred277_InternalXcore

    // $ANTLR start synpred278_InternalXcore
    public final void synpred278_InternalXcore_fragment() throws RecognitionException {   
        // InternalXcore.g:25178:2: ( rule__XAttribute__UnorderedGroup_2__0 )
        // InternalXcore.g:25178:2: rule__XAttribute__UnorderedGroup_2__0
        {
        pushFollow(FollowSets000.FOLLOW_2);
        rule__XAttribute__UnorderedGroup_2__0();

        state._fsp--;
        if (state.failed) return ;

        }
    }
    // $ANTLR end synpred278_InternalXcore

    // $ANTLR start synpred279_InternalXcore
    public final void synpred279_InternalXcore_fragment() throws RecognitionException {   
        // InternalXcore.g:25196:4: ( ({...}? => ( ( ( rule__XAttribute__UnorderedAssignment_2_0 ) ) ) ) )
        // InternalXcore.g:25196:4: ({...}? => ( ( ( rule__XAttribute__UnorderedAssignment_2_0 ) ) ) )
        {
        // InternalXcore.g:25196:4: ({...}? => ( ( ( rule__XAttribute__UnorderedAssignment_2_0 ) ) ) )
        // InternalXcore.g:25197:5: {...}? => ( ( ( rule__XAttribute__UnorderedAssignment_2_0 ) ) )
        {
        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 0) ) {
            if (state.backtracking>0) {state.failed=true; return ;}
            throw new FailedPredicateException(input, "synpred279_InternalXcore", "getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 0)");
        }
        // InternalXcore.g:25197:107: ( ( ( rule__XAttribute__UnorderedAssignment_2_0 ) ) )
        // InternalXcore.g:25198:6: ( ( rule__XAttribute__UnorderedAssignment_2_0 ) )
        {
        getUnorderedGroupHelper().select(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 0);
        // InternalXcore.g:25204:6: ( ( rule__XAttribute__UnorderedAssignment_2_0 ) )
        // InternalXcore.g:25206:7: ( rule__XAttribute__UnorderedAssignment_2_0 )
        {
        if ( state.backtracking==0 ) {
           before(grammarAccess.getXAttributeAccess().getUnorderedAssignment_2_0()); 
        }
        // InternalXcore.g:25207:7: ( rule__XAttribute__UnorderedAssignment_2_0 )
        // InternalXcore.g:25207:8: rule__XAttribute__UnorderedAssignment_2_0
        {
        pushFollow(FollowSets000.FOLLOW_2);
        rule__XAttribute__UnorderedAssignment_2_0();

        state._fsp--;
        if (state.failed) return ;

        }


        }


        }


        }


        }
    }
    // $ANTLR end synpred279_InternalXcore

    // $ANTLR start synpred280_InternalXcore
    public final void synpred280_InternalXcore_fragment() throws RecognitionException {   
        // InternalXcore.g:25213:4: ( ({...}? => ( ( ( rule__XAttribute__UniqueAssignment_2_1 ) ) ) ) )
        // InternalXcore.g:25213:4: ({...}? => ( ( ( rule__XAttribute__UniqueAssignment_2_1 ) ) ) )
        {
        // InternalXcore.g:25213:4: ({...}? => ( ( ( rule__XAttribute__UniqueAssignment_2_1 ) ) ) )
        // InternalXcore.g:25214:5: {...}? => ( ( ( rule__XAttribute__UniqueAssignment_2_1 ) ) )
        {
        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 1) ) {
            if (state.backtracking>0) {state.failed=true; return ;}
            throw new FailedPredicateException(input, "synpred280_InternalXcore", "getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 1)");
        }
        // InternalXcore.g:25214:107: ( ( ( rule__XAttribute__UniqueAssignment_2_1 ) ) )
        // InternalXcore.g:25215:6: ( ( rule__XAttribute__UniqueAssignment_2_1 ) )
        {
        getUnorderedGroupHelper().select(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 1);
        // InternalXcore.g:25221:6: ( ( rule__XAttribute__UniqueAssignment_2_1 ) )
        // InternalXcore.g:25223:7: ( rule__XAttribute__UniqueAssignment_2_1 )
        {
        if ( state.backtracking==0 ) {
           before(grammarAccess.getXAttributeAccess().getUniqueAssignment_2_1()); 
        }
        // InternalXcore.g:25224:7: ( rule__XAttribute__UniqueAssignment_2_1 )
        // InternalXcore.g:25224:8: rule__XAttribute__UniqueAssignment_2_1
        {
        pushFollow(FollowSets000.FOLLOW_2);
        rule__XAttribute__UniqueAssignment_2_1();

        state._fsp--;
        if (state.failed) return ;

        }


        }


        }


        }


        }
    }
    // $ANTLR end synpred280_InternalXcore

    // $ANTLR start synpred281_InternalXcore
    public final void synpred281_InternalXcore_fragment() throws RecognitionException {   
        // InternalXcore.g:25230:4: ( ({...}? => ( ( ( rule__XAttribute__ReadonlyAssignment_2_2 ) ) ) ) )
        // InternalXcore.g:25230:4: ({...}? => ( ( ( rule__XAttribute__ReadonlyAssignment_2_2 ) ) ) )
        {
        // InternalXcore.g:25230:4: ({...}? => ( ( ( rule__XAttribute__ReadonlyAssignment_2_2 ) ) ) )
        // InternalXcore.g:25231:5: {...}? => ( ( ( rule__XAttribute__ReadonlyAssignment_2_2 ) ) )
        {
        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 2) ) {
            if (state.backtracking>0) {state.failed=true; return ;}
            throw new FailedPredicateException(input, "synpred281_InternalXcore", "getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 2)");
        }
        // InternalXcore.g:25231:107: ( ( ( rule__XAttribute__ReadonlyAssignment_2_2 ) ) )
        // InternalXcore.g:25232:6: ( ( rule__XAttribute__ReadonlyAssignment_2_2 ) )
        {
        getUnorderedGroupHelper().select(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 2);
        // InternalXcore.g:25238:6: ( ( rule__XAttribute__ReadonlyAssignment_2_2 ) )
        // InternalXcore.g:25240:7: ( rule__XAttribute__ReadonlyAssignment_2_2 )
        {
        if ( state.backtracking==0 ) {
           before(grammarAccess.getXAttributeAccess().getReadonlyAssignment_2_2()); 
        }
        // InternalXcore.g:25241:7: ( rule__XAttribute__ReadonlyAssignment_2_2 )
        // InternalXcore.g:25241:8: rule__XAttribute__ReadonlyAssignment_2_2
        {
        pushFollow(FollowSets000.FOLLOW_2);
        rule__XAttribute__ReadonlyAssignment_2_2();

        state._fsp--;
        if (state.failed) return ;

        }


        }


        }


        }


        }
    }
    // $ANTLR end synpred281_InternalXcore

    // $ANTLR start synpred282_InternalXcore
    public final void synpred282_InternalXcore_fragment() throws RecognitionException {   
        // InternalXcore.g:25247:4: ( ({...}? => ( ( ( rule__XAttribute__TransientAssignment_2_3 ) ) ) ) )
        // InternalXcore.g:25247:4: ({...}? => ( ( ( rule__XAttribute__TransientAssignment_2_3 ) ) ) )
        {
        // InternalXcore.g:25247:4: ({...}? => ( ( ( rule__XAttribute__TransientAssignment_2_3 ) ) ) )
        // InternalXcore.g:25248:5: {...}? => ( ( ( rule__XAttribute__TransientAssignment_2_3 ) ) )
        {
        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 3) ) {
            if (state.backtracking>0) {state.failed=true; return ;}
            throw new FailedPredicateException(input, "synpred282_InternalXcore", "getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 3)");
        }
        // InternalXcore.g:25248:107: ( ( ( rule__XAttribute__TransientAssignment_2_3 ) ) )
        // InternalXcore.g:25249:6: ( ( rule__XAttribute__TransientAssignment_2_3 ) )
        {
        getUnorderedGroupHelper().select(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 3);
        // InternalXcore.g:25255:6: ( ( rule__XAttribute__TransientAssignment_2_3 ) )
        // InternalXcore.g:25257:7: ( rule__XAttribute__TransientAssignment_2_3 )
        {
        if ( state.backtracking==0 ) {
           before(grammarAccess.getXAttributeAccess().getTransientAssignment_2_3()); 
        }
        // InternalXcore.g:25258:7: ( rule__XAttribute__TransientAssignment_2_3 )
        // InternalXcore.g:25258:8: rule__XAttribute__TransientAssignment_2_3
        {
        pushFollow(FollowSets000.FOLLOW_2);
        rule__XAttribute__TransientAssignment_2_3();

        state._fsp--;
        if (state.failed) return ;

        }


        }


        }


        }


        }
    }
    // $ANTLR end synpred282_InternalXcore

    // $ANTLR start synpred283_InternalXcore
    public final void synpred283_InternalXcore_fragment() throws RecognitionException {   
        // InternalXcore.g:25264:4: ( ({...}? => ( ( ( rule__XAttribute__VolatileAssignment_2_4 ) ) ) ) )
        // InternalXcore.g:25264:4: ({...}? => ( ( ( rule__XAttribute__VolatileAssignment_2_4 ) ) ) )
        {
        // InternalXcore.g:25264:4: ({...}? => ( ( ( rule__XAttribute__VolatileAssignment_2_4 ) ) ) )
        // InternalXcore.g:25265:5: {...}? => ( ( ( rule__XAttribute__VolatileAssignment_2_4 ) ) )
        {
        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 4) ) {
            if (state.backtracking>0) {state.failed=true; return ;}
            throw new FailedPredicateException(input, "synpred283_InternalXcore", "getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 4)");
        }
        // InternalXcore.g:25265:107: ( ( ( rule__XAttribute__VolatileAssignment_2_4 ) ) )
        // InternalXcore.g:25266:6: ( ( rule__XAttribute__VolatileAssignment_2_4 ) )
        {
        getUnorderedGroupHelper().select(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 4);
        // InternalXcore.g:25272:6: ( ( rule__XAttribute__VolatileAssignment_2_4 ) )
        // InternalXcore.g:25274:7: ( rule__XAttribute__VolatileAssignment_2_4 )
        {
        if ( state.backtracking==0 ) {
           before(grammarAccess.getXAttributeAccess().getVolatileAssignment_2_4()); 
        }
        // InternalXcore.g:25275:7: ( rule__XAttribute__VolatileAssignment_2_4 )
        // InternalXcore.g:25275:8: rule__XAttribute__VolatileAssignment_2_4
        {
        pushFollow(FollowSets000.FOLLOW_2);
        rule__XAttribute__VolatileAssignment_2_4();

        state._fsp--;
        if (state.failed) return ;

        }


        }


        }


        }


        }
    }
    // $ANTLR end synpred283_InternalXcore

    // $ANTLR start synpred284_InternalXcore
    public final void synpred284_InternalXcore_fragment() throws RecognitionException {   
        // InternalXcore.g:25281:4: ( ({...}? => ( ( ( rule__XAttribute__UnsettableAssignment_2_5 ) ) ) ) )
        // InternalXcore.g:25281:4: ({...}? => ( ( ( rule__XAttribute__UnsettableAssignment_2_5 ) ) ) )
        {
        // InternalXcore.g:25281:4: ({...}? => ( ( ( rule__XAttribute__UnsettableAssignment_2_5 ) ) ) )
        // InternalXcore.g:25282:5: {...}? => ( ( ( rule__XAttribute__UnsettableAssignment_2_5 ) ) )
        {
        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 5) ) {
            if (state.backtracking>0) {state.failed=true; return ;}
            throw new FailedPredicateException(input, "synpred284_InternalXcore", "getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 5)");
        }
        // InternalXcore.g:25282:107: ( ( ( rule__XAttribute__UnsettableAssignment_2_5 ) ) )
        // InternalXcore.g:25283:6: ( ( rule__XAttribute__UnsettableAssignment_2_5 ) )
        {
        getUnorderedGroupHelper().select(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 5);
        // InternalXcore.g:25289:6: ( ( rule__XAttribute__UnsettableAssignment_2_5 ) )
        // InternalXcore.g:25291:7: ( rule__XAttribute__UnsettableAssignment_2_5 )
        {
        if ( state.backtracking==0 ) {
           before(grammarAccess.getXAttributeAccess().getUnsettableAssignment_2_5()); 
        }
        // InternalXcore.g:25292:7: ( rule__XAttribute__UnsettableAssignment_2_5 )
        // InternalXcore.g:25292:8: rule__XAttribute__UnsettableAssignment_2_5
        {
        pushFollow(FollowSets000.FOLLOW_2);
        rule__XAttribute__UnsettableAssignment_2_5();

        state._fsp--;
        if (state.failed) return ;

        }


        }


        }


        }


        }
    }
    // $ANTLR end synpred284_InternalXcore

    // $ANTLR start synpred285_InternalXcore
    public final void synpred285_InternalXcore_fragment() throws RecognitionException {   
        // InternalXcore.g:25298:4: ( ({...}? => ( ( ( rule__XAttribute__DerivedAssignment_2_6 ) ) ) ) )
        // InternalXcore.g:25298:4: ({...}? => ( ( ( rule__XAttribute__DerivedAssignment_2_6 ) ) ) )
        {
        // InternalXcore.g:25298:4: ({...}? => ( ( ( rule__XAttribute__DerivedAssignment_2_6 ) ) ) )
        // InternalXcore.g:25299:5: {...}? => ( ( ( rule__XAttribute__DerivedAssignment_2_6 ) ) )
        {
        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 6) ) {
            if (state.backtracking>0) {state.failed=true; return ;}
            throw new FailedPredicateException(input, "synpred285_InternalXcore", "getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 6)");
        }
        // InternalXcore.g:25299:107: ( ( ( rule__XAttribute__DerivedAssignment_2_6 ) ) )
        // InternalXcore.g:25300:6: ( ( rule__XAttribute__DerivedAssignment_2_6 ) )
        {
        getUnorderedGroupHelper().select(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 6);
        // InternalXcore.g:25306:6: ( ( rule__XAttribute__DerivedAssignment_2_6 ) )
        // InternalXcore.g:25308:7: ( rule__XAttribute__DerivedAssignment_2_6 )
        {
        if ( state.backtracking==0 ) {
           before(grammarAccess.getXAttributeAccess().getDerivedAssignment_2_6()); 
        }
        // InternalXcore.g:25309:7: ( rule__XAttribute__DerivedAssignment_2_6 )
        // InternalXcore.g:25309:8: rule__XAttribute__DerivedAssignment_2_6
        {
        pushFollow(FollowSets000.FOLLOW_2);
        rule__XAttribute__DerivedAssignment_2_6();

        state._fsp--;
        if (state.failed) return ;

        }


        }


        }


        }


        }
    }
    // $ANTLR end synpred285_InternalXcore

    // $ANTLR start synpred286_InternalXcore
    public final void synpred286_InternalXcore_fragment() throws RecognitionException {   
        // InternalXcore.g:25347:2: ( rule__XAttribute__UnorderedGroup_2__1 )
        // InternalXcore.g:25347:2: rule__XAttribute__UnorderedGroup_2__1
        {
        pushFollow(FollowSets000.FOLLOW_2);
        rule__XAttribute__UnorderedGroup_2__1();

        state._fsp--;
        if (state.failed) return ;

        }
    }
    // $ANTLR end synpred286_InternalXcore

    // $ANTLR start synpred287_InternalXcore
    public final void synpred287_InternalXcore_fragment() throws RecognitionException {   
        // InternalXcore.g:25360:2: ( rule__XAttribute__UnorderedGroup_2__2 )
        // InternalXcore.g:25360:2: rule__XAttribute__UnorderedGroup_2__2
        {
        pushFollow(FollowSets000.FOLLOW_2);
        rule__XAttribute__UnorderedGroup_2__2();

        state._fsp--;
        if (state.failed) return ;

        }
    }
    // $ANTLR end synpred287_InternalXcore

    // $ANTLR start synpred288_InternalXcore
    public final void synpred288_InternalXcore_fragment() throws RecognitionException {   
        // InternalXcore.g:25373:2: ( rule__XAttribute__UnorderedGroup_2__3 )
        // InternalXcore.g:25373:2: rule__XAttribute__UnorderedGroup_2__3
        {
        pushFollow(FollowSets000.FOLLOW_2);
        rule__XAttribute__UnorderedGroup_2__3();

        state._fsp--;
        if (state.failed) return ;

        }
    }
    // $ANTLR end synpred288_InternalXcore

    // $ANTLR start synpred289_InternalXcore
    public final void synpred289_InternalXcore_fragment() throws RecognitionException {   
        // InternalXcore.g:25386:2: ( rule__XAttribute__UnorderedGroup_2__4 )
        // InternalXcore.g:25386:2: rule__XAttribute__UnorderedGroup_2__4
        {
        pushFollow(FollowSets000.FOLLOW_2);
        rule__XAttribute__UnorderedGroup_2__4();

        state._fsp--;
        if (state.failed) return ;

        }
    }
    // $ANTLR end synpred289_InternalXcore

    // $ANTLR start synpred290_InternalXcore
    public final void synpred290_InternalXcore_fragment() throws RecognitionException {   
        // InternalXcore.g:25399:2: ( rule__XAttribute__UnorderedGroup_2__5 )
        // InternalXcore.g:25399:2: rule__XAttribute__UnorderedGroup_2__5
        {
        pushFollow(FollowSets000.FOLLOW_2);
        rule__XAttribute__UnorderedGroup_2__5();

        state._fsp--;
        if (state.failed) return ;

        }
    }
    // $ANTLR end synpred290_InternalXcore

    // $ANTLR start synpred291_InternalXcore
    public final void synpred291_InternalXcore_fragment() throws RecognitionException {   
        // InternalXcore.g:25412:2: ( rule__XAttribute__UnorderedGroup_2__6 )
        // InternalXcore.g:25412:2: rule__XAttribute__UnorderedGroup_2__6
        {
        pushFollow(FollowSets000.FOLLOW_2);
        rule__XAttribute__UnorderedGroup_2__6();

        state._fsp--;
        if (state.failed) return ;

        }
    }
    // $ANTLR end synpred291_InternalXcore

    // $ANTLR start synpred292_InternalXcore
    public final void synpred292_InternalXcore_fragment() throws RecognitionException {   
        // InternalXcore.g:25425:2: ( rule__XAttribute__UnorderedGroup_2__7 )
        // InternalXcore.g:25425:2: rule__XAttribute__UnorderedGroup_2__7
        {
        pushFollow(FollowSets000.FOLLOW_2);
        rule__XAttribute__UnorderedGroup_2__7();

        state._fsp--;
        if (state.failed) return ;

        }
    }
    // $ANTLR end synpred292_InternalXcore

    // $ANTLR start synpred293_InternalXcore
    public final void synpred293_InternalXcore_fragment() throws RecognitionException {   
        // InternalXcore.g:25466:2: ( rule__XAttribute__UnorderedGroup_7__0 )
        // InternalXcore.g:25466:2: rule__XAttribute__UnorderedGroup_7__0
        {
        pushFollow(FollowSets000.FOLLOW_2);
        rule__XAttribute__UnorderedGroup_7__0();

        state._fsp--;
        if (state.failed) return ;

        }
    }
    // $ANTLR end synpred293_InternalXcore

    // $ANTLR start synpred294_InternalXcore
    public final void synpred294_InternalXcore_fragment() throws RecognitionException {   
        // InternalXcore.g:25484:4: ( ({...}? => ( ( ( rule__XAttribute__Group_7_0__0 ) ) ) ) )
        // InternalXcore.g:25484:4: ({...}? => ( ( ( rule__XAttribute__Group_7_0__0 ) ) ) )
        {
        // InternalXcore.g:25484:4: ({...}? => ( ( ( rule__XAttribute__Group_7_0__0 ) ) ) )
        // InternalXcore.g:25485:5: {...}? => ( ( ( rule__XAttribute__Group_7_0__0 ) ) )
        {
        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_7(), 0) ) {
            if (state.backtracking>0) {state.failed=true; return ;}
            throw new FailedPredicateException(input, "synpred294_InternalXcore", "getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_7(), 0)");
        }
        // InternalXcore.g:25485:107: ( ( ( rule__XAttribute__Group_7_0__0 ) ) )
        // InternalXcore.g:25486:6: ( ( rule__XAttribute__Group_7_0__0 ) )
        {
        getUnorderedGroupHelper().select(grammarAccess.getXAttributeAccess().getUnorderedGroup_7(), 0);
        // InternalXcore.g:25492:6: ( ( rule__XAttribute__Group_7_0__0 ) )
        // InternalXcore.g:25494:7: ( rule__XAttribute__Group_7_0__0 )
        {
        if ( state.backtracking==0 ) {
           before(grammarAccess.getXAttributeAccess().getGroup_7_0()); 
        }
        // InternalXcore.g:25495:7: ( rule__XAttribute__Group_7_0__0 )
        // InternalXcore.g:25495:8: rule__XAttribute__Group_7_0__0
        {
        pushFollow(FollowSets000.FOLLOW_2);
        rule__XAttribute__Group_7_0__0();

        state._fsp--;
        if (state.failed) return ;

        }


        }


        }


        }


        }
    }
    // $ANTLR end synpred294_InternalXcore

    // $ANTLR start synpred295_InternalXcore
    public final void synpred295_InternalXcore_fragment() throws RecognitionException {   
        // InternalXcore.g:25501:4: ( ({...}? => ( ( ( rule__XAttribute__Group_7_1__0 ) ) ) ) )
        // InternalXcore.g:25501:4: ({...}? => ( ( ( rule__XAttribute__Group_7_1__0 ) ) ) )
        {
        // InternalXcore.g:25501:4: ({...}? => ( ( ( rule__XAttribute__Group_7_1__0 ) ) ) )
        // InternalXcore.g:25502:5: {...}? => ( ( ( rule__XAttribute__Group_7_1__0 ) ) )
        {
        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_7(), 1) ) {
            if (state.backtracking>0) {state.failed=true; return ;}
            throw new FailedPredicateException(input, "synpred295_InternalXcore", "getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_7(), 1)");
        }
        // InternalXcore.g:25502:107: ( ( ( rule__XAttribute__Group_7_1__0 ) ) )
        // InternalXcore.g:25503:6: ( ( rule__XAttribute__Group_7_1__0 ) )
        {
        getUnorderedGroupHelper().select(grammarAccess.getXAttributeAccess().getUnorderedGroup_7(), 1);
        // InternalXcore.g:25509:6: ( ( rule__XAttribute__Group_7_1__0 ) )
        // InternalXcore.g:25511:7: ( rule__XAttribute__Group_7_1__0 )
        {
        if ( state.backtracking==0 ) {
           before(grammarAccess.getXAttributeAccess().getGroup_7_1()); 
        }
        // InternalXcore.g:25512:7: ( rule__XAttribute__Group_7_1__0 )
        // InternalXcore.g:25512:8: rule__XAttribute__Group_7_1__0
        {
        pushFollow(FollowSets000.FOLLOW_2);
        rule__XAttribute__Group_7_1__0();

        state._fsp--;
        if (state.failed) return ;

        }


        }


        }


        }


        }
    }
    // $ANTLR end synpred295_InternalXcore

    // $ANTLR start synpred296_InternalXcore
    public final void synpred296_InternalXcore_fragment() throws RecognitionException {   
        // InternalXcore.g:25518:4: ( ({...}? => ( ( ( rule__XAttribute__Group_7_2__0 ) ) ) ) )
        // InternalXcore.g:25518:4: ({...}? => ( ( ( rule__XAttribute__Group_7_2__0 ) ) ) )
        {
        // InternalXcore.g:25518:4: ({...}? => ( ( ( rule__XAttribute__Group_7_2__0 ) ) ) )
        // InternalXcore.g:25519:5: {...}? => ( ( ( rule__XAttribute__Group_7_2__0 ) ) )
        {
        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_7(), 2) ) {
            if (state.backtracking>0) {state.failed=true; return ;}
            throw new FailedPredicateException(input, "synpred296_InternalXcore", "getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_7(), 2)");
        }
        // InternalXcore.g:25519:107: ( ( ( rule__XAttribute__Group_7_2__0 ) ) )
        // InternalXcore.g:25520:6: ( ( rule__XAttribute__Group_7_2__0 ) )
        {
        getUnorderedGroupHelper().select(grammarAccess.getXAttributeAccess().getUnorderedGroup_7(), 2);
        // InternalXcore.g:25526:6: ( ( rule__XAttribute__Group_7_2__0 ) )
        // InternalXcore.g:25528:7: ( rule__XAttribute__Group_7_2__0 )
        {
        if ( state.backtracking==0 ) {
           before(grammarAccess.getXAttributeAccess().getGroup_7_2()); 
        }
        // InternalXcore.g:25529:7: ( rule__XAttribute__Group_7_2__0 )
        // InternalXcore.g:25529:8: rule__XAttribute__Group_7_2__0
        {
        pushFollow(FollowSets000.FOLLOW_2);
        rule__XAttribute__Group_7_2__0();

        state._fsp--;
        if (state.failed) return ;

        }


        }


        }


        }


        }
    }
    // $ANTLR end synpred296_InternalXcore

    // $ANTLR start synpred297_InternalXcore
    public final void synpred297_InternalXcore_fragment() throws RecognitionException {   
        // InternalXcore.g:25567:2: ( rule__XAttribute__UnorderedGroup_7__1 )
        // InternalXcore.g:25567:2: rule__XAttribute__UnorderedGroup_7__1
        {
        pushFollow(FollowSets000.FOLLOW_2);
        rule__XAttribute__UnorderedGroup_7__1();

        state._fsp--;
        if (state.failed) return ;

        }
    }
    // $ANTLR end synpred297_InternalXcore

    // $ANTLR start synpred298_InternalXcore
    public final void synpred298_InternalXcore_fragment() throws RecognitionException {   
        // InternalXcore.g:25580:2: ( rule__XAttribute__UnorderedGroup_7__2 )
        // InternalXcore.g:25580:2: rule__XAttribute__UnorderedGroup_7__2
        {
        pushFollow(FollowSets000.FOLLOW_2);
        rule__XAttribute__UnorderedGroup_7__2();

        state._fsp--;
        if (state.failed) return ;

        }
    }
    // $ANTLR end synpred298_InternalXcore

    // $ANTLR start synpred299_InternalXcore
    public final void synpred299_InternalXcore_fragment() throws RecognitionException {   
        // InternalXcore.g:25593:2: ( rule__XAttribute__UnorderedGroup_7__3 )
        // InternalXcore.g:25593:2: rule__XAttribute__UnorderedGroup_7__3
        {
        pushFollow(FollowSets000.FOLLOW_2);
        rule__XAttribute__UnorderedGroup_7__3();

        state._fsp--;
        if (state.failed) return ;

        }
    }
    // $ANTLR end synpred299_InternalXcore

    // $ANTLR start synpred300_InternalXcore
    public final void synpred300_InternalXcore_fragment() throws RecognitionException {   
        // InternalXcore.g:25626:2: ( rule__XReference__UnorderedGroup_3__0 )
        // InternalXcore.g:25626:2: rule__XReference__UnorderedGroup_3__0
        {
        pushFollow(FollowSets000.FOLLOW_2);
        rule__XReference__UnorderedGroup_3__0();

        state._fsp--;
        if (state.failed) return ;

        }
    }
    // $ANTLR end synpred300_InternalXcore

    // $ANTLR start synpred301_InternalXcore
    public final void synpred301_InternalXcore_fragment() throws RecognitionException {   
        // InternalXcore.g:25644:4: ( ({...}? => ( ( ( rule__XReference__UnorderedAssignment_3_0 ) ) ) ) )
        // InternalXcore.g:25644:4: ({...}? => ( ( ( rule__XReference__UnorderedAssignment_3_0 ) ) ) )
        {
        // InternalXcore.g:25644:4: ({...}? => ( ( ( rule__XReference__UnorderedAssignment_3_0 ) ) ) )
        // InternalXcore.g:25645:5: {...}? => ( ( ( rule__XReference__UnorderedAssignment_3_0 ) ) )
        {
        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 0) ) {
            if (state.backtracking>0) {state.failed=true; return ;}
            throw new FailedPredicateException(input, "synpred301_InternalXcore", "getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 0)");
        }
        // InternalXcore.g:25645:107: ( ( ( rule__XReference__UnorderedAssignment_3_0 ) ) )
        // InternalXcore.g:25646:6: ( ( rule__XReference__UnorderedAssignment_3_0 ) )
        {
        getUnorderedGroupHelper().select(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 0);
        // InternalXcore.g:25652:6: ( ( rule__XReference__UnorderedAssignment_3_0 ) )
        // InternalXcore.g:25654:7: ( rule__XReference__UnorderedAssignment_3_0 )
        {
        if ( state.backtracking==0 ) {
           before(grammarAccess.getXReferenceAccess().getUnorderedAssignment_3_0()); 
        }
        // InternalXcore.g:25655:7: ( rule__XReference__UnorderedAssignment_3_0 )
        // InternalXcore.g:25655:8: rule__XReference__UnorderedAssignment_3_0
        {
        pushFollow(FollowSets000.FOLLOW_2);
        rule__XReference__UnorderedAssignment_3_0();

        state._fsp--;
        if (state.failed) return ;

        }


        }


        }


        }


        }
    }
    // $ANTLR end synpred301_InternalXcore

    // $ANTLR start synpred302_InternalXcore
    public final void synpred302_InternalXcore_fragment() throws RecognitionException {   
        // InternalXcore.g:25661:4: ( ({...}? => ( ( ( rule__XReference__UniqueAssignment_3_1 ) ) ) ) )
        // InternalXcore.g:25661:4: ({...}? => ( ( ( rule__XReference__UniqueAssignment_3_1 ) ) ) )
        {
        // InternalXcore.g:25661:4: ({...}? => ( ( ( rule__XReference__UniqueAssignment_3_1 ) ) ) )
        // InternalXcore.g:25662:5: {...}? => ( ( ( rule__XReference__UniqueAssignment_3_1 ) ) )
        {
        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 1) ) {
            if (state.backtracking>0) {state.failed=true; return ;}
            throw new FailedPredicateException(input, "synpred302_InternalXcore", "getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 1)");
        }
        // InternalXcore.g:25662:107: ( ( ( rule__XReference__UniqueAssignment_3_1 ) ) )
        // InternalXcore.g:25663:6: ( ( rule__XReference__UniqueAssignment_3_1 ) )
        {
        getUnorderedGroupHelper().select(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 1);
        // InternalXcore.g:25669:6: ( ( rule__XReference__UniqueAssignment_3_1 ) )
        // InternalXcore.g:25671:7: ( rule__XReference__UniqueAssignment_3_1 )
        {
        if ( state.backtracking==0 ) {
           before(grammarAccess.getXReferenceAccess().getUniqueAssignment_3_1()); 
        }
        // InternalXcore.g:25672:7: ( rule__XReference__UniqueAssignment_3_1 )
        // InternalXcore.g:25672:8: rule__XReference__UniqueAssignment_3_1
        {
        pushFollow(FollowSets000.FOLLOW_2);
        rule__XReference__UniqueAssignment_3_1();

        state._fsp--;
        if (state.failed) return ;

        }


        }


        }


        }


        }
    }
    // $ANTLR end synpred302_InternalXcore

    // $ANTLR start synpred303_InternalXcore
    public final void synpred303_InternalXcore_fragment() throws RecognitionException {   
        // InternalXcore.g:25678:4: ( ({...}? => ( ( ( rule__XReference__ReadonlyAssignment_3_2 ) ) ) ) )
        // InternalXcore.g:25678:4: ({...}? => ( ( ( rule__XReference__ReadonlyAssignment_3_2 ) ) ) )
        {
        // InternalXcore.g:25678:4: ({...}? => ( ( ( rule__XReference__ReadonlyAssignment_3_2 ) ) ) )
        // InternalXcore.g:25679:5: {...}? => ( ( ( rule__XReference__ReadonlyAssignment_3_2 ) ) )
        {
        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 2) ) {
            if (state.backtracking>0) {state.failed=true; return ;}
            throw new FailedPredicateException(input, "synpred303_InternalXcore", "getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 2)");
        }
        // InternalXcore.g:25679:107: ( ( ( rule__XReference__ReadonlyAssignment_3_2 ) ) )
        // InternalXcore.g:25680:6: ( ( rule__XReference__ReadonlyAssignment_3_2 ) )
        {
        getUnorderedGroupHelper().select(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 2);
        // InternalXcore.g:25686:6: ( ( rule__XReference__ReadonlyAssignment_3_2 ) )
        // InternalXcore.g:25688:7: ( rule__XReference__ReadonlyAssignment_3_2 )
        {
        if ( state.backtracking==0 ) {
           before(grammarAccess.getXReferenceAccess().getReadonlyAssignment_3_2()); 
        }
        // InternalXcore.g:25689:7: ( rule__XReference__ReadonlyAssignment_3_2 )
        // InternalXcore.g:25689:8: rule__XReference__ReadonlyAssignment_3_2
        {
        pushFollow(FollowSets000.FOLLOW_2);
        rule__XReference__ReadonlyAssignment_3_2();

        state._fsp--;
        if (state.failed) return ;

        }


        }


        }


        }


        }
    }
    // $ANTLR end synpred303_InternalXcore

    // $ANTLR start synpred304_InternalXcore
    public final void synpred304_InternalXcore_fragment() throws RecognitionException {   
        // InternalXcore.g:25695:4: ( ({...}? => ( ( ( rule__XReference__TransientAssignment_3_3 ) ) ) ) )
        // InternalXcore.g:25695:4: ({...}? => ( ( ( rule__XReference__TransientAssignment_3_3 ) ) ) )
        {
        // InternalXcore.g:25695:4: ({...}? => ( ( ( rule__XReference__TransientAssignment_3_3 ) ) ) )
        // InternalXcore.g:25696:5: {...}? => ( ( ( rule__XReference__TransientAssignment_3_3 ) ) )
        {
        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 3) ) {
            if (state.backtracking>0) {state.failed=true; return ;}
            throw new FailedPredicateException(input, "synpred304_InternalXcore", "getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 3)");
        }
        // InternalXcore.g:25696:107: ( ( ( rule__XReference__TransientAssignment_3_3 ) ) )
        // InternalXcore.g:25697:6: ( ( rule__XReference__TransientAssignment_3_3 ) )
        {
        getUnorderedGroupHelper().select(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 3);
        // InternalXcore.g:25703:6: ( ( rule__XReference__TransientAssignment_3_3 ) )
        // InternalXcore.g:25705:7: ( rule__XReference__TransientAssignment_3_3 )
        {
        if ( state.backtracking==0 ) {
           before(grammarAccess.getXReferenceAccess().getTransientAssignment_3_3()); 
        }
        // InternalXcore.g:25706:7: ( rule__XReference__TransientAssignment_3_3 )
        // InternalXcore.g:25706:8: rule__XReference__TransientAssignment_3_3
        {
        pushFollow(FollowSets000.FOLLOW_2);
        rule__XReference__TransientAssignment_3_3();

        state._fsp--;
        if (state.failed) return ;

        }


        }


        }


        }


        }
    }
    // $ANTLR end synpred304_InternalXcore

    // $ANTLR start synpred305_InternalXcore
    public final void synpred305_InternalXcore_fragment() throws RecognitionException {   
        // InternalXcore.g:25712:4: ( ({...}? => ( ( ( rule__XReference__VolatileAssignment_3_4 ) ) ) ) )
        // InternalXcore.g:25712:4: ({...}? => ( ( ( rule__XReference__VolatileAssignment_3_4 ) ) ) )
        {
        // InternalXcore.g:25712:4: ({...}? => ( ( ( rule__XReference__VolatileAssignment_3_4 ) ) ) )
        // InternalXcore.g:25713:5: {...}? => ( ( ( rule__XReference__VolatileAssignment_3_4 ) ) )
        {
        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 4) ) {
            if (state.backtracking>0) {state.failed=true; return ;}
            throw new FailedPredicateException(input, "synpred305_InternalXcore", "getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 4)");
        }
        // InternalXcore.g:25713:107: ( ( ( rule__XReference__VolatileAssignment_3_4 ) ) )
        // InternalXcore.g:25714:6: ( ( rule__XReference__VolatileAssignment_3_4 ) )
        {
        getUnorderedGroupHelper().select(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 4);
        // InternalXcore.g:25720:6: ( ( rule__XReference__VolatileAssignment_3_4 ) )
        // InternalXcore.g:25722:7: ( rule__XReference__VolatileAssignment_3_4 )
        {
        if ( state.backtracking==0 ) {
           before(grammarAccess.getXReferenceAccess().getVolatileAssignment_3_4()); 
        }
        // InternalXcore.g:25723:7: ( rule__XReference__VolatileAssignment_3_4 )
        // InternalXcore.g:25723:8: rule__XReference__VolatileAssignment_3_4
        {
        pushFollow(FollowSets000.FOLLOW_2);
        rule__XReference__VolatileAssignment_3_4();

        state._fsp--;
        if (state.failed) return ;

        }


        }


        }


        }


        }
    }
    // $ANTLR end synpred305_InternalXcore

    // $ANTLR start synpred306_InternalXcore
    public final void synpred306_InternalXcore_fragment() throws RecognitionException {   
        // InternalXcore.g:25729:4: ( ({...}? => ( ( ( rule__XReference__UnsettableAssignment_3_5 ) ) ) ) )
        // InternalXcore.g:25729:4: ({...}? => ( ( ( rule__XReference__UnsettableAssignment_3_5 ) ) ) )
        {
        // InternalXcore.g:25729:4: ({...}? => ( ( ( rule__XReference__UnsettableAssignment_3_5 ) ) ) )
        // InternalXcore.g:25730:5: {...}? => ( ( ( rule__XReference__UnsettableAssignment_3_5 ) ) )
        {
        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 5) ) {
            if (state.backtracking>0) {state.failed=true; return ;}
            throw new FailedPredicateException(input, "synpred306_InternalXcore", "getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 5)");
        }
        // InternalXcore.g:25730:107: ( ( ( rule__XReference__UnsettableAssignment_3_5 ) ) )
        // InternalXcore.g:25731:6: ( ( rule__XReference__UnsettableAssignment_3_5 ) )
        {
        getUnorderedGroupHelper().select(grammarAccess.getXReferenceAccess().getUnorderedGroup_3(), 5);
        // InternalXcore.g:25737:6: ( ( rule__XReference__UnsettableAssignment_3_5 ) )
        // InternalXcore.g:25739:7: ( rule__XReference__UnsettableAssignment_3_5 )
        {
        if ( state.backtracking==0 ) {
           before(grammarAccess.getXReferenceAccess().getUnsettableAssignment_3_5()); 
        }
        // InternalXcore.g:25740:7: ( rule__XReference__UnsettableAssignment_3_5 )
        // InternalXcore.g:25740:8: rule__XReference__UnsettableAssignment_3_5
        {
        pushFollow(FollowSets000.FOLLOW_2);
        rule__XReference__UnsettableAssignment_3_5();

        state._fsp--;
        if (state.failed) return ;

        }


        }


        }


        }


        }
    }
    // $ANTLR end synpred306_InternalXcore

    // $ANTLR start synpred307_InternalXcore
    public final void synpred307_InternalXcore_fragment() throws RecognitionException {   
        // InternalXcore.g:25778:2: ( rule__XReference__UnorderedGroup_3__1 )
        // InternalXcore.g:25778:2: rule__XReference__UnorderedGroup_3__1
        {
        pushFollow(FollowSets000.FOLLOW_2);
        rule__XReference__UnorderedGroup_3__1();

        state._fsp--;
        if (state.failed) return ;

        }
    }
    // $ANTLR end synpred307_InternalXcore

    // $ANTLR start synpred308_InternalXcore
    public final void synpred308_InternalXcore_fragment() throws RecognitionException {   
        // InternalXcore.g:25791:2: ( rule__XReference__UnorderedGroup_3__2 )
        // InternalXcore.g:25791:2: rule__XReference__UnorderedGroup_3__2
        {
        pushFollow(FollowSets000.FOLLOW_2);
        rule__XReference__UnorderedGroup_3__2();

        state._fsp--;
        if (state.failed) return ;

        }
    }
    // $ANTLR end synpred308_InternalXcore

    // $ANTLR start synpred309_InternalXcore
    public final void synpred309_InternalXcore_fragment() throws RecognitionException {   
        // InternalXcore.g:25804:2: ( rule__XReference__UnorderedGroup_3__3 )
        // InternalXcore.g:25804:2: rule__XReference__UnorderedGroup_3__3
        {
        pushFollow(FollowSets000.FOLLOW_2);
        rule__XReference__UnorderedGroup_3__3();

        state._fsp--;
        if (state.failed) return ;

        }
    }
    // $ANTLR end synpred309_InternalXcore

    // $ANTLR start synpred310_InternalXcore
    public final void synpred310_InternalXcore_fragment() throws RecognitionException {   
        // InternalXcore.g:25817:2: ( rule__XReference__UnorderedGroup_3__4 )
        // InternalXcore.g:25817:2: rule__XReference__UnorderedGroup_3__4
        {
        pushFollow(FollowSets000.FOLLOW_2);
        rule__XReference__UnorderedGroup_3__4();

        state._fsp--;
        if (state.failed) return ;

        }
    }
    // $ANTLR end synpred310_InternalXcore

    // $ANTLR start synpred311_InternalXcore
    public final void synpred311_InternalXcore_fragment() throws RecognitionException {   
        // InternalXcore.g:25830:2: ( rule__XReference__UnorderedGroup_3__5 )
        // InternalXcore.g:25830:2: rule__XReference__UnorderedGroup_3__5
        {
        pushFollow(FollowSets000.FOLLOW_2);
        rule__XReference__UnorderedGroup_3__5();

        state._fsp--;
        if (state.failed) return ;

        }
    }
    // $ANTLR end synpred311_InternalXcore

    // $ANTLR start synpred312_InternalXcore
    public final void synpred312_InternalXcore_fragment() throws RecognitionException {   
        // InternalXcore.g:25843:2: ( rule__XReference__UnorderedGroup_3__6 )
        // InternalXcore.g:25843:2: rule__XReference__UnorderedGroup_3__6
        {
        pushFollow(FollowSets000.FOLLOW_2);
        rule__XReference__UnorderedGroup_3__6();

        state._fsp--;
        if (state.failed) return ;

        }
    }
    // $ANTLR end synpred312_InternalXcore

    // $ANTLR start synpred313_InternalXcore
    public final void synpred313_InternalXcore_fragment() throws RecognitionException {   
        // InternalXcore.g:25882:2: ( rule__XReference__UnorderedGroup_9__0 )
        // InternalXcore.g:25882:2: rule__XReference__UnorderedGroup_9__0
        {
        pushFollow(FollowSets000.FOLLOW_2);
        rule__XReference__UnorderedGroup_9__0();

        state._fsp--;
        if (state.failed) return ;

        }
    }
    // $ANTLR end synpred313_InternalXcore

    // $ANTLR start synpred314_InternalXcore
    public final void synpred314_InternalXcore_fragment() throws RecognitionException {   
        // InternalXcore.g:25900:4: ( ({...}? => ( ( ( rule__XReference__Group_9_0__0 ) ) ) ) )
        // InternalXcore.g:25900:4: ({...}? => ( ( ( rule__XReference__Group_9_0__0 ) ) ) )
        {
        // InternalXcore.g:25900:4: ({...}? => ( ( ( rule__XReference__Group_9_0__0 ) ) ) )
        // InternalXcore.g:25901:5: {...}? => ( ( ( rule__XReference__Group_9_0__0 ) ) )
        {
        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_9(), 0) ) {
            if (state.backtracking>0) {state.failed=true; return ;}
            throw new FailedPredicateException(input, "synpred314_InternalXcore", "getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_9(), 0)");
        }
        // InternalXcore.g:25901:107: ( ( ( rule__XReference__Group_9_0__0 ) ) )
        // InternalXcore.g:25902:6: ( ( rule__XReference__Group_9_0__0 ) )
        {
        getUnorderedGroupHelper().select(grammarAccess.getXReferenceAccess().getUnorderedGroup_9(), 0);
        // InternalXcore.g:25908:6: ( ( rule__XReference__Group_9_0__0 ) )
        // InternalXcore.g:25910:7: ( rule__XReference__Group_9_0__0 )
        {
        if ( state.backtracking==0 ) {
           before(grammarAccess.getXReferenceAccess().getGroup_9_0()); 
        }
        // InternalXcore.g:25911:7: ( rule__XReference__Group_9_0__0 )
        // InternalXcore.g:25911:8: rule__XReference__Group_9_0__0
        {
        pushFollow(FollowSets000.FOLLOW_2);
        rule__XReference__Group_9_0__0();

        state._fsp--;
        if (state.failed) return ;

        }


        }


        }


        }


        }
    }
    // $ANTLR end synpred314_InternalXcore

    // $ANTLR start synpred315_InternalXcore
    public final void synpred315_InternalXcore_fragment() throws RecognitionException {   
        // InternalXcore.g:25917:4: ( ({...}? => ( ( ( rule__XReference__Group_9_1__0 ) ) ) ) )
        // InternalXcore.g:25917:4: ({...}? => ( ( ( rule__XReference__Group_9_1__0 ) ) ) )
        {
        // InternalXcore.g:25917:4: ({...}? => ( ( ( rule__XReference__Group_9_1__0 ) ) ) )
        // InternalXcore.g:25918:5: {...}? => ( ( ( rule__XReference__Group_9_1__0 ) ) )
        {
        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_9(), 1) ) {
            if (state.backtracking>0) {state.failed=true; return ;}
            throw new FailedPredicateException(input, "synpred315_InternalXcore", "getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_9(), 1)");
        }
        // InternalXcore.g:25918:107: ( ( ( rule__XReference__Group_9_1__0 ) ) )
        // InternalXcore.g:25919:6: ( ( rule__XReference__Group_9_1__0 ) )
        {
        getUnorderedGroupHelper().select(grammarAccess.getXReferenceAccess().getUnorderedGroup_9(), 1);
        // InternalXcore.g:25925:6: ( ( rule__XReference__Group_9_1__0 ) )
        // InternalXcore.g:25927:7: ( rule__XReference__Group_9_1__0 )
        {
        if ( state.backtracking==0 ) {
           before(grammarAccess.getXReferenceAccess().getGroup_9_1()); 
        }
        // InternalXcore.g:25928:7: ( rule__XReference__Group_9_1__0 )
        // InternalXcore.g:25928:8: rule__XReference__Group_9_1__0
        {
        pushFollow(FollowSets000.FOLLOW_2);
        rule__XReference__Group_9_1__0();

        state._fsp--;
        if (state.failed) return ;

        }


        }


        }


        }


        }
    }
    // $ANTLR end synpred315_InternalXcore

    // $ANTLR start synpred316_InternalXcore
    public final void synpred316_InternalXcore_fragment() throws RecognitionException {   
        // InternalXcore.g:25934:4: ( ({...}? => ( ( ( rule__XReference__Group_9_2__0 ) ) ) ) )
        // InternalXcore.g:25934:4: ({...}? => ( ( ( rule__XReference__Group_9_2__0 ) ) ) )
        {
        // InternalXcore.g:25934:4: ({...}? => ( ( ( rule__XReference__Group_9_2__0 ) ) ) )
        // InternalXcore.g:25935:5: {...}? => ( ( ( rule__XReference__Group_9_2__0 ) ) )
        {
        if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_9(), 2) ) {
            if (state.backtracking>0) {state.failed=true; return ;}
            throw new FailedPredicateException(input, "synpred316_InternalXcore", "getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_9(), 2)");
        }
        // InternalXcore.g:25935:107: ( ( ( rule__XReference__Group_9_2__0 ) ) )
        // InternalXcore.g:25936:6: ( ( rule__XReference__Group_9_2__0 ) )
        {
        getUnorderedGroupHelper().select(grammarAccess.getXReferenceAccess().getUnorderedGroup_9(), 2);
        // InternalXcore.g:25942:6: ( ( rule__XReference__Group_9_2__0 ) )
        // InternalXcore.g:25944:7: ( rule__XReference__Group_9_2__0 )
        {
        if ( state.backtracking==0 ) {
           before(grammarAccess.getXReferenceAccess().getGroup_9_2()); 
        }
        // InternalXcore.g:25945:7: ( rule__XReference__Group_9_2__0 )
        // InternalXcore.g:25945:8: rule__XReference__Group_9_2__0
        {
        pushFollow(FollowSets000.FOLLOW_2);
        rule__XReference__Group_9_2__0();

        state._fsp--;
        if (state.failed) return ;

        }


        }


        }


        }


        }
    }
    // $ANTLR end synpred316_InternalXcore

    // $ANTLR start synpred317_InternalXcore
    public final void synpred317_InternalXcore_fragment() throws RecognitionException {   
        // InternalXcore.g:25983:2: ( rule__XReference__UnorderedGroup_9__1 )
        // InternalXcore.g:25983:2: rule__XReference__UnorderedGroup_9__1
        {
        pushFollow(FollowSets000.FOLLOW_2);
        rule__XReference__UnorderedGroup_9__1();

        state._fsp--;
        if (state.failed) return ;

        }
    }
    // $ANTLR end synpred317_InternalXcore

    // $ANTLR start synpred318_InternalXcore
    public final void synpred318_InternalXcore_fragment() throws RecognitionException {   
        // InternalXcore.g:25996:2: ( rule__XReference__UnorderedGroup_9__2 )
        // InternalXcore.g:25996:2: rule__XReference__UnorderedGroup_9__2
        {
        pushFollow(FollowSets000.FOLLOW_2);
        rule__XReference__UnorderedGroup_9__2();

        state._fsp--;
        if (state.failed) return ;

        }
    }
    // $ANTLR end synpred318_InternalXcore

    // $ANTLR start synpred319_InternalXcore
    public final void synpred319_InternalXcore_fragment() throws RecognitionException {   
        // InternalXcore.g:26009:2: ( rule__XReference__UnorderedGroup_9__3 )
        // InternalXcore.g:26009:2: rule__XReference__UnorderedGroup_9__3
        {
        pushFollow(FollowSets000.FOLLOW_2);
        rule__XReference__UnorderedGroup_9__3();

        state._fsp--;
        if (state.failed) return ;

        }
    }
    // $ANTLR end synpred319_InternalXcore

    // Delegated rules

    public final boolean synpred290_InternalXcore() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred290_InternalXcore_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred319_InternalXcore() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred319_InternalXcore_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred306_InternalXcore() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred306_InternalXcore_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred295_InternalXcore() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred295_InternalXcore_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred301_InternalXcore() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred301_InternalXcore_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred258_InternalXcore() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred258_InternalXcore_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred279_InternalXcore() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred279_InternalXcore_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred203_InternalXcore() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred203_InternalXcore_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred287_InternalXcore() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred287_InternalXcore_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred211_InternalXcore() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred211_InternalXcore_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred314_InternalXcore() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred314_InternalXcore_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred245_InternalXcore() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred245_InternalXcore_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred83_InternalXcore() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred83_InternalXcore_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred105_InternalXcore() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred105_InternalXcore_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred310_InternalXcore() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred310_InternalXcore_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred118_InternalXcore() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred118_InternalXcore_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred294_InternalXcore() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred294_InternalXcore_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred315_InternalXcore() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred315_InternalXcore_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred281_InternalXcore() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred281_InternalXcore_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred208_InternalXcore() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred208_InternalXcore_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred302_InternalXcore() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred302_InternalXcore_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred296_InternalXcore() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred296_InternalXcore_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred300_InternalXcore() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred300_InternalXcore_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred259_InternalXcore() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred259_InternalXcore_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred275_InternalXcore() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred275_InternalXcore_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred283_InternalXcore() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred283_InternalXcore_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred305_InternalXcore() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred305_InternalXcore_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred212_InternalXcore() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred212_InternalXcore_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred233_InternalXcore() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred233_InternalXcore_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred265_InternalXcore() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred265_InternalXcore_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred286_InternalXcore() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred286_InternalXcore_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred207_InternalXcore() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred207_InternalXcore_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred249_InternalXcore() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred249_InternalXcore_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred293_InternalXcore() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred293_InternalXcore_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred316_InternalXcore() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred316_InternalXcore_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred223_InternalXcore() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred223_InternalXcore_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred244_InternalXcore() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred244_InternalXcore_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred311_InternalXcore() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred311_InternalXcore_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred125_InternalXcore() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred125_InternalXcore_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred104_InternalXcore() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred104_InternalXcore_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred297_InternalXcore() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred297_InternalXcore_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred261_InternalXcore() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred261_InternalXcore_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred282_InternalXcore() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred282_InternalXcore_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred276_InternalXcore() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred276_InternalXcore_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred123_InternalXcore() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred123_InternalXcore_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred289_InternalXcore() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred289_InternalXcore_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred268_InternalXcore() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred268_InternalXcore_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred250_InternalXcore() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred250_InternalXcore_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred312_InternalXcore() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred312_InternalXcore_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred205_InternalXcore() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred205_InternalXcore_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred308_InternalXcore() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred308_InternalXcore_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred251_InternalXcore() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred251_InternalXcore_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred292_InternalXcore() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred292_InternalXcore_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred230_InternalXcore() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred230_InternalXcore_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred285_InternalXcore() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred285_InternalXcore_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred201_InternalXcore() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred201_InternalXcore_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred298_InternalXcore() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred298_InternalXcore_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred206_InternalXcore() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred206_InternalXcore_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred309_InternalXcore() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred309_InternalXcore_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred304_InternalXcore() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred304_InternalXcore_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred277_InternalXcore() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred277_InternalXcore_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred214_InternalXcore() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred214_InternalXcore_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred256_InternalXcore() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred256_InternalXcore_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred317_InternalXcore() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred317_InternalXcore_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred204_InternalXcore() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred204_InternalXcore_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred288_InternalXcore() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred288_InternalXcore_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred267_InternalXcore() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred267_InternalXcore_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred122_InternalXcore() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred122_InternalXcore_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred307_InternalXcore() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred307_InternalXcore_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred291_InternalXcore() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred291_InternalXcore_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred82_InternalXcore() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred82_InternalXcore_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred313_InternalXcore() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred313_InternalXcore_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred210_InternalXcore() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred210_InternalXcore_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred96_InternalXcore() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred96_InternalXcore_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred257_InternalXcore() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred257_InternalXcore_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred278_InternalXcore() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred278_InternalXcore_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred280_InternalXcore() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred280_InternalXcore_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred299_InternalXcore() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred299_InternalXcore_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred284_InternalXcore() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred284_InternalXcore_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred209_InternalXcore() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred209_InternalXcore_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred215_InternalXcore() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred215_InternalXcore_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred318_InternalXcore() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred318_InternalXcore_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred303_InternalXcore() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred303_InternalXcore_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }


    protected DFA2 dfa2 = new DFA2(this);
    protected DFA3 dfa3 = new DFA3(this);
    protected DFA5 dfa5 = new DFA5(this);
    protected DFA17 dfa17 = new DFA17(this);
    protected DFA22 dfa22 = new DFA22(this);
    protected DFA30 dfa30 = new DFA30(this);
    protected DFA33 dfa33 = new DFA33(this);
    protected DFA34 dfa34 = new DFA34(this);
    protected DFA37 dfa37 = new DFA37(this);
    protected DFA41 dfa41 = new DFA41(this);
    protected DFA42 dfa42 = new DFA42(this);
    protected DFA44 dfa44 = new DFA44(this);
    protected DFA53 dfa53 = new DFA53(this);
    protected DFA119 dfa119 = new DFA119(this);
    protected DFA125 dfa125 = new DFA125(this);
    protected DFA132 dfa132 = new DFA132(this);
    protected DFA133 dfa133 = new DFA133(this);
    protected DFA141 dfa141 = new DFA141(this);
    protected DFA151 dfa151 = new DFA151(this);
    protected DFA162 dfa162 = new DFA162(this);
    protected DFA163 dfa163 = new DFA163(this);
    protected DFA167 dfa167 = new DFA167(this);
    protected DFA168 dfa168 = new DFA168(this);
    protected DFA169 dfa169 = new DFA169(this);
    protected DFA174 dfa174 = new DFA174(this);
    protected DFA177 dfa177 = new DFA177(this);
    protected DFA183 dfa183 = new DFA183(this);
    protected DFA185 dfa185 = new DFA185(this);
    protected DFA186 dfa186 = new DFA186(this);
    protected DFA196 dfa196 = new DFA196(this);
    protected DFA198 dfa198 = new DFA198(this);
    protected DFA199 dfa199 = new DFA199(this);
    protected DFA200 dfa200 = new DFA200(this);
    protected DFA201 dfa201 = new DFA201(this);
    protected DFA202 dfa202 = new DFA202(this);
    protected DFA203 dfa203 = new DFA203(this);
    protected DFA204 dfa204 = new DFA204(this);
    protected DFA205 dfa205 = new DFA205(this);
    protected DFA207 dfa207 = new DFA207(this);
    protected DFA208 dfa208 = new DFA208(this);
    protected DFA209 dfa209 = new DFA209(this);
    protected DFA218 dfa218 = new DFA218(this);
    protected DFA220 dfa220 = new DFA220(this);
    protected DFA221 dfa221 = new DFA221(this);
    protected DFA222 dfa222 = new DFA222(this);
    static final String dfa_1s = "\20\uffff";
    static final String dfa_2s = "\1\uffff\6\10\2\uffff\6\10\1\uffff";
    static final String dfa_3s = "\1\5\6\30\1\5\1\uffff\6\30\1\uffff";
    static final String dfa_4s = "\1\27\6\130\1\27\1\uffff\6\130\1\uffff";
    static final String dfa_5s = "\10\uffff\1\2\6\uffff\1\1";
    static final String dfa_6s = "\20\uffff}>";
    static final String[] dfa_7s = {
            "\1\1\12\uffff\1\6\3\uffff\1\2\1\3\1\4\1\5",
            "\2\10\1\uffff\1\10\5\uffff\1\10\3\uffff\1\10\1\uffff\1\10\50\uffff\1\7\3\uffff\1\10\3\uffff\1\10",
            "\2\10\1\uffff\1\10\5\uffff\1\10\3\uffff\1\10\1\uffff\1\10\50\uffff\1\7\3\uffff\1\10\3\uffff\1\10",
            "\2\10\1\uffff\1\10\5\uffff\1\10\3\uffff\1\10\1\uffff\1\10\50\uffff\1\7\3\uffff\1\10\3\uffff\1\10",
            "\2\10\1\uffff\1\10\5\uffff\1\10\3\uffff\1\10\1\uffff\1\10\50\uffff\1\7\3\uffff\1\10\3\uffff\1\10",
            "\2\10\1\uffff\1\10\5\uffff\1\10\3\uffff\1\10\1\uffff\1\10\50\uffff\1\7\3\uffff\1\10\3\uffff\1\10",
            "\2\10\1\uffff\1\10\5\uffff\1\10\3\uffff\1\10\1\uffff\1\10\50\uffff\1\7\3\uffff\1\10\3\uffff\1\10",
            "\1\11\12\uffff\1\16\1\uffff\1\17\1\uffff\1\12\1\13\1\14\1\15",
            "",
            "\2\10\1\uffff\1\10\5\uffff\1\10\3\uffff\1\10\1\uffff\1\10\50\uffff\1\7\3\uffff\1\10\3\uffff\1\10",
            "\2\10\1\uffff\1\10\5\uffff\1\10\3\uffff\1\10\1\uffff\1\10\50\uffff\1\7\3\uffff\1\10\3\uffff\1\10",
            "\2\10\1\uffff\1\10\5\uffff\1\10\3\uffff\1\10\1\uffff\1\10\50\uffff\1\7\3\uffff\1\10\3\uffff\1\10",
            "\2\10\1\uffff\1\10\5\uffff\1\10\3\uffff\1\10\1\uffff\1\10\50\uffff\1\7\3\uffff\1\10\3\uffff\1\10",
            "\2\10\1\uffff\1\10\5\uffff\1\10\3\uffff\1\10\1\uffff\1\10\50\uffff\1\7\3\uffff\1\10\3\uffff\1\10",
            "\2\10\1\uffff\1\10\5\uffff\1\10\3\uffff\1\10\1\uffff\1\10\50\uffff\1\7\3\uffff\1\10\3\uffff\1\10",
            ""
    };

    static final short[] dfa_1 = DFA.unpackEncodedString(dfa_1s);
    static final short[] dfa_2 = DFA.unpackEncodedString(dfa_2s);
    static final char[] dfa_3 = DFA.unpackEncodedStringToUnsignedChars(dfa_3s);
    static final char[] dfa_4 = DFA.unpackEncodedStringToUnsignedChars(dfa_4s);
    static final short[] dfa_5 = DFA.unpackEncodedString(dfa_5s);
    static final short[] dfa_6 = DFA.unpackEncodedString(dfa_6s);
    static final short[][] dfa_7 = unpackEncodedStringArray(dfa_7s);

    class DFA2 extends DFA {

        public DFA2(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 2;
            this.eot = dfa_1;
            this.eof = dfa_2;
            this.min = dfa_3;
            this.max = dfa_4;
            this.accept = dfa_5;
            this.special = dfa_6;
            this.transition = dfa_7;
        }
        public String getDescription() {
            return "2832:1: rule__XImportDirective__Alternatives_2 : ( ( ( rule__XImportDirective__ImportedNamespaceAssignment_2_0 ) ) | ( ( rule__XImportDirective__ImportedObjectAssignment_2_1 ) ) );";
        }
    }
    static final String dfa_8s = "\61\uffff";
    static final String dfa_9s = "\1\30\1\5\3\uffff\5\30\2\5\5\30\6\15\1\5\1\10\6\15\1\126\1\5\1\30\6\15\1\5\1\10\6\15\1\126";
    static final String dfa_10s = "\1\130\1\27\3\uffff\5\130\2\27\5\130\6\120\1\27\1\10\6\120\1\127\1\27\1\130\6\120\1\27\1\10\6\120\1\127";
    static final String dfa_11s = "\2\uffff\1\1\1\2\1\3\54\uffff";
    static final String dfa_12s = "\61\uffff}>";
    static final String[] dfa_13s = {
            "\1\2\2\uffff\1\2\5\uffff\1\4\5\uffff\1\2\54\uffff\1\1\3\uffff\1\3",
            "\1\5\16\uffff\1\6\1\7\1\10\1\11",
            "",
            "",
            "",
            "\1\2\2\uffff\1\2\5\uffff\1\4\5\uffff\1\2\50\uffff\1\12\3\uffff\1\1\1\13\2\uffff\1\3",
            "\1\2\2\uffff\1\2\5\uffff\1\4\5\uffff\1\2\50\uffff\1\12\3\uffff\1\1\1\13\2\uffff\1\3",
            "\1\2\2\uffff\1\2\5\uffff\1\4\5\uffff\1\2\50\uffff\1\12\3\uffff\1\1\1\13\2\uffff\1\3",
            "\1\2\2\uffff\1\2\5\uffff\1\4\5\uffff\1\2\50\uffff\1\12\3\uffff\1\1\1\13\2\uffff\1\3",
            "\1\2\2\uffff\1\2\5\uffff\1\4\5\uffff\1\2\50\uffff\1\12\3\uffff\1\1\1\13\2\uffff\1\3",
            "\1\14\16\uffff\1\15\1\16\1\17\1\20",
            "\1\21\12\uffff\1\26\3\uffff\1\22\1\23\1\24\1\25",
            "\1\2\2\uffff\1\2\5\uffff\1\4\5\uffff\1\2\50\uffff\1\12\3\uffff\1\1\1\13\2\uffff\1\3",
            "\1\2\2\uffff\1\2\5\uffff\1\4\5\uffff\1\2\50\uffff\1\12\3\uffff\1\1\1\13\2\uffff\1\3",
            "\1\2\2\uffff\1\2\5\uffff\1\4\5\uffff\1\2\50\uffff\1\12\3\uffff\1\1\1\13\2\uffff\1\3",
            "\1\2\2\uffff\1\2\5\uffff\1\4\5\uffff\1\2\50\uffff\1\12\3\uffff\1\1\1\13\2\uffff\1\3",
            "\1\2\2\uffff\1\2\5\uffff\1\4\5\uffff\1\2\50\uffff\1\12\3\uffff\1\1\1\13\2\uffff\1\3",
            "\1\30\102\uffff\1\27",
            "\1\30\102\uffff\1\27",
            "\1\30\102\uffff\1\27",
            "\1\30\102\uffff\1\27",
            "\1\30\102\uffff\1\27",
            "\1\30\102\uffff\1\27",
            "\1\31\12\uffff\1\36\3\uffff\1\32\1\33\1\34\1\35",
            "\1\37",
            "\1\30\102\uffff\1\27",
            "\1\30\102\uffff\1\27",
            "\1\30\102\uffff\1\27",
            "\1\30\102\uffff\1\27",
            "\1\30\102\uffff\1\27",
            "\1\30\102\uffff\1\27",
            "\1\41\1\40",
            "\1\42\12\uffff\1\47\3\uffff\1\43\1\44\1\45\1\46",
            "\1\2\2\uffff\1\2\5\uffff\1\4\5\uffff\1\2\54\uffff\1\1\3\uffff\1\3",
            "\1\51\102\uffff\1\50",
            "\1\51\102\uffff\1\50",
            "\1\51\102\uffff\1\50",
            "\1\51\102\uffff\1\50",
            "\1\51\102\uffff\1\50",
            "\1\51\102\uffff\1\50",
            "\1\52\12\uffff\1\57\3\uffff\1\53\1\54\1\55\1\56",
            "\1\60",
            "\1\51\102\uffff\1\50",
            "\1\51\102\uffff\1\50",
            "\1\51\102\uffff\1\50",
            "\1\51\102\uffff\1\50",
            "\1\51\102\uffff\1\50",
            "\1\51\102\uffff\1\50",
            "\1\41\1\40"
    };

    static final short[] dfa_8 = DFA.unpackEncodedString(dfa_8s);
    static final char[] dfa_9 = DFA.unpackEncodedStringToUnsignedChars(dfa_9s);
    static final char[] dfa_10 = DFA.unpackEncodedStringToUnsignedChars(dfa_10s);
    static final short[] dfa_11 = DFA.unpackEncodedString(dfa_11s);
    static final short[] dfa_12 = DFA.unpackEncodedString(dfa_12s);
    static final short[][] dfa_13 = unpackEncodedStringArray(dfa_13s);

    class DFA3 extends DFA {

        public DFA3(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 3;
            this.eot = dfa_8;
            this.eof = dfa_8;
            this.min = dfa_9;
            this.max = dfa_10;
            this.accept = dfa_11;
            this.special = dfa_12;
            this.transition = dfa_13;
        }
        public String getDescription() {
            return "2854:1: rule__XClassifier__Alternatives : ( ( ruleXClass ) | ( ruleXDataType ) | ( ruleXEnum ) );";
        }
    }
    static final String dfa_14s = "\2\5\3\uffff\14\5\6\15\1\5\1\10\6\15\1\126\2\5\6\15\1\5\1\10\6\15\1\126";
    static final String dfa_15s = "\1\124\1\27\3\uffff\5\125\2\27\5\125\6\120\1\27\1\10\6\120\1\127\1\27\1\124\6\120\1\27\1\10\6\120\1\127";
    static final String[] dfa_16s = {
            "\1\3\16\uffff\4\3\4\uffff\2\4\2\uffff\1\3\3\uffff\1\3\3\uffff\1\4\1\2\2\uffff\1\3\2\4\2\uffff\5\3\36\uffff\1\1",
            "\1\5\16\uffff\1\6\1\7\1\10\1\11",
            "",
            "",
            "",
            "\1\3\16\uffff\4\3\4\uffff\2\4\2\uffff\1\3\3\uffff\1\3\3\uffff\1\4\1\2\2\uffff\1\3\2\4\2\uffff\5\3\32\uffff\1\12\3\uffff\1\1\1\13",
            "\1\3\16\uffff\4\3\4\uffff\2\4\2\uffff\1\3\3\uffff\1\3\3\uffff\1\4\1\2\2\uffff\1\3\2\4\2\uffff\5\3\32\uffff\1\12\3\uffff\1\1\1\13",
            "\1\3\16\uffff\4\3\4\uffff\2\4\2\uffff\1\3\3\uffff\1\3\3\uffff\1\4\1\2\2\uffff\1\3\2\4\2\uffff\5\3\32\uffff\1\12\3\uffff\1\1\1\13",
            "\1\3\16\uffff\4\3\4\uffff\2\4\2\uffff\1\3\3\uffff\1\3\3\uffff\1\4\1\2\2\uffff\1\3\2\4\2\uffff\5\3\32\uffff\1\12\3\uffff\1\1\1\13",
            "\1\3\16\uffff\4\3\4\uffff\2\4\2\uffff\1\3\3\uffff\1\3\3\uffff\1\4\1\2\2\uffff\1\3\2\4\2\uffff\5\3\32\uffff\1\12\3\uffff\1\1\1\13",
            "\1\14\16\uffff\1\15\1\16\1\17\1\20",
            "\1\21\12\uffff\1\26\3\uffff\1\22\1\23\1\24\1\25",
            "\1\3\16\uffff\4\3\4\uffff\2\4\2\uffff\1\3\3\uffff\1\3\3\uffff\1\4\1\2\2\uffff\1\3\2\4\2\uffff\5\3\32\uffff\1\12\3\uffff\1\1\1\13",
            "\1\3\16\uffff\4\3\4\uffff\2\4\2\uffff\1\3\3\uffff\1\3\3\uffff\1\4\1\2\2\uffff\1\3\2\4\2\uffff\5\3\32\uffff\1\12\3\uffff\1\1\1\13",
            "\1\3\16\uffff\4\3\4\uffff\2\4\2\uffff\1\3\3\uffff\1\3\3\uffff\1\4\1\2\2\uffff\1\3\2\4\2\uffff\5\3\32\uffff\1\12\3\uffff\1\1\1\13",
            "\1\3\16\uffff\4\3\4\uffff\2\4\2\uffff\1\3\3\uffff\1\3\3\uffff\1\4\1\2\2\uffff\1\3\2\4\2\uffff\5\3\32\uffff\1\12\3\uffff\1\1\1\13",
            "\1\3\16\uffff\4\3\4\uffff\2\4\2\uffff\1\3\3\uffff\1\3\3\uffff\1\4\1\2\2\uffff\1\3\2\4\2\uffff\5\3\32\uffff\1\12\3\uffff\1\1\1\13",
            "\1\30\102\uffff\1\27",
            "\1\30\102\uffff\1\27",
            "\1\30\102\uffff\1\27",
            "\1\30\102\uffff\1\27",
            "\1\30\102\uffff\1\27",
            "\1\30\102\uffff\1\27",
            "\1\31\12\uffff\1\36\3\uffff\1\32\1\33\1\34\1\35",
            "\1\37",
            "\1\30\102\uffff\1\27",
            "\1\30\102\uffff\1\27",
            "\1\30\102\uffff\1\27",
            "\1\30\102\uffff\1\27",
            "\1\30\102\uffff\1\27",
            "\1\30\102\uffff\1\27",
            "\1\41\1\40",
            "\1\42\12\uffff\1\47\3\uffff\1\43\1\44\1\45\1\46",
            "\1\3\16\uffff\4\3\4\uffff\2\4\2\uffff\1\3\3\uffff\1\3\3\uffff\1\4\1\2\2\uffff\1\3\2\4\2\uffff\5\3\36\uffff\1\1",
            "\1\51\102\uffff\1\50",
            "\1\51\102\uffff\1\50",
            "\1\51\102\uffff\1\50",
            "\1\51\102\uffff\1\50",
            "\1\51\102\uffff\1\50",
            "\1\51\102\uffff\1\50",
            "\1\52\12\uffff\1\57\3\uffff\1\53\1\54\1\55\1\56",
            "\1\60",
            "\1\51\102\uffff\1\50",
            "\1\51\102\uffff\1\50",
            "\1\51\102\uffff\1\50",
            "\1\51\102\uffff\1\50",
            "\1\51\102\uffff\1\50",
            "\1\51\102\uffff\1\50",
            "\1\41\1\40"
    };
    static final char[] dfa_14 = DFA.unpackEncodedStringToUnsignedChars(dfa_14s);
    static final char[] dfa_15 = DFA.unpackEncodedStringToUnsignedChars(dfa_15s);
    static final short[][] dfa_16 = unpackEncodedStringArray(dfa_16s);

    class DFA5 extends DFA {

        public DFA5(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 5;
            this.eot = dfa_8;
            this.eof = dfa_8;
            this.min = dfa_14;
            this.max = dfa_15;
            this.accept = dfa_11;
            this.special = dfa_12;
            this.transition = dfa_16;
        }
        public String getDescription() {
            return "2904:1: rule__XMember__Alternatives : ( ( ruleXOperation ) | ( ruleXAttribute ) | ( ruleXReference ) );";
        }
    }
    static final String dfa_17s = "\50\uffff";
    static final String dfa_18s = "\1\uffff\45\46\2\uffff";
    static final String dfa_19s = "\46\4\2\uffff";
    static final String dfa_20s = "\46\167\2\uffff";
    static final String dfa_21s = "\46\uffff\1\2\1\1";
    static final String dfa_22s = "\50\uffff}>";
    static final String[] dfa_23s = {
            "\1\46\1\1\3\46\7\uffff\1\6\2\uffff\1\46\1\2\1\3\1\4\1\5\1\7\1\10\1\11\1\12\1\13\1\14\1\15\1\16\1\17\1\20\1\21\1\22\1\23\1\24\1\25\1\26\1\27\1\30\1\31\1\32\1\33\1\34\1\35\1\36\1\37\1\40\1\41\1\42\1\43\1\44\1\45\13\uffff\1\46\6\uffff\1\46\3\uffff\1\46\4\uffff\2\46\1\uffff\1\46\3\uffff\1\46\2\uffff\1\46\3\uffff\2\46\1\uffff\1\46\3\uffff\11\46\1\uffff\1\46\5\uffff\1\46",
            "\5\46\4\uffff\1\47\3\46\1\uffff\102\46\1\uffff\3\46\1\uffff\2\46\1\uffff\31\46\1\uffff\2\46",
            "\5\46\4\uffff\1\47\3\46\1\uffff\102\46\1\uffff\3\46\1\uffff\2\46\1\uffff\31\46\1\uffff\2\46",
            "\5\46\4\uffff\1\47\3\46\1\uffff\102\46\1\uffff\3\46\1\uffff\2\46\1\uffff\31\46\1\uffff\2\46",
            "\5\46\4\uffff\1\47\3\46\1\uffff\102\46\1\uffff\3\46\1\uffff\2\46\1\uffff\31\46\1\uffff\2\46",
            "\5\46\4\uffff\1\47\3\46\1\uffff\102\46\1\uffff\3\46\1\uffff\2\46\1\uffff\31\46\1\uffff\2\46",
            "\5\46\4\uffff\1\47\3\46\1\uffff\102\46\1\uffff\3\46\1\uffff\2\46\1\uffff\31\46\1\uffff\2\46",
            "\5\46\4\uffff\1\47\3\46\1\uffff\102\46\1\uffff\3\46\1\uffff\2\46\1\uffff\31\46\1\uffff\2\46",
            "\5\46\4\uffff\1\47\3\46\1\uffff\102\46\1\uffff\3\46\1\uffff\2\46\1\uffff\31\46\1\uffff\2\46",
            "\5\46\4\uffff\1\47\3\46\1\uffff\102\46\1\uffff\3\46\1\uffff\2\46\1\uffff\31\46\1\uffff\2\46",
            "\5\46\4\uffff\1\47\3\46\1\uffff\102\46\1\uffff\3\46\1\uffff\2\46\1\uffff\31\46\1\uffff\2\46",
            "\5\46\4\uffff\1\47\3\46\1\uffff\102\46\1\uffff\3\46\1\uffff\2\46\1\uffff\31\46\1\uffff\2\46",
            "\5\46\4\uffff\1\47\3\46\1\uffff\102\46\1\uffff\3\46\1\uffff\2\46\1\uffff\31\46\1\uffff\2\46",
            "\5\46\4\uffff\1\47\3\46\1\uffff\102\46\1\uffff\3\46\1\uffff\2\46\1\uffff\31\46\1\uffff\2\46",
            "\5\46\4\uffff\1\47\3\46\1\uffff\102\46\1\uffff\3\46\1\uffff\2\46\1\uffff\31\46\1\uffff\2\46",
            "\5\46\4\uffff\1\47\3\46\1\uffff\102\46\1\uffff\3\46\1\uffff\2\46\1\uffff\31\46\1\uffff\2\46",
            "\5\46\4\uffff\1\47\3\46\1\uffff\102\46\1\uffff\3\46\1\uffff\2\46\1\uffff\31\46\1\uffff\2\46",
            "\5\46\4\uffff\1\47\3\46\1\uffff\102\46\1\uffff\3\46\1\uffff\2\46\1\uffff\31\46\1\uffff\2\46",
            "\5\46\4\uffff\1\47\3\46\1\uffff\102\46\1\uffff\3\46\1\uffff\2\46\1\uffff\31\46\1\uffff\2\46",
            "\5\46\4\uffff\1\47\3\46\1\uffff\102\46\1\uffff\3\46\1\uffff\2\46\1\uffff\31\46\1\uffff\2\46",
            "\5\46\4\uffff\1\47\3\46\1\uffff\102\46\1\uffff\3\46\1\uffff\2\46\1\uffff\31\46\1\uffff\2\46",
            "\5\46\4\uffff\1\47\3\46\1\uffff\102\46\1\uffff\3\46\1\uffff\2\46\1\uffff\31\46\1\uffff\2\46",
            "\5\46\4\uffff\1\47\3\46\1\uffff\102\46\1\uffff\3\46\1\uffff\2\46\1\uffff\31\46\1\uffff\2\46",
            "\5\46\4\uffff\1\47\3\46\1\uffff\102\46\1\uffff\3\46\1\uffff\2\46\1\uffff\31\46\1\uffff\2\46",
            "\5\46\4\uffff\1\47\3\46\1\uffff\102\46\1\uffff\3\46\1\uffff\2\46\1\uffff\31\46\1\uffff\2\46",
            "\5\46\4\uffff\1\47\3\46\1\uffff\102\46\1\uffff\3\46\1\uffff\2\46\1\uffff\31\46\1\uffff\2\46",
            "\5\46\4\uffff\1\47\3\46\1\uffff\102\46\1\uffff\3\46\1\uffff\2\46\1\uffff\31\46\1\uffff\2\46",
            "\5\46\4\uffff\1\47\3\46\1\uffff\102\46\1\uffff\3\46\1\uffff\2\46\1\uffff\31\46\1\uffff\2\46",
            "\5\46\4\uffff\1\47\3\46\1\uffff\102\46\1\uffff\3\46\1\uffff\2\46\1\uffff\31\46\1\uffff\2\46",
            "\5\46\4\uffff\1\47\3\46\1\uffff\102\46\1\uffff\3\46\1\uffff\2\46\1\uffff\31\46\1\uffff\2\46",
            "\5\46\4\uffff\1\47\3\46\1\uffff\102\46\1\uffff\3\46\1\uffff\2\46\1\uffff\31\46\1\uffff\2\46",
            "\5\46\4\uffff\1\47\3\46\1\uffff\102\46\1\uffff\3\46\1\uffff\2\46\1\uffff\31\46\1\uffff\2\46",
            "\5\46\4\uffff\1\47\3\46\1\uffff\102\46\1\uffff\3\46\1\uffff\2\46\1\uffff\31\46\1\uffff\2\46",
            "\5\46\4\uffff\1\47\3\46\1\uffff\102\46\1\uffff\3\46\1\uffff\2\46\1\uffff\31\46\1\uffff\2\46",
            "\5\46\4\uffff\1\47\3\46\1\uffff\102\46\1\uffff\3\46\1\uffff\2\46\1\uffff\31\46\1\uffff\2\46",
            "\5\46\4\uffff\1\47\3\46\1\uffff\102\46\1\uffff\3\46\1\uffff\2\46\1\uffff\31\46\1\uffff\2\46",
            "\5\46\4\uffff\1\47\3\46\1\uffff\102\46\1\uffff\3\46\1\uffff\2\46\1\uffff\31\46\1\uffff\2\46",
            "\5\46\4\uffff\1\47\3\46\1\uffff\102\46\1\uffff\3\46\1\uffff\2\46\1\uffff\31\46\1\uffff\2\46",
            "",
            ""
    };

    static final short[] dfa_17 = DFA.unpackEncodedString(dfa_17s);
    static final short[] dfa_18 = DFA.unpackEncodedString(dfa_18s);
    static final char[] dfa_19 = DFA.unpackEncodedStringToUnsignedChars(dfa_19s);
    static final char[] dfa_20 = DFA.unpackEncodedStringToUnsignedChars(dfa_20s);
    static final short[] dfa_21 = DFA.unpackEncodedString(dfa_21s);
    static final short[] dfa_22 = DFA.unpackEncodedString(dfa_22s);
    static final short[][] dfa_23 = unpackEncodedStringArray(dfa_23s);

    class DFA17 extends DFA {

        public DFA17(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 17;
            this.eot = dfa_17;
            this.eof = dfa_18;
            this.min = dfa_19;
            this.max = dfa_20;
            this.accept = dfa_21;
            this.special = dfa_22;
            this.transition = dfa_23;
        }
        public String getDescription() {
            return "3498:1: rule__XAssignment__Alternatives : ( ( ( rule__XAssignment__Group_0__0 ) ) | ( ( rule__XAssignment__Group_1__0 ) ) );";
        }
    }
    static final String dfa_24s = "\13\uffff";
    static final String dfa_25s = "\1\101\2\uffff\1\101\7\uffff";
    static final String dfa_26s = "\1\110\2\uffff\1\105\7\uffff";
    static final String dfa_27s = "\1\uffff\1\1\1\2\1\uffff\1\4\1\5\1\7\1\10\1\11\1\6\1\3";
    static final String dfa_28s = "\13\uffff}>";
    static final String[] dfa_29s = {
            "\1\3\1\6\1\1\1\2\1\4\1\5\1\7\1\10",
            "",
            "",
            "\1\11\3\uffff\1\12",
            "",
            "",
            "",
            "",
            "",
            "",
            ""
    };

    static final short[] dfa_24 = DFA.unpackEncodedString(dfa_24s);
    static final char[] dfa_25 = DFA.unpackEncodedStringToUnsignedChars(dfa_25s);
    static final char[] dfa_26 = DFA.unpackEncodedStringToUnsignedChars(dfa_26s);
    static final short[] dfa_27 = DFA.unpackEncodedString(dfa_27s);
    static final short[] dfa_28 = DFA.unpackEncodedString(dfa_28s);
    static final short[][] dfa_29 = unpackEncodedStringArray(dfa_29s);

    class DFA22 extends DFA {

        public DFA22(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 22;
            this.eot = dfa_24;
            this.eof = dfa_24;
            this.min = dfa_25;
            this.max = dfa_26;
            this.accept = dfa_27;
            this.special = dfa_28;
            this.transition = dfa_29;
        }
        public String getDescription() {
            return "3686:1: rule__OpOther__Alternatives : ( ( '->' ) | ( '..<' ) | ( ( rule__OpOther__Group_2__0 ) ) | ( '..' ) | ( '=>' ) | ( ( rule__OpOther__Group_5__0 ) ) | ( ( rule__OpOther__Group_6__0 ) ) | ( '<>' ) | ( '?:' ) );";
        }
    }
    static final String dfa_30s = "\52\uffff";
    static final String dfa_31s = "\4\uffff\45\3\1\uffff";
    static final String dfa_32s = "\1\120\2\5\1\uffff\45\4\1\uffff";
    static final String dfa_33s = "\1\164\2\122\1\uffff\45\167\1\uffff";
    static final String dfa_34s = "\3\uffff\1\2\45\uffff\1\1";
    static final String dfa_35s = "\52\uffff}>";
    static final String[] dfa_36s = {
            "\1\1\42\uffff\1\2\1\3",
            "\1\4\12\uffff\1\11\3\uffff\1\5\1\6\1\7\1\10\1\12\1\13\1\14\1\15\1\16\1\17\1\20\1\21\1\22\1\23\1\24\1\25\1\26\1\27\1\30\1\31\1\32\1\33\1\34\1\35\1\36\1\37\1\40\1\41\1\42\1\43\1\44\1\45\1\46\1\47\1\50\13\uffff\1\3\17\uffff\1\3",
            "\1\4\12\uffff\1\11\3\uffff\1\5\1\6\1\7\1\10\1\12\1\13\1\14\1\15\1\16\1\17\1\20\1\21\1\22\1\23\1\24\1\25\1\26\1\27\1\30\1\31\1\32\1\33\1\34\1\35\1\36\1\37\1\40\1\41\1\42\1\43\1\44\1\45\1\46\1\47\1\50\13\uffff\1\3\17\uffff\1\3",
            "",
            "\5\3\4\uffff\1\51\3\3\1\uffff\102\3\1\uffff\3\3\1\uffff\2\3\1\uffff\31\3\1\uffff\2\3",
            "\5\3\4\uffff\1\51\3\3\1\uffff\102\3\1\uffff\3\3\1\uffff\2\3\1\uffff\31\3\1\uffff\2\3",
            "\5\3\4\uffff\1\51\3\3\1\uffff\102\3\1\uffff\3\3\1\uffff\2\3\1\uffff\31\3\1\uffff\2\3",
            "\5\3\4\uffff\1\51\3\3\1\uffff\102\3\1\uffff\3\3\1\uffff\2\3\1\uffff\31\3\1\uffff\2\3",
            "\5\3\4\uffff\1\51\3\3\1\uffff\102\3\1\uffff\3\3\1\uffff\2\3\1\uffff\31\3\1\uffff\2\3",
            "\5\3\4\uffff\1\51\3\3\1\uffff\102\3\1\uffff\3\3\1\uffff\2\3\1\uffff\31\3\1\uffff\2\3",
            "\5\3\4\uffff\1\51\3\3\1\uffff\102\3\1\uffff\3\3\1\uffff\2\3\1\uffff\31\3\1\uffff\2\3",
            "\5\3\4\uffff\1\51\3\3\1\uffff\102\3\1\uffff\3\3\1\uffff\2\3\1\uffff\31\3\1\uffff\2\3",
            "\5\3\4\uffff\1\51\3\3\1\uffff\102\3\1\uffff\3\3\1\uffff\2\3\1\uffff\31\3\1\uffff\2\3",
            "\5\3\4\uffff\1\51\3\3\1\uffff\102\3\1\uffff\3\3\1\uffff\2\3\1\uffff\31\3\1\uffff\2\3",
            "\5\3\4\uffff\1\51\3\3\1\uffff\102\3\1\uffff\3\3\1\uffff\2\3\1\uffff\31\3\1\uffff\2\3",
            "\5\3\4\uffff\1\51\3\3\1\uffff\102\3\1\uffff\3\3\1\uffff\2\3\1\uffff\31\3\1\uffff\2\3",
            "\5\3\4\uffff\1\51\3\3\1\uffff\102\3\1\uffff\3\3\1\uffff\2\3\1\uffff\31\3\1\uffff\2\3",
            "\5\3\4\uffff\1\51\3\3\1\uffff\102\3\1\uffff\3\3\1\uffff\2\3\1\uffff\31\3\1\uffff\2\3",
            "\5\3\4\uffff\1\51\3\3\1\uffff\102\3\1\uffff\3\3\1\uffff\2\3\1\uffff\31\3\1\uffff\2\3",
            "\5\3\4\uffff\1\51\3\3\1\uffff\102\3\1\uffff\3\3\1\uffff\2\3\1\uffff\31\3\1\uffff\2\3",
            "\5\3\4\uffff\1\51\3\3\1\uffff\102\3\1\uffff\3\3\1\uffff\2\3\1\uffff\31\3\1\uffff\2\3",
            "\5\3\4\uffff\1\51\3\3\1\uffff\102\3\1\uffff\3\3\1\uffff\2\3\1\uffff\31\3\1\uffff\2\3",
            "\5\3\4\uffff\1\51\3\3\1\uffff\102\3\1\uffff\3\3\1\uffff\2\3\1\uffff\31\3\1\uffff\2\3",
            "\5\3\4\uffff\1\51\3\3\1\uffff\102\3\1\uffff\3\3\1\uffff\2\3\1\uffff\31\3\1\uffff\2\3",
            "\5\3\4\uffff\1\51\3\3\1\uffff\102\3\1\uffff\3\3\1\uffff\2\3\1\uffff\31\3\1\uffff\2\3",
            "\5\3\4\uffff\1\51\3\3\1\uffff\102\3\1\uffff\3\3\1\uffff\2\3\1\uffff\31\3\1\uffff\2\3",
            "\5\3\4\uffff\1\51\3\3\1\uffff\102\3\1\uffff\3\3\1\uffff\2\3\1\uffff\31\3\1\uffff\2\3",
            "\5\3\4\uffff\1\51\3\3\1\uffff\102\3\1\uffff\3\3\1\uffff\2\3\1\uffff\31\3\1\uffff\2\3",
            "\5\3\4\uffff\1\51\3\3\1\uffff\102\3\1\uffff\3\3\1\uffff\2\3\1\uffff\31\3\1\uffff\2\3",
            "\5\3\4\uffff\1\51\3\3\1\uffff\102\3\1\uffff\3\3\1\uffff\2\3\1\uffff\31\3\1\uffff\2\3",
            "\5\3\4\uffff\1\51\3\3\1\uffff\102\3\1\uffff\3\3\1\uffff\2\3\1\uffff\31\3\1\uffff\2\3",
            "\5\3\4\uffff\1\51\3\3\1\uffff\102\3\1\uffff\3\3\1\uffff\2\3\1\uffff\31\3\1\uffff\2\3",
            "\5\3\4\uffff\1\51\3\3\1\uffff\102\3\1\uffff\3\3\1\uffff\2\3\1\uffff\31\3\1\uffff\2\3",
            "\5\3\4\uffff\1\51\3\3\1\uffff\102\3\1\uffff\3\3\1\uffff\2\3\1\uffff\31\3\1\uffff\2\3",
            "\5\3\4\uffff\1\51\3\3\1\uffff\102\3\1\uffff\3\3\1\uffff\2\3\1\uffff\31\3\1\uffff\2\3",
            "\5\3\4\uffff\1\51\3\3\1\uffff\102\3\1\uffff\3\3\1\uffff\2\3\1\uffff\31\3\1\uffff\2\3",
            "\5\3\4\uffff\1\51\3\3\1\uffff\102\3\1\uffff\3\3\1\uffff\2\3\1\uffff\31\3\1\uffff\2\3",
            "\5\3\4\uffff\1\51\3\3\1\uffff\102\3\1\uffff\3\3\1\uffff\2\3\1\uffff\31\3\1\uffff\2\3",
            "\5\3\4\uffff\1\51\3\3\1\uffff\102\3\1\uffff\3\3\1\uffff\2\3\1\uffff\31\3\1\uffff\2\3",
            "\5\3\4\uffff\1\51\3\3\1\uffff\102\3\1\uffff\3\3\1\uffff\2\3\1\uffff\31\3\1\uffff\2\3",
            "\5\3\4\uffff\1\51\3\3\1\uffff\102\3\1\uffff\3\3\1\uffff\2\3\1\uffff\31\3\1\uffff\2\3",
            ""
    };

    static final short[] dfa_30 = DFA.unpackEncodedString(dfa_30s);
    static final short[] dfa_31 = DFA.unpackEncodedString(dfa_31s);
    static final char[] dfa_32 = DFA.unpackEncodedStringToUnsignedChars(dfa_32s);
    static final char[] dfa_33 = DFA.unpackEncodedStringToUnsignedChars(dfa_33s);
    static final short[] dfa_34 = DFA.unpackEncodedString(dfa_34s);
    static final short[] dfa_35 = DFA.unpackEncodedString(dfa_35s);
    static final short[][] dfa_36 = unpackEncodedStringArray(dfa_36s);

    class DFA30 extends DFA {

        public DFA30(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 30;
            this.eot = dfa_30;
            this.eof = dfa_31;
            this.min = dfa_32;
            this.max = dfa_33;
            this.accept = dfa_34;
            this.special = dfa_35;
            this.transition = dfa_36;
        }
        public String getDescription() {
            return "3968:1: rule__XMemberFeatureCall__Alternatives_1 : ( ( ( rule__XMemberFeatureCall__Group_1_0__0 ) ) | ( ( rule__XMemberFeatureCall__Group_1_1__0 ) ) );";
        }
    }
    static final String dfa_37s = "\103\uffff";
    static final String dfa_38s = "\1\4\7\0\73\uffff";
    static final String dfa_39s = "\1\167\7\0\73\uffff";
    static final String dfa_40s = "\10\uffff\1\1\1\uffff\1\2\70\uffff";
    static final String dfa_41s = "\1\uffff\1\0\1\1\1\2\1\3\1\4\1\5\1\6\73\uffff}>";
    static final String[] dfa_42s = {
            "\1\12\1\1\3\12\7\uffff\1\6\2\uffff\1\12\1\2\1\3\1\4\1\5\37\12\13\uffff\1\12\3\uffff\1\10\2\uffff\1\12\3\uffff\1\12\4\uffff\2\12\1\uffff\1\7\3\uffff\1\12\2\uffff\1\12\3\uffff\2\12\1\uffff\1\12\3\uffff\11\12\1\uffff\1\12\3\uffff\1\10\1\uffff\1\12",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            ""
    };

    static final short[] dfa_37 = DFA.unpackEncodedString(dfa_37s);
    static final char[] dfa_38 = DFA.unpackEncodedStringToUnsignedChars(dfa_38s);
    static final char[] dfa_39 = DFA.unpackEncodedStringToUnsignedChars(dfa_39s);
    static final short[] dfa_40 = DFA.unpackEncodedString(dfa_40s);
    static final short[] dfa_41 = DFA.unpackEncodedString(dfa_41s);
    static final short[][] dfa_42 = unpackEncodedStringArray(dfa_42s);

    class DFA33 extends DFA {

        public DFA33(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 33;
            this.eot = dfa_37;
            this.eof = dfa_37;
            this.min = dfa_38;
            this.max = dfa_39;
            this.accept = dfa_40;
            this.special = dfa_41;
            this.transition = dfa_42;
        }
        public String getDescription() {
            return "4044:1: rule__XMemberFeatureCall__Alternatives_1_1_3_1 : ( ( ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0 ) ) | ( ( rule__XMemberFeatureCall__Group_1_1_3_1_1__0 ) ) );";
        }
        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
            TokenStream input = (TokenStream)_input;
        	int _s = s;
            switch ( s ) {
                    case 0 : 
                        int LA33_1 = input.LA(1);

                         
                        int index33_1 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred96_InternalXcore()) ) {s = 8;}

                        else if ( (true) ) {s = 10;}

                         
                        input.seek(index33_1);
                        if ( s>=0 ) return s;
                        break;
                    case 1 : 
                        int LA33_2 = input.LA(1);

                         
                        int index33_2 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred96_InternalXcore()) ) {s = 8;}

                        else if ( (true) ) {s = 10;}

                         
                        input.seek(index33_2);
                        if ( s>=0 ) return s;
                        break;
                    case 2 : 
                        int LA33_3 = input.LA(1);

                         
                        int index33_3 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred96_InternalXcore()) ) {s = 8;}

                        else if ( (true) ) {s = 10;}

                         
                        input.seek(index33_3);
                        if ( s>=0 ) return s;
                        break;
                    case 3 : 
                        int LA33_4 = input.LA(1);

                         
                        int index33_4 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred96_InternalXcore()) ) {s = 8;}

                        else if ( (true) ) {s = 10;}

                         
                        input.seek(index33_4);
                        if ( s>=0 ) return s;
                        break;
                    case 4 : 
                        int LA33_5 = input.LA(1);

                         
                        int index33_5 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred96_InternalXcore()) ) {s = 8;}

                        else if ( (true) ) {s = 10;}

                         
                        input.seek(index33_5);
                        if ( s>=0 ) return s;
                        break;
                    case 5 : 
                        int LA33_6 = input.LA(1);

                         
                        int index33_6 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred96_InternalXcore()) ) {s = 8;}

                        else if ( (true) ) {s = 10;}

                         
                        input.seek(index33_6);
                        if ( s>=0 ) return s;
                        break;
                    case 6 : 
                        int LA33_7 = input.LA(1);

                         
                        int index33_7 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred96_InternalXcore()) ) {s = 8;}

                        else if ( (true) ) {s = 10;}

                         
                        input.seek(index33_7);
                        if ( s>=0 ) return s;
                        break;
            }
            if (state.backtracking>0) {state.failed=true; return -1;}
            NoViableAltException nvae =
                new NoViableAltException(getDescription(), 33, _s, input);
            error(nvae);
            throw nvae;
        }
    }
    static final String dfa_43s = "\100\uffff";
    static final String dfa_44s = "\1\4\66\uffff\1\0\10\uffff";
    static final String dfa_45s = "\1\167\66\uffff\1\0\10\uffff";
    static final String dfa_46s = "\1\uffff\1\1\1\2\1\3\1\4\1\5\46\uffff\1\6\11\uffff\1\7\1\uffff\1\12\1\13\1\14\1\15\1\16\1\17\1\10\1\11";
    static final String dfa_47s = "\67\uffff\1\0\10\uffff}>";
    static final String[] dfa_48s = {
            "\1\54\1\5\3\54\7\uffff\1\5\3\uffff\43\5\13\uffff\1\5\17\uffff\1\5\1\54\1\uffff\1\75\3\uffff\1\2\2\uffff\1\54\3\uffff\1\54\1\66\1\uffff\1\3\3\uffff\1\67\1\70\1\71\1\1\2\54\1\72\1\73\1\74\1\uffff\1\4\5\uffff\1\54",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "\1\uffff",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            ""
    };

    static final short[] dfa_43 = DFA.unpackEncodedString(dfa_43s);
    static final char[] dfa_44 = DFA.unpackEncodedStringToUnsignedChars(dfa_44s);
    static final char[] dfa_45 = DFA.unpackEncodedStringToUnsignedChars(dfa_45s);
    static final short[] dfa_46 = DFA.unpackEncodedString(dfa_46s);
    static final short[] dfa_47 = DFA.unpackEncodedString(dfa_47s);
    static final short[][] dfa_48 = unpackEncodedStringArray(dfa_48s);

    class DFA34 extends DFA {

        public DFA34(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 34;
            this.eot = dfa_43;
            this.eof = dfa_43;
            this.min = dfa_44;
            this.max = dfa_45;
            this.accept = dfa_46;
            this.special = dfa_47;
            this.transition = dfa_48;
        }
        public String getDescription() {
            return "4066:1: rule__XPrimaryExpression__Alternatives : ( ( ruleXConstructorCall ) | ( ruleXBlockExpression ) | ( ruleXSwitchExpression ) | ( ( ruleXSynchronizedExpression ) ) | ( ruleXFeatureCall ) | ( ruleXLiteral ) | ( ruleXIfExpression ) | ( ( ruleXForLoopExpression ) ) | ( ruleXBasicForLoopExpression ) | ( ruleXWhileExpression ) | ( ruleXDoWhileExpression ) | ( ruleXThrowExpression ) | ( ruleXReturnExpression ) | ( ruleXTryCatchFinallyExpression ) | ( ruleXParenthesizedExpression ) );";
        }
        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
            TokenStream input = (TokenStream)_input;
        	int _s = s;
            switch ( s ) {
                    case 0 : 
                        int LA34_55 = input.LA(1);

                         
                        int index34_55 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred104_InternalXcore()) ) {s = 62;}

                        else if ( (synpred105_InternalXcore()) ) {s = 63;}

                         
                        input.seek(index34_55);
                        if ( s>=0 ) return s;
                        break;
            }
            if (state.backtracking>0) {state.failed=true; return -1;}
            NoViableAltException nvae =
                new NoViableAltException(getDescription(), 34, _s, input);
            error(nvae);
            throw nvae;
        }
    }
    static final String dfa_49s = "\1\4\1\0\101\uffff";
    static final String dfa_50s = "\1\167\1\0\101\uffff";
    static final String dfa_51s = "\2\uffff\1\2\77\uffff\1\1";
    static final String dfa_52s = "\1\uffff\1\0\101\uffff}>";
    static final String[] dfa_53s = {
            "\5\2\7\uffff\1\2\2\uffff\44\2\13\uffff\1\2\3\uffff\1\2\2\uffff\1\2\3\uffff\1\2\4\uffff\2\2\1\uffff\1\1\3\uffff\1\2\2\uffff\1\2\3\uffff\2\2\1\uffff\1\2\3\uffff\11\2\1\uffff\1\2\5\uffff\1\2",
            "\1\uffff",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            ""
    };
    static final char[] dfa_49 = DFA.unpackEncodedStringToUnsignedChars(dfa_49s);
    static final char[] dfa_50 = DFA.unpackEncodedStringToUnsignedChars(dfa_50s);
    static final short[] dfa_51 = DFA.unpackEncodedString(dfa_51s);
    static final short[] dfa_52 = DFA.unpackEncodedString(dfa_52s);
    static final short[][] dfa_53 = unpackEncodedStringArray(dfa_53s);

    class DFA37 extends DFA {

        public DFA37(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 37;
            this.eot = dfa_37;
            this.eof = dfa_37;
            this.min = dfa_49;
            this.max = dfa_50;
            this.accept = dfa_51;
            this.special = dfa_52;
            this.transition = dfa_53;
        }
        public String getDescription() {
            return "4240:1: rule__XSwitchExpression__Alternatives_2 : ( ( ( rule__XSwitchExpression__Group_2_0__0 ) ) | ( ( rule__XSwitchExpression__Group_2_1__0 ) ) );";
        }
        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
            TokenStream input = (TokenStream)_input;
        	int _s = s;
            switch ( s ) {
                    case 0 : 
                        int LA37_1 = input.LA(1);

                         
                        int index37_1 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred118_InternalXcore()) ) {s = 66;}

                        else if ( (true) ) {s = 2;}

                         
                        input.seek(index37_1);
                        if ( s>=0 ) return s;
                        break;
            }
            if (state.backtracking>0) {state.failed=true; return -1;}
            NoViableAltException nvae =
                new NoViableAltException(getDescription(), 37, _s, input);
            error(nvae);
            throw nvae;
        }
    }
    static final String dfa_54s = "\12\uffff";
    static final String dfa_55s = "\1\5\6\0\3\uffff";
    static final String dfa_56s = "\1\125\6\0\3\uffff";
    static final String dfa_57s = "\7\uffff\1\1\1\uffff\1\2";
    static final String dfa_58s = "\1\uffff\1\0\1\1\1\2\1\3\1\4\1\5\3\uffff}>";
    static final String[] dfa_59s = {
            "\1\1\12\uffff\1\6\3\uffff\1\2\1\3\1\4\1\5\56\uffff\1\7\16\uffff\1\7",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "",
            "",
            ""
    };

    static final short[] dfa_54 = DFA.unpackEncodedString(dfa_54s);
    static final char[] dfa_55 = DFA.unpackEncodedStringToUnsignedChars(dfa_55s);
    static final char[] dfa_56 = DFA.unpackEncodedStringToUnsignedChars(dfa_56s);
    static final short[] dfa_57 = DFA.unpackEncodedString(dfa_57s);
    static final short[] dfa_58 = DFA.unpackEncodedString(dfa_58s);
    static final short[][] dfa_59 = unpackEncodedStringArray(dfa_59s);

    class DFA41 extends DFA {

        public DFA41(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 41;
            this.eot = dfa_54;
            this.eof = dfa_54;
            this.min = dfa_55;
            this.max = dfa_56;
            this.accept = dfa_57;
            this.special = dfa_58;
            this.transition = dfa_59;
        }
        public String getDescription() {
            return "4330:1: rule__XVariableDeclaration__Alternatives_2 : ( ( ( rule__XVariableDeclaration__Group_2_0__0 ) ) | ( ( rule__XVariableDeclaration__NameAssignment_2_1 ) ) );";
        }
        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
            TokenStream input = (TokenStream)_input;
        	int _s = s;
            switch ( s ) {
                    case 0 : 
                        int LA41_1 = input.LA(1);

                         
                        int index41_1 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred122_InternalXcore()) ) {s = 7;}

                        else if ( (true) ) {s = 9;}

                         
                        input.seek(index41_1);
                        if ( s>=0 ) return s;
                        break;
                    case 1 : 
                        int LA41_2 = input.LA(1);

                         
                        int index41_2 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred122_InternalXcore()) ) {s = 7;}

                        else if ( (true) ) {s = 9;}

                         
                        input.seek(index41_2);
                        if ( s>=0 ) return s;
                        break;
                    case 2 : 
                        int LA41_3 = input.LA(1);

                         
                        int index41_3 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred122_InternalXcore()) ) {s = 7;}

                        else if ( (true) ) {s = 9;}

                         
                        input.seek(index41_3);
                        if ( s>=0 ) return s;
                        break;
                    case 3 : 
                        int LA41_4 = input.LA(1);

                         
                        int index41_4 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred122_InternalXcore()) ) {s = 7;}

                        else if ( (true) ) {s = 9;}

                         
                        input.seek(index41_4);
                        if ( s>=0 ) return s;
                        break;
                    case 4 : 
                        int LA41_5 = input.LA(1);

                         
                        int index41_5 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred122_InternalXcore()) ) {s = 7;}

                        else if ( (true) ) {s = 9;}

                         
                        input.seek(index41_5);
                        if ( s>=0 ) return s;
                        break;
                    case 5 : 
                        int LA41_6 = input.LA(1);

                         
                        int index41_6 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred122_InternalXcore()) ) {s = 7;}

                        else if ( (true) ) {s = 9;}

                         
                        input.seek(index41_6);
                        if ( s>=0 ) return s;
                        break;
            }
            if (state.backtracking>0) {state.failed=true; return -1;}
            NoViableAltException nvae =
                new NoViableAltException(getDescription(), 41, _s, input);
            error(nvae);
            throw nvae;
        }
    }

    class DFA42 extends DFA {

        public DFA42(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 42;
            this.eot = dfa_37;
            this.eof = dfa_37;
            this.min = dfa_38;
            this.max = dfa_39;
            this.accept = dfa_40;
            this.special = dfa_41;
            this.transition = dfa_42;
        }
        public String getDescription() {
            return "4352:1: rule__XFeatureCall__Alternatives_3_1 : ( ( ( rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0 ) ) | ( ( rule__XFeatureCall__Group_3_1_1__0 ) ) );";
        }
        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
            TokenStream input = (TokenStream)_input;
        	int _s = s;
            switch ( s ) {
                    case 0 : 
                        int LA42_1 = input.LA(1);

                         
                        int index42_1 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred123_InternalXcore()) ) {s = 8;}

                        else if ( (true) ) {s = 10;}

                         
                        input.seek(index42_1);
                        if ( s>=0 ) return s;
                        break;
                    case 1 : 
                        int LA42_2 = input.LA(1);

                         
                        int index42_2 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred123_InternalXcore()) ) {s = 8;}

                        else if ( (true) ) {s = 10;}

                         
                        input.seek(index42_2);
                        if ( s>=0 ) return s;
                        break;
                    case 2 : 
                        int LA42_3 = input.LA(1);

                         
                        int index42_3 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred123_InternalXcore()) ) {s = 8;}

                        else if ( (true) ) {s = 10;}

                         
                        input.seek(index42_3);
                        if ( s>=0 ) return s;
                        break;
                    case 3 : 
                        int LA42_4 = input.LA(1);

                         
                        int index42_4 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred123_InternalXcore()) ) {s = 8;}

                        else if ( (true) ) {s = 10;}

                         
                        input.seek(index42_4);
                        if ( s>=0 ) return s;
                        break;
                    case 4 : 
                        int LA42_5 = input.LA(1);

                         
                        int index42_5 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred123_InternalXcore()) ) {s = 8;}

                        else if ( (true) ) {s = 10;}

                         
                        input.seek(index42_5);
                        if ( s>=0 ) return s;
                        break;
                    case 5 : 
                        int LA42_6 = input.LA(1);

                         
                        int index42_6 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred123_InternalXcore()) ) {s = 8;}

                        else if ( (true) ) {s = 10;}

                         
                        input.seek(index42_6);
                        if ( s>=0 ) return s;
                        break;
                    case 6 : 
                        int LA42_7 = input.LA(1);

                         
                        int index42_7 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred123_InternalXcore()) ) {s = 8;}

                        else if ( (true) ) {s = 10;}

                         
                        input.seek(index42_7);
                        if ( s>=0 ) return s;
                        break;
            }
            if (state.backtracking>0) {state.failed=true; return -1;}
            NoViableAltException nvae =
                new NoViableAltException(getDescription(), 42, _s, input);
            error(nvae);
            throw nvae;
        }
    }

    class DFA44 extends DFA {

        public DFA44(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 44;
            this.eot = dfa_37;
            this.eof = dfa_37;
            this.min = dfa_38;
            this.max = dfa_39;
            this.accept = dfa_40;
            this.special = dfa_41;
            this.transition = dfa_42;
        }
        public String getDescription() {
            return "4398:1: rule__XConstructorCall__Alternatives_4_1 : ( ( ( rule__XConstructorCall__ArgumentsAssignment_4_1_0 ) ) | ( ( rule__XConstructorCall__Group_4_1_1__0 ) ) );";
        }
        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
            TokenStream input = (TokenStream)_input;
        	int _s = s;
            switch ( s ) {
                    case 0 : 
                        int LA44_1 = input.LA(1);

                         
                        int index44_1 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred125_InternalXcore()) ) {s = 8;}

                        else if ( (true) ) {s = 10;}

                         
                        input.seek(index44_1);
                        if ( s>=0 ) return s;
                        break;
                    case 1 : 
                        int LA44_2 = input.LA(1);

                         
                        int index44_2 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred125_InternalXcore()) ) {s = 8;}

                        else if ( (true) ) {s = 10;}

                         
                        input.seek(index44_2);
                        if ( s>=0 ) return s;
                        break;
                    case 2 : 
                        int LA44_3 = input.LA(1);

                         
                        int index44_3 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred125_InternalXcore()) ) {s = 8;}

                        else if ( (true) ) {s = 10;}

                         
                        input.seek(index44_3);
                        if ( s>=0 ) return s;
                        break;
                    case 3 : 
                        int LA44_4 = input.LA(1);

                         
                        int index44_4 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred125_InternalXcore()) ) {s = 8;}

                        else if ( (true) ) {s = 10;}

                         
                        input.seek(index44_4);
                        if ( s>=0 ) return s;
                        break;
                    case 4 : 
                        int LA44_5 = input.LA(1);

                         
                        int index44_5 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred125_InternalXcore()) ) {s = 8;}

                        else if ( (true) ) {s = 10;}

                         
                        input.seek(index44_5);
                        if ( s>=0 ) return s;
                        break;
                    case 5 : 
                        int LA44_6 = input.LA(1);

                         
                        int index44_6 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred125_InternalXcore()) ) {s = 8;}

                        else if ( (true) ) {s = 10;}

                         
                        input.seek(index44_6);
                        if ( s>=0 ) return s;
                        break;
                    case 6 : 
                        int LA44_7 = input.LA(1);

                         
                        int index44_7 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred125_InternalXcore()) ) {s = 8;}

                        else if ( (true) ) {s = 10;}

                         
                        input.seek(index44_7);
                        if ( s>=0 ) return s;
                        break;
            }
            if (state.backtracking>0) {state.failed=true; return -1;}
            NoViableAltException nvae =
                new NoViableAltException(getDescription(), 44, _s, input);
            error(nvae);
            throw nvae;
        }
    }
    static final String dfa_60s = "\21\uffff";
    static final String dfa_61s = "\2\uffff\6\11\3\uffff\6\11";
    static final String dfa_62s = "\1\5\1\uffff\6\120\1\5\2\uffff\6\120";
    static final String dfa_63s = "\1\57\1\uffff\6\136\1\27\2\uffff\6\136";
    static final String dfa_64s = "\1\uffff\1\1\7\uffff\1\2\1\3\6\uffff";
    static final String dfa_65s = "\21\uffff}>";
    static final String[] dfa_66s = {
            "\1\2\12\uffff\1\7\3\uffff\1\3\1\4\1\5\1\6\27\uffff\1\1",
            "",
            "\1\10\15\uffff\1\11",
            "\1\10\15\uffff\1\11",
            "\1\10\15\uffff\1\11",
            "\1\10\15\uffff\1\11",
            "\1\10\15\uffff\1\11",
            "\1\10\15\uffff\1\11",
            "\1\13\12\uffff\1\20\1\uffff\1\12\1\uffff\1\14\1\15\1\16\1\17",
            "",
            "",
            "\1\10\15\uffff\1\11",
            "\1\10\15\uffff\1\11",
            "\1\10\15\uffff\1\11",
            "\1\10\15\uffff\1\11",
            "\1\10\15\uffff\1\11",
            "\1\10\15\uffff\1\11"
    };

    static final short[] dfa_60 = DFA.unpackEncodedString(dfa_60s);
    static final short[] dfa_61 = DFA.unpackEncodedString(dfa_61s);
    static final char[] dfa_62 = DFA.unpackEncodedStringToUnsignedChars(dfa_62s);
    static final char[] dfa_63 = DFA.unpackEncodedStringToUnsignedChars(dfa_63s);
    static final short[] dfa_64 = DFA.unpackEncodedString(dfa_64s);
    static final short[] dfa_65 = DFA.unpackEncodedString(dfa_65s);
    static final short[][] dfa_66 = unpackEncodedStringArray(dfa_66s);

    class DFA53 extends DFA {

        public DFA53(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 53;
            this.eot = dfa_60;
            this.eof = dfa_61;
            this.min = dfa_62;
            this.max = dfa_63;
            this.accept = dfa_64;
            this.special = dfa_65;
            this.transition = dfa_66;
        }
        public String getDescription() {
            return "4598:1: rule__XImportDeclaration__Alternatives_1 : ( ( ( rule__XImportDeclaration__Group_1_0__0 ) ) | ( ( rule__XImportDeclaration__ImportedTypeAssignment_1_1 ) ) | ( ( rule__XImportDeclaration__ImportedNamespaceAssignment_1_2 ) ) );";
        }
    }
    static final String dfa_67s = "\1\10\11\uffff";
    static final String dfa_68s = "\1\4\7\0\2\uffff";
    static final String dfa_69s = "\1\167\7\0\2\uffff";
    static final String dfa_70s = "\10\uffff\1\2\1\1";
    static final String dfa_71s = "\1\uffff\1\4\1\2\1\1\1\6\1\5\1\3\1\0\2\uffff}>";
    static final String[] dfa_72s = {
            "\5\10\5\uffff\3\10\1\uffff\45\10\1\1\1\2\1\3\1\4\1\5\5\10\1\7\1\6\21\10\1\uffff\3\10\1\uffff\2\10\1\uffff\31\10\1\uffff\2\10",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "",
            ""
    };
    static final short[] dfa_67 = DFA.unpackEncodedString(dfa_67s);
    static final char[] dfa_68 = DFA.unpackEncodedStringToUnsignedChars(dfa_68s);
    static final char[] dfa_69 = DFA.unpackEncodedStringToUnsignedChars(dfa_69s);
    static final short[] dfa_70 = DFA.unpackEncodedString(dfa_70s);
    static final short[] dfa_71 = DFA.unpackEncodedString(dfa_71s);
    static final short[][] dfa_72 = unpackEncodedStringArray(dfa_72s);

    class DFA119 extends DFA {

        public DFA119(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 119;
            this.eot = dfa_54;
            this.eof = dfa_67;
            this.min = dfa_68;
            this.max = dfa_69;
            this.accept = dfa_70;
            this.special = dfa_71;
            this.transition = dfa_72;
        }
        public String getDescription() {
            return "11906:1: ( rule__XAssignment__Group_1_1__0 )?";
        }
        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
            TokenStream input = (TokenStream)_input;
        	int _s = s;
            switch ( s ) {
                    case 0 : 
                        int LA119_7 = input.LA(1);

                         
                        int index119_7 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred201_InternalXcore()) ) {s = 9;}

                        else if ( (true) ) {s = 8;}

                         
                        input.seek(index119_7);
                        if ( s>=0 ) return s;
                        break;
                    case 1 : 
                        int LA119_3 = input.LA(1);

                         
                        int index119_3 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred201_InternalXcore()) ) {s = 9;}

                        else if ( (true) ) {s = 8;}

                         
                        input.seek(index119_3);
                        if ( s>=0 ) return s;
                        break;
                    case 2 : 
                        int LA119_2 = input.LA(1);

                         
                        int index119_2 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred201_InternalXcore()) ) {s = 9;}

                        else if ( (true) ) {s = 8;}

                         
                        input.seek(index119_2);
                        if ( s>=0 ) return s;
                        break;
                    case 3 : 
                        int LA119_6 = input.LA(1);

                         
                        int index119_6 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred201_InternalXcore()) ) {s = 9;}

                        else if ( (true) ) {s = 8;}

                         
                        input.seek(index119_6);
                        if ( s>=0 ) return s;
                        break;
                    case 4 : 
                        int LA119_1 = input.LA(1);

                         
                        int index119_1 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred201_InternalXcore()) ) {s = 9;}

                        else if ( (true) ) {s = 8;}

                         
                        input.seek(index119_1);
                        if ( s>=0 ) return s;
                        break;
                    case 5 : 
                        int LA119_5 = input.LA(1);

                         
                        int index119_5 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred201_InternalXcore()) ) {s = 9;}

                        else if ( (true) ) {s = 8;}

                         
                        input.seek(index119_5);
                        if ( s>=0 ) return s;
                        break;
                    case 6 : 
                        int LA119_4 = input.LA(1);

                         
                        int index119_4 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred201_InternalXcore()) ) {s = 9;}

                        else if ( (true) ) {s = 8;}

                         
                        input.seek(index119_4);
                        if ( s>=0 ) return s;
                        break;
            }
            if (state.backtracking>0) {state.failed=true; return -1;}
            NoViableAltException nvae =
                new NoViableAltException(getDescription(), 119, _s, input);
            error(nvae);
            throw nvae;
        }
    }
    static final String dfa_73s = "\1\1\12\uffff";
    static final String dfa_74s = "\1\4\1\uffff\10\0\1\uffff";
    static final String dfa_75s = "\1\167\1\uffff\10\0\1\uffff";
    static final String dfa_76s = "\1\uffff\1\2\10\uffff\1\1";
    static final String dfa_77s = "\2\uffff\1\4\1\5\1\0\1\1\1\3\1\7\1\6\1\2\1\uffff}>";
    static final String[] dfa_78s = {
            "\5\1\5\uffff\3\1\1\uffff\57\1\1\3\1\2\1\4\1\5\1\6\1\7\1\10\1\11\13\1\1\uffff\3\1\1\uffff\2\1\1\uffff\31\1\1\uffff\2\1",
            "",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            ""
    };
    static final short[] dfa_73 = DFA.unpackEncodedString(dfa_73s);
    static final char[] dfa_74 = DFA.unpackEncodedStringToUnsignedChars(dfa_74s);
    static final char[] dfa_75 = DFA.unpackEncodedStringToUnsignedChars(dfa_75s);
    static final short[] dfa_76 = DFA.unpackEncodedString(dfa_76s);
    static final short[] dfa_77 = DFA.unpackEncodedString(dfa_77s);
    static final short[][] dfa_78 = unpackEncodedStringArray(dfa_78s);

    class DFA125 extends DFA {

        public DFA125(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 125;
            this.eot = dfa_24;
            this.eof = dfa_73;
            this.min = dfa_74;
            this.max = dfa_75;
            this.accept = dfa_76;
            this.special = dfa_77;
            this.transition = dfa_78;
        }
        public String getDescription() {
            return "()* loopback of 13398:1: ( rule__XOtherOperatorExpression__Group_1__0 )*";
        }
        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
            TokenStream input = (TokenStream)_input;
        	int _s = s;
            switch ( s ) {
                    case 0 : 
                        int LA125_4 = input.LA(1);

                         
                        int index125_4 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred207_InternalXcore()) ) {s = 10;}

                        else if ( (true) ) {s = 1;}

                         
                        input.seek(index125_4);
                        if ( s>=0 ) return s;
                        break;
                    case 1 : 
                        int LA125_5 = input.LA(1);

                         
                        int index125_5 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred207_InternalXcore()) ) {s = 10;}

                        else if ( (true) ) {s = 1;}

                         
                        input.seek(index125_5);
                        if ( s>=0 ) return s;
                        break;
                    case 2 : 
                        int LA125_9 = input.LA(1);

                         
                        int index125_9 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred207_InternalXcore()) ) {s = 10;}

                        else if ( (true) ) {s = 1;}

                         
                        input.seek(index125_9);
                        if ( s>=0 ) return s;
                        break;
                    case 3 : 
                        int LA125_6 = input.LA(1);

                         
                        int index125_6 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred207_InternalXcore()) ) {s = 10;}

                        else if ( (true) ) {s = 1;}

                         
                        input.seek(index125_6);
                        if ( s>=0 ) return s;
                        break;
                    case 4 : 
                        int LA125_2 = input.LA(1);

                         
                        int index125_2 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred207_InternalXcore()) ) {s = 10;}

                        else if ( (true) ) {s = 1;}

                         
                        input.seek(index125_2);
                        if ( s>=0 ) return s;
                        break;
                    case 5 : 
                        int LA125_3 = input.LA(1);

                         
                        int index125_3 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred207_InternalXcore()) ) {s = 10;}

                        else if ( (true) ) {s = 1;}

                         
                        input.seek(index125_3);
                        if ( s>=0 ) return s;
                        break;
                    case 6 : 
                        int LA125_8 = input.LA(1);

                         
                        int index125_8 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred207_InternalXcore()) ) {s = 10;}

                        else if ( (true) ) {s = 1;}

                         
                        input.seek(index125_8);
                        if ( s>=0 ) return s;
                        break;
                    case 7 : 
                        int LA125_7 = input.LA(1);

                         
                        int index125_7 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred207_InternalXcore()) ) {s = 10;}

                        else if ( (true) ) {s = 1;}

                         
                        input.seek(index125_7);
                        if ( s>=0 ) return s;
                        break;
            }
            if (state.backtracking>0) {state.failed=true; return -1;}
            NoViableAltException nvae =
                new NoViableAltException(getDescription(), 125, _s, input);
            error(nvae);
            throw nvae;
        }
    }
    static final String dfa_79s = "\155\uffff";
    static final String dfa_80s = "\1\2\154\uffff";
    static final String dfa_81s = "\1\4\1\0\153\uffff";
    static final String dfa_82s = "\1\167\1\0\153\uffff";
    static final String dfa_83s = "\2\uffff\1\2\151\uffff\1\1";
    static final String dfa_84s = "\1\uffff\1\0\153\uffff}>";
    static final String[] dfa_85s = {
            "\5\2\5\uffff\3\2\1\uffff\102\2\1\uffff\1\1\2\2\1\uffff\2\2\1\uffff\31\2\1\uffff\2\2",
            "\1\uffff",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            ""
    };

    static final short[] dfa_79 = DFA.unpackEncodedString(dfa_79s);
    static final short[] dfa_80 = DFA.unpackEncodedString(dfa_80s);
    static final char[] dfa_81 = DFA.unpackEncodedStringToUnsignedChars(dfa_81s);
    static final char[] dfa_82 = DFA.unpackEncodedStringToUnsignedChars(dfa_82s);
    static final short[] dfa_83 = DFA.unpackEncodedString(dfa_83s);
    static final short[] dfa_84 = DFA.unpackEncodedString(dfa_84s);
    static final short[][] dfa_85 = unpackEncodedStringArray(dfa_85s);

    class DFA132 extends DFA {

        public DFA132(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 132;
            this.eot = dfa_79;
            this.eof = dfa_80;
            this.min = dfa_81;
            this.max = dfa_82;
            this.accept = dfa_83;
            this.special = dfa_84;
            this.transition = dfa_85;
        }
        public String getDescription() {
            return "15225:1: ( rule__XMemberFeatureCall__Group_1_1_3__0 )?";
        }
        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
            TokenStream input = (TokenStream)_input;
        	int _s = s;
            switch ( s ) {
                    case 0 : 
                        int LA132_1 = input.LA(1);

                         
                        int index132_1 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred214_InternalXcore()) ) {s = 108;}

                        else if ( (true) ) {s = 2;}

                         
                        input.seek(index132_1);
                        if ( s>=0 ) return s;
                        break;
            }
            if (state.backtracking>0) {state.failed=true; return -1;}
            NoViableAltException nvae =
                new NoViableAltException(getDescription(), 132, _s, input);
            error(nvae);
            throw nvae;
        }
    }
    static final String[] dfa_86s = {
            "\5\2\5\uffff\3\2\1\uffff\102\2\1\uffff\3\2\1\uffff\2\2\1\uffff\1\1\30\2\1\uffff\2\2",
            "\1\uffff",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            ""
    };
    static final short[][] dfa_86 = unpackEncodedStringArray(dfa_86s);

    class DFA133 extends DFA {

        public DFA133(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 133;
            this.eot = dfa_79;
            this.eof = dfa_80;
            this.min = dfa_81;
            this.max = dfa_82;
            this.accept = dfa_83;
            this.special = dfa_84;
            this.transition = dfa_86;
        }
        public String getDescription() {
            return "15253:1: ( rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4 )?";
        }
        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
            TokenStream input = (TokenStream)_input;
        	int _s = s;
            switch ( s ) {
                    case 0 : 
                        int LA133_1 = input.LA(1);

                         
                        int index133_1 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred215_InternalXcore()) ) {s = 108;}

                        else if ( (true) ) {s = 2;}

                         
                        input.seek(index133_1);
                        if ( s>=0 ) return s;
                        break;
            }
            if (state.backtracking>0) {state.failed=true; return -1;}
            NoViableAltException nvae =
                new NoViableAltException(getDescription(), 133, _s, input);
            error(nvae);
            throw nvae;
        }
    }
    static final String dfa_87s = "\106\uffff";
    static final String dfa_88s = "\1\4\7\0\76\uffff";
    static final String dfa_89s = "\1\167\7\0\76\uffff";
    static final String dfa_90s = "\10\uffff\1\1\1\uffff\1\2\73\uffff";
    static final String dfa_91s = "\1\uffff\1\0\1\1\1\2\1\3\1\4\1\5\1\6\76\uffff}>";
    static final String[] dfa_92s = {
            "\1\12\1\1\3\12\7\uffff\1\6\2\uffff\1\12\1\2\1\3\1\4\1\5\37\12\13\uffff\1\12\3\uffff\1\10\2\uffff\1\12\3\uffff\1\12\3\uffff\3\12\1\uffff\1\7\3\uffff\1\12\2\uffff\2\12\2\uffff\2\12\1\uffff\1\12\3\uffff\11\12\1\uffff\1\12\3\uffff\1\10\2\12",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            ""
    };

    static final short[] dfa_87 = DFA.unpackEncodedString(dfa_87s);
    static final char[] dfa_88 = DFA.unpackEncodedStringToUnsignedChars(dfa_88s);
    static final char[] dfa_89 = DFA.unpackEncodedStringToUnsignedChars(dfa_89s);
    static final short[] dfa_90 = DFA.unpackEncodedString(dfa_90s);
    static final short[] dfa_91 = DFA.unpackEncodedString(dfa_91s);
    static final short[][] dfa_92 = unpackEncodedStringArray(dfa_92s);

    class DFA141 extends DFA {

        public DFA141(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 141;
            this.eot = dfa_87;
            this.eof = dfa_87;
            this.min = dfa_88;
            this.max = dfa_89;
            this.accept = dfa_90;
            this.special = dfa_91;
            this.transition = dfa_92;
        }
        public String getDescription() {
            return "16394:1: ( rule__XClosure__Group_1__0 )?";
        }
        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
            TokenStream input = (TokenStream)_input;
        	int _s = s;
            switch ( s ) {
                    case 0 : 
                        int LA141_1 = input.LA(1);

                         
                        int index141_1 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred223_InternalXcore()) ) {s = 8;}

                        else if ( (true) ) {s = 10;}

                         
                        input.seek(index141_1);
                        if ( s>=0 ) return s;
                        break;
                    case 1 : 
                        int LA141_2 = input.LA(1);

                         
                        int index141_2 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred223_InternalXcore()) ) {s = 8;}

                        else if ( (true) ) {s = 10;}

                         
                        input.seek(index141_2);
                        if ( s>=0 ) return s;
                        break;
                    case 2 : 
                        int LA141_3 = input.LA(1);

                         
                        int index141_3 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred223_InternalXcore()) ) {s = 8;}

                        else if ( (true) ) {s = 10;}

                         
                        input.seek(index141_3);
                        if ( s>=0 ) return s;
                        break;
                    case 3 : 
                        int LA141_4 = input.LA(1);

                         
                        int index141_4 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred223_InternalXcore()) ) {s = 8;}

                        else if ( (true) ) {s = 10;}

                         
                        input.seek(index141_4);
                        if ( s>=0 ) return s;
                        break;
                    case 4 : 
                        int LA141_5 = input.LA(1);

                         
                        int index141_5 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred223_InternalXcore()) ) {s = 8;}

                        else if ( (true) ) {s = 10;}

                         
                        input.seek(index141_5);
                        if ( s>=0 ) return s;
                        break;
                    case 5 : 
                        int LA141_6 = input.LA(1);

                         
                        int index141_6 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred223_InternalXcore()) ) {s = 8;}

                        else if ( (true) ) {s = 10;}

                         
                        input.seek(index141_6);
                        if ( s>=0 ) return s;
                        break;
                    case 6 : 
                        int LA141_7 = input.LA(1);

                         
                        int index141_7 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred223_InternalXcore()) ) {s = 8;}

                        else if ( (true) ) {s = 10;}

                         
                        input.seek(index141_7);
                        if ( s>=0 ) return s;
                        break;
            }
            if (state.backtracking>0) {state.failed=true; return -1;}
            NoViableAltException nvae =
                new NoViableAltException(getDescription(), 141, _s, input);
            error(nvae);
            throw nvae;
        }
    }
    static final String dfa_93s = "\102\uffff";
    static final String dfa_94s = "\1\4\7\0\72\uffff";
    static final String dfa_95s = "\1\167\7\0\72\uffff";
    static final String dfa_96s = "\10\uffff\1\1\1\2\70\uffff";
    static final String dfa_97s = "\1\uffff\1\0\1\1\1\2\1\3\1\4\1\5\1\6\72\uffff}>";
    static final String[] dfa_98s = {
            "\1\11\1\1\3\11\7\uffff\1\6\2\uffff\1\11\1\2\1\3\1\4\1\5\37\11\13\uffff\1\11\3\uffff\1\10\2\uffff\1\11\3\uffff\1\11\4\uffff\2\11\1\uffff\1\7\3\uffff\1\11\2\uffff\1\11\3\uffff\2\11\1\uffff\1\11\3\uffff\11\11\1\uffff\1\11\5\uffff\1\11",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            ""
    };

    static final short[] dfa_93 = DFA.unpackEncodedString(dfa_93s);
    static final char[] dfa_94 = DFA.unpackEncodedStringToUnsignedChars(dfa_94s);
    static final char[] dfa_95 = DFA.unpackEncodedStringToUnsignedChars(dfa_95s);
    static final short[] dfa_96 = DFA.unpackEncodedString(dfa_96s);
    static final short[] dfa_97 = DFA.unpackEncodedString(dfa_97s);
    static final short[][] dfa_98 = unpackEncodedStringArray(dfa_98s);

    class DFA151 extends DFA {

        public DFA151(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 151;
            this.eot = dfa_93;
            this.eof = dfa_93;
            this.min = dfa_94;
            this.max = dfa_95;
            this.accept = dfa_96;
            this.special = dfa_97;
            this.transition = dfa_98;
        }
        public String getDescription() {
            return "18062:1: ( rule__XSwitchExpression__Group_2_1_0__0 )?";
        }
        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
            TokenStream input = (TokenStream)_input;
        	int _s = s;
            switch ( s ) {
                    case 0 : 
                        int LA151_1 = input.LA(1);

                         
                        int index151_1 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred233_InternalXcore()) ) {s = 8;}

                        else if ( (true) ) {s = 9;}

                         
                        input.seek(index151_1);
                        if ( s>=0 ) return s;
                        break;
                    case 1 : 
                        int LA151_2 = input.LA(1);

                         
                        int index151_2 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred233_InternalXcore()) ) {s = 8;}

                        else if ( (true) ) {s = 9;}

                         
                        input.seek(index151_2);
                        if ( s>=0 ) return s;
                        break;
                    case 2 : 
                        int LA151_3 = input.LA(1);

                         
                        int index151_3 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred233_InternalXcore()) ) {s = 8;}

                        else if ( (true) ) {s = 9;}

                         
                        input.seek(index151_3);
                        if ( s>=0 ) return s;
                        break;
                    case 3 : 
                        int LA151_4 = input.LA(1);

                         
                        int index151_4 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred233_InternalXcore()) ) {s = 8;}

                        else if ( (true) ) {s = 9;}

                         
                        input.seek(index151_4);
                        if ( s>=0 ) return s;
                        break;
                    case 4 : 
                        int LA151_5 = input.LA(1);

                         
                        int index151_5 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred233_InternalXcore()) ) {s = 8;}

                        else if ( (true) ) {s = 9;}

                         
                        input.seek(index151_5);
                        if ( s>=0 ) return s;
                        break;
                    case 5 : 
                        int LA151_6 = input.LA(1);

                         
                        int index151_6 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred233_InternalXcore()) ) {s = 8;}

                        else if ( (true) ) {s = 9;}

                         
                        input.seek(index151_6);
                        if ( s>=0 ) return s;
                        break;
                    case 6 : 
                        int LA151_7 = input.LA(1);

                         
                        int index151_7 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred233_InternalXcore()) ) {s = 8;}

                        else if ( (true) ) {s = 9;}

                         
                        input.seek(index151_7);
                        if ( s>=0 ) return s;
                        break;
            }
            if (state.backtracking>0) {state.failed=true; return -1;}
            NoViableAltException nvae =
                new NoViableAltException(getDescription(), 151, _s, input);
            error(nvae);
            throw nvae;
        }
    }

    class DFA162 extends DFA {

        public DFA162(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 162;
            this.eot = dfa_79;
            this.eof = dfa_80;
            this.min = dfa_81;
            this.max = dfa_82;
            this.accept = dfa_83;
            this.special = dfa_84;
            this.transition = dfa_85;
        }
        public String getDescription() {
            return "20358:1: ( rule__XFeatureCall__Group_3__0 )?";
        }
        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
            TokenStream input = (TokenStream)_input;
        	int _s = s;
            switch ( s ) {
                    case 0 : 
                        int LA162_1 = input.LA(1);

                         
                        int index162_1 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred244_InternalXcore()) ) {s = 108;}

                        else if ( (true) ) {s = 2;}

                         
                        input.seek(index162_1);
                        if ( s>=0 ) return s;
                        break;
            }
            if (state.backtracking>0) {state.failed=true; return -1;}
            NoViableAltException nvae =
                new NoViableAltException(getDescription(), 162, _s, input);
            error(nvae);
            throw nvae;
        }
    }

    class DFA163 extends DFA {

        public DFA163(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 163;
            this.eot = dfa_79;
            this.eof = dfa_80;
            this.min = dfa_81;
            this.max = dfa_82;
            this.accept = dfa_83;
            this.special = dfa_84;
            this.transition = dfa_86;
        }
        public String getDescription() {
            return "20386:1: ( rule__XFeatureCall__FeatureCallArgumentsAssignment_4 )?";
        }
        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
            TokenStream input = (TokenStream)_input;
        	int _s = s;
            switch ( s ) {
                    case 0 : 
                        int LA163_1 = input.LA(1);

                         
                        int index163_1 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred245_InternalXcore()) ) {s = 108;}

                        else if ( (true) ) {s = 2;}

                         
                        input.seek(index163_1);
                        if ( s>=0 ) return s;
                        break;
            }
            if (state.backtracking>0) {state.failed=true; return -1;}
            NoViableAltException nvae =
                new NoViableAltException(getDescription(), 163, _s, input);
            error(nvae);
            throw nvae;
        }
    }
    static final String[] dfa_99s = {
            "\5\2\5\uffff\3\2\1\uffff\60\2\1\1\21\2\1\uffff\3\2\1\uffff\2\2\1\uffff\31\2\1\uffff\2\2",
            "\1\uffff",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            ""
    };
    static final short[][] dfa_99 = unpackEncodedStringArray(dfa_99s);

    class DFA167 extends DFA {

        public DFA167(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 167;
            this.eot = dfa_79;
            this.eof = dfa_80;
            this.min = dfa_81;
            this.max = dfa_82;
            this.accept = dfa_83;
            this.special = dfa_84;
            this.transition = dfa_99;
        }
        public String getDescription() {
            return "20924:1: ( rule__XConstructorCall__Group_3__0 )?";
        }
        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
            TokenStream input = (TokenStream)_input;
        	int _s = s;
            switch ( s ) {
                    case 0 : 
                        int LA167_1 = input.LA(1);

                         
                        int index167_1 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred249_InternalXcore()) ) {s = 108;}

                        else if ( (true) ) {s = 2;}

                         
                        input.seek(index167_1);
                        if ( s>=0 ) return s;
                        break;
            }
            if (state.backtracking>0) {state.failed=true; return -1;}
            NoViableAltException nvae =
                new NoViableAltException(getDescription(), 167, _s, input);
            error(nvae);
            throw nvae;
        }
    }

    class DFA168 extends DFA {

        public DFA168(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 168;
            this.eot = dfa_79;
            this.eof = dfa_80;
            this.min = dfa_81;
            this.max = dfa_82;
            this.accept = dfa_83;
            this.special = dfa_84;
            this.transition = dfa_85;
        }
        public String getDescription() {
            return "20953:1: ( rule__XConstructorCall__Group_4__0 )?";
        }
        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
            TokenStream input = (TokenStream)_input;
        	int _s = s;
            switch ( s ) {
                    case 0 : 
                        int LA168_1 = input.LA(1);

                         
                        int index168_1 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred250_InternalXcore()) ) {s = 108;}

                        else if ( (true) ) {s = 2;}

                         
                        input.seek(index168_1);
                        if ( s>=0 ) return s;
                        break;
            }
            if (state.backtracking>0) {state.failed=true; return -1;}
            NoViableAltException nvae =
                new NoViableAltException(getDescription(), 168, _s, input);
            error(nvae);
            throw nvae;
        }
    }

    class DFA169 extends DFA {

        public DFA169(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 169;
            this.eot = dfa_79;
            this.eof = dfa_80;
            this.min = dfa_81;
            this.max = dfa_82;
            this.accept = dfa_83;
            this.special = dfa_84;
            this.transition = dfa_86;
        }
        public String getDescription() {
            return "20981:1: ( rule__XConstructorCall__ArgumentsAssignment_5 )?";
        }
        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
            TokenStream input = (TokenStream)_input;
        	int _s = s;
            switch ( s ) {
                    case 0 : 
                        int LA169_1 = input.LA(1);

                         
                        int index169_1 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred251_InternalXcore()) ) {s = 108;}

                        else if ( (true) ) {s = 2;}

                         
                        input.seek(index169_1);
                        if ( s>=0 ) return s;
                        break;
            }
            if (state.backtracking>0) {state.failed=true; return -1;}
            NoViableAltException nvae =
                new NoViableAltException(getDescription(), 169, _s, input);
            error(nvae);
            throw nvae;
        }
    }
    static final String dfa_100s = "\1\101\154\uffff";
    static final String dfa_101s = "\1\4\100\0\54\uffff";
    static final String dfa_102s = "\1\167\100\0\54\uffff";
    static final String dfa_103s = "\101\uffff\1\2\52\uffff\1\1";
    static final String dfa_104s = "\1\uffff\1\0\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\11\1\12\1\13\1\14\1\15\1\16\1\17\1\20\1\21\1\22\1\23\1\24\1\25\1\26\1\27\1\30\1\31\1\32\1\33\1\34\1\35\1\36\1\37\1\40\1\41\1\42\1\43\1\44\1\45\1\46\1\47\1\50\1\51\1\52\1\53\1\54\1\55\1\56\1\57\1\60\1\61\1\62\1\63\1\64\1\65\1\66\1\67\1\70\1\71\1\72\1\73\1\74\1\75\1\76\1\77\54\uffff}>";
    static final String[] dfa_105s = {
            "\1\64\1\1\1\63\1\65\1\67\5\uffff\2\101\1\6\1\uffff\1\101\1\50\1\2\1\3\1\4\1\5\1\7\1\10\1\11\1\12\1\13\1\14\1\15\1\16\1\17\1\20\1\21\1\22\1\23\1\24\1\25\1\26\1\27\1\30\1\31\1\32\1\33\1\34\1\35\1\36\1\37\1\40\1\41\1\42\1\43\1\44\1\45\13\101\1\55\6\101\1\47\3\101\1\46\4\101\1\56\1\61\1\uffff\1\100\2\101\1\uffff\1\52\1\101\1\uffff\1\60\3\101\1\57\1\71\1\101\1\53\3\101\1\72\1\73\1\74\1\51\1\66\1\70\1\75\1\76\1\77\1\101\1\54\3\101\1\uffff\1\101\1\62",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            ""
    };
    static final short[] dfa_100 = DFA.unpackEncodedString(dfa_100s);
    static final char[] dfa_101 = DFA.unpackEncodedStringToUnsignedChars(dfa_101s);
    static final char[] dfa_102 = DFA.unpackEncodedStringToUnsignedChars(dfa_102s);
    static final short[] dfa_103 = DFA.unpackEncodedString(dfa_103s);
    static final short[] dfa_104 = DFA.unpackEncodedString(dfa_104s);
    static final short[][] dfa_105 = unpackEncodedStringArray(dfa_105s);

    class DFA174 extends DFA {

        public DFA174(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 174;
            this.eot = dfa_79;
            this.eof = dfa_100;
            this.min = dfa_101;
            this.max = dfa_102;
            this.accept = dfa_103;
            this.special = dfa_104;
            this.transition = dfa_105;
        }
        public String getDescription() {
            return "22034:1: ( rule__XReturnExpression__ExpressionAssignment_2 )?";
        }
        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
            TokenStream input = (TokenStream)_input;
        	int _s = s;
            switch ( s ) {
                    case 0 : 
                        int LA174_1 = input.LA(1);

                         
                        int index174_1 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred256_InternalXcore()) ) {s = 108;}

                        else if ( (true) ) {s = 65;}

                         
                        input.seek(index174_1);
                        if ( s>=0 ) return s;
                        break;
                    case 1 : 
                        int LA174_2 = input.LA(1);

                         
                        int index174_2 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred256_InternalXcore()) ) {s = 108;}

                        else if ( (true) ) {s = 65;}

                         
                        input.seek(index174_2);
                        if ( s>=0 ) return s;
                        break;
                    case 2 : 
                        int LA174_3 = input.LA(1);

                         
                        int index174_3 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred256_InternalXcore()) ) {s = 108;}

                        else if ( (true) ) {s = 65;}

                         
                        input.seek(index174_3);
                        if ( s>=0 ) return s;
                        break;
                    case 3 : 
                        int LA174_4 = input.LA(1);

                         
                        int index174_4 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred256_InternalXcore()) ) {s = 108;}

                        else if ( (true) ) {s = 65;}

                         
                        input.seek(index174_4);
                        if ( s>=0 ) return s;
                        break;
                    case 4 : 
                        int LA174_5 = input.LA(1);

                         
                        int index174_5 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred256_InternalXcore()) ) {s = 108;}

                        else if ( (true) ) {s = 65;}

                         
                        input.seek(index174_5);
                        if ( s>=0 ) return s;
                        break;
                    case 5 : 
                        int LA174_6 = input.LA(1);

                         
                        int index174_6 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred256_InternalXcore()) ) {s = 108;}

                        else if ( (true) ) {s = 65;}

                         
                        input.seek(index174_6);
                        if ( s>=0 ) return s;
                        break;
                    case 6 : 
                        int LA174_7 = input.LA(1);

                         
                        int index174_7 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred256_InternalXcore()) ) {s = 108;}

                        else if ( (true) ) {s = 65;}

                         
                        input.seek(index174_7);
                        if ( s>=0 ) return s;
                        break;
                    case 7 : 
                        int LA174_8 = input.LA(1);

                         
                        int index174_8 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred256_InternalXcore()) ) {s = 108;}

                        else if ( (true) ) {s = 65;}

                         
                        input.seek(index174_8);
                        if ( s>=0 ) return s;
                        break;
                    case 8 : 
                        int LA174_9 = input.LA(1);

                         
                        int index174_9 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred256_InternalXcore()) ) {s = 108;}

                        else if ( (true) ) {s = 65;}

                         
                        input.seek(index174_9);
                        if ( s>=0 ) return s;
                        break;
                    case 9 : 
                        int LA174_10 = input.LA(1);

                         
                        int index174_10 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred256_InternalXcore()) ) {s = 108;}

                        else if ( (true) ) {s = 65;}

                         
                        input.seek(index174_10);
                        if ( s>=0 ) return s;
                        break;
                    case 10 : 
                        int LA174_11 = input.LA(1);

                         
                        int index174_11 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred256_InternalXcore()) ) {s = 108;}

                        else if ( (true) ) {s = 65;}

                         
                        input.seek(index174_11);
                        if ( s>=0 ) return s;
                        break;
                    case 11 : 
                        int LA174_12 = input.LA(1);

                         
                        int index174_12 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred256_InternalXcore()) ) {s = 108;}

                        else if ( (true) ) {s = 65;}

                         
                        input.seek(index174_12);
                        if ( s>=0 ) return s;
                        break;
                    case 12 : 
                        int LA174_13 = input.LA(1);

                         
                        int index174_13 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred256_InternalXcore()) ) {s = 108;}

                        else if ( (true) ) {s = 65;}

                         
                        input.seek(index174_13);
                        if ( s>=0 ) return s;
                        break;
                    case 13 : 
                        int LA174_14 = input.LA(1);

                         
                        int index174_14 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred256_InternalXcore()) ) {s = 108;}

                        else if ( (true) ) {s = 65;}

                         
                        input.seek(index174_14);
                        if ( s>=0 ) return s;
                        break;
                    case 14 : 
                        int LA174_15 = input.LA(1);

                         
                        int index174_15 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred256_InternalXcore()) ) {s = 108;}

                        else if ( (true) ) {s = 65;}

                         
                        input.seek(index174_15);
                        if ( s>=0 ) return s;
                        break;
                    case 15 : 
                        int LA174_16 = input.LA(1);

                         
                        int index174_16 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred256_InternalXcore()) ) {s = 108;}

                        else if ( (true) ) {s = 65;}

                         
                        input.seek(index174_16);
                        if ( s>=0 ) return s;
                        break;
                    case 16 : 
                        int LA174_17 = input.LA(1);

                         
                        int index174_17 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred256_InternalXcore()) ) {s = 108;}

                        else if ( (true) ) {s = 65;}

                         
                        input.seek(index174_17);
                        if ( s>=0 ) return s;
                        break;
                    case 17 : 
                        int LA174_18 = input.LA(1);

                         
                        int index174_18 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred256_InternalXcore()) ) {s = 108;}

                        else if ( (true) ) {s = 65;}

                         
                        input.seek(index174_18);
                        if ( s>=0 ) return s;
                        break;
                    case 18 : 
                        int LA174_19 = input.LA(1);

                         
                        int index174_19 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred256_InternalXcore()) ) {s = 108;}

                        else if ( (true) ) {s = 65;}

                         
                        input.seek(index174_19);
                        if ( s>=0 ) return s;
                        break;
                    case 19 : 
                        int LA174_20 = input.LA(1);

                         
                        int index174_20 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred256_InternalXcore()) ) {s = 108;}

                        else if ( (true) ) {s = 65;}

                         
                        input.seek(index174_20);
                        if ( s>=0 ) return s;
                        break;
                    case 20 : 
                        int LA174_21 = input.LA(1);

                         
                        int index174_21 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred256_InternalXcore()) ) {s = 108;}

                        else if ( (true) ) {s = 65;}

                         
                        input.seek(index174_21);
                        if ( s>=0 ) return s;
                        break;
                    case 21 : 
                        int LA174_22 = input.LA(1);

                         
                        int index174_22 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred256_InternalXcore()) ) {s = 108;}

                        else if ( (true) ) {s = 65;}

                         
                        input.seek(index174_22);
                        if ( s>=0 ) return s;
                        break;
                    case 22 : 
                        int LA174_23 = input.LA(1);

                         
                        int index174_23 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred256_InternalXcore()) ) {s = 108;}

                        else if ( (true) ) {s = 65;}

                         
                        input.seek(index174_23);
                        if ( s>=0 ) return s;
                        break;
                    case 23 : 
                        int LA174_24 = input.LA(1);

                         
                        int index174_24 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred256_InternalXcore()) ) {s = 108;}

                        else if ( (true) ) {s = 65;}

                         
                        input.seek(index174_24);
                        if ( s>=0 ) return s;
                        break;
                    case 24 : 
                        int LA174_25 = input.LA(1);

                         
                        int index174_25 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred256_InternalXcore()) ) {s = 108;}

                        else if ( (true) ) {s = 65;}

                         
                        input.seek(index174_25);
                        if ( s>=0 ) return s;
                        break;
                    case 25 : 
                        int LA174_26 = input.LA(1);

                         
                        int index174_26 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred256_InternalXcore()) ) {s = 108;}

                        else if ( (true) ) {s = 65;}

                         
                        input.seek(index174_26);
                        if ( s>=0 ) return s;
                        break;
                    case 26 : 
                        int LA174_27 = input.LA(1);

                         
                        int index174_27 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred256_InternalXcore()) ) {s = 108;}

                        else if ( (true) ) {s = 65;}

                         
                        input.seek(index174_27);
                        if ( s>=0 ) return s;
                        break;
                    case 27 : 
                        int LA174_28 = input.LA(1);

                         
                        int index174_28 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred256_InternalXcore()) ) {s = 108;}

                        else if ( (true) ) {s = 65;}

                         
                        input.seek(index174_28);
                        if ( s>=0 ) return s;
                        break;
                    case 28 : 
                        int LA174_29 = input.LA(1);

                         
                        int index174_29 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred256_InternalXcore()) ) {s = 108;}

                        else if ( (true) ) {s = 65;}

                         
                        input.seek(index174_29);
                        if ( s>=0 ) return s;
                        break;
                    case 29 : 
                        int LA174_30 = input.LA(1);

                         
                        int index174_30 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred256_InternalXcore()) ) {s = 108;}

                        else if ( (true) ) {s = 65;}

                         
                        input.seek(index174_30);
                        if ( s>=0 ) return s;
                        break;
                    case 30 : 
                        int LA174_31 = input.LA(1);

                         
                        int index174_31 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred256_InternalXcore()) ) {s = 108;}

                        else if ( (true) ) {s = 65;}

                         
                        input.seek(index174_31);
                        if ( s>=0 ) return s;
                        break;
                    case 31 : 
                        int LA174_32 = input.LA(1);

                         
                        int index174_32 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred256_InternalXcore()) ) {s = 108;}

                        else if ( (true) ) {s = 65;}

                         
                        input.seek(index174_32);
                        if ( s>=0 ) return s;
                        break;
                    case 32 : 
                        int LA174_33 = input.LA(1);

                         
                        int index174_33 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred256_InternalXcore()) ) {s = 108;}

                        else if ( (true) ) {s = 65;}

                         
                        input.seek(index174_33);
                        if ( s>=0 ) return s;
                        break;
                    case 33 : 
                        int LA174_34 = input.LA(1);

                         
                        int index174_34 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred256_InternalXcore()) ) {s = 108;}

                        else if ( (true) ) {s = 65;}

                         
                        input.seek(index174_34);
                        if ( s>=0 ) return s;
                        break;
                    case 34 : 
                        int LA174_35 = input.LA(1);

                         
                        int index174_35 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred256_InternalXcore()) ) {s = 108;}

                        else if ( (true) ) {s = 65;}

                         
                        input.seek(index174_35);
                        if ( s>=0 ) return s;
                        break;
                    case 35 : 
                        int LA174_36 = input.LA(1);

                         
                        int index174_36 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred256_InternalXcore()) ) {s = 108;}

                        else if ( (true) ) {s = 65;}

                         
                        input.seek(index174_36);
                        if ( s>=0 ) return s;
                        break;
                    case 36 : 
                        int LA174_37 = input.LA(1);

                         
                        int index174_37 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred256_InternalXcore()) ) {s = 108;}

                        else if ( (true) ) {s = 65;}

                         
                        input.seek(index174_37);
                        if ( s>=0 ) return s;
                        break;
                    case 37 : 
                        int LA174_38 = input.LA(1);

                         
                        int index174_38 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred256_InternalXcore()) ) {s = 108;}

                        else if ( (true) ) {s = 65;}

                         
                        input.seek(index174_38);
                        if ( s>=0 ) return s;
                        break;
                    case 38 : 
                        int LA174_39 = input.LA(1);

                         
                        int index174_39 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred256_InternalXcore()) ) {s = 108;}

                        else if ( (true) ) {s = 65;}

                         
                        input.seek(index174_39);
                        if ( s>=0 ) return s;
                        break;
                    case 39 : 
                        int LA174_40 = input.LA(1);

                         
                        int index174_40 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred256_InternalXcore()) ) {s = 108;}

                        else if ( (true) ) {s = 65;}

                         
                        input.seek(index174_40);
                        if ( s>=0 ) return s;
                        break;
                    case 40 : 
                        int LA174_41 = input.LA(1);

                         
                        int index174_41 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred256_InternalXcore()) ) {s = 108;}

                        else if ( (true) ) {s = 65;}

                         
                        input.seek(index174_41);
                        if ( s>=0 ) return s;
                        break;
                    case 41 : 
                        int LA174_42 = input.LA(1);

                         
                        int index174_42 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred256_InternalXcore()) ) {s = 108;}

                        else if ( (true) ) {s = 65;}

                         
                        input.seek(index174_42);
                        if ( s>=0 ) return s;
                        break;
                    case 42 : 
                        int LA174_43 = input.LA(1);

                         
                        int index174_43 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred256_InternalXcore()) ) {s = 108;}

                        else if ( (true) ) {s = 65;}

                         
                        input.seek(index174_43);
                        if ( s>=0 ) return s;
                        break;
                    case 43 : 
                        int LA174_44 = input.LA(1);

                         
                        int index174_44 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred256_InternalXcore()) ) {s = 108;}

                        else if ( (true) ) {s = 65;}

                         
                        input.seek(index174_44);
                        if ( s>=0 ) return s;
                        break;
                    case 44 : 
                        int LA174_45 = input.LA(1);

                         
                        int index174_45 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred256_InternalXcore()) ) {s = 108;}

                        else if ( (true) ) {s = 65;}

                         
                        input.seek(index174_45);
                        if ( s>=0 ) return s;
                        break;
                    case 45 : 
                        int LA174_46 = input.LA(1);

                         
                        int index174_46 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred256_InternalXcore()) ) {s = 108;}

                        else if ( (true) ) {s = 65;}

                         
                        input.seek(index174_46);
                        if ( s>=0 ) return s;
                        break;
                    case 46 : 
                        int LA174_47 = input.LA(1);

                         
                        int index174_47 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred256_InternalXcore()) ) {s = 108;}

                        else if ( (true) ) {s = 65;}

                         
                        input.seek(index174_47);
                        if ( s>=0 ) return s;
                        break;
                    case 47 : 
                        int LA174_48 = input.LA(1);

                         
                        int index174_48 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred256_InternalXcore()) ) {s = 108;}

                        else if ( (true) ) {s = 65;}

                         
                        input.seek(index174_48);
                        if ( s>=0 ) return s;
                        break;
                    case 48 : 
                        int LA174_49 = input.LA(1);

                         
                        int index174_49 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred256_InternalXcore()) ) {s = 108;}

                        else if ( (true) ) {s = 65;}

                         
                        input.seek(index174_49);
                        if ( s>=0 ) return s;
                        break;
                    case 49 : 
                        int LA174_50 = input.LA(1);

                         
                        int index174_50 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred256_InternalXcore()) ) {s = 108;}

                        else if ( (true) ) {s = 65;}

                         
                        input.seek(index174_50);
                        if ( s>=0 ) return s;
                        break;
                    case 50 : 
                        int LA174_51 = input.LA(1);

                         
                        int index174_51 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred256_InternalXcore()) ) {s = 108;}

                        else if ( (true) ) {s = 65;}

                         
                        input.seek(index174_51);
                        if ( s>=0 ) return s;
                        break;
                    case 51 : 
                        int LA174_52 = input.LA(1);

                         
                        int index174_52 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred256_InternalXcore()) ) {s = 108;}

                        else if ( (true) ) {s = 65;}

                         
                        input.seek(index174_52);
                        if ( s>=0 ) return s;
                        break;
                    case 52 : 
                        int LA174_53 = input.LA(1);

                         
                        int index174_53 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred256_InternalXcore()) ) {s = 108;}

                        else if ( (true) ) {s = 65;}

                         
                        input.seek(index174_53);
                        if ( s>=0 ) return s;
                        break;
                    case 53 : 
                        int LA174_54 = input.LA(1);

                         
                        int index174_54 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred256_InternalXcore()) ) {s = 108;}

                        else if ( (true) ) {s = 65;}

                         
                        input.seek(index174_54);
                        if ( s>=0 ) return s;
                        break;
                    case 54 : 
                        int LA174_55 = input.LA(1);

                         
                        int index174_55 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred256_InternalXcore()) ) {s = 108;}

                        else if ( (true) ) {s = 65;}

                         
                        input.seek(index174_55);
                        if ( s>=0 ) return s;
                        break;
                    case 55 : 
                        int LA174_56 = input.LA(1);

                         
                        int index174_56 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred256_InternalXcore()) ) {s = 108;}

                        else if ( (true) ) {s = 65;}

                         
                        input.seek(index174_56);
                        if ( s>=0 ) return s;
                        break;
                    case 56 : 
                        int LA174_57 = input.LA(1);

                         
                        int index174_57 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred256_InternalXcore()) ) {s = 108;}

                        else if ( (true) ) {s = 65;}

                         
                        input.seek(index174_57);
                        if ( s>=0 ) return s;
                        break;
                    case 57 : 
                        int LA174_58 = input.LA(1);

                         
                        int index174_58 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred256_InternalXcore()) ) {s = 108;}

                        else if ( (true) ) {s = 65;}

                         
                        input.seek(index174_58);
                        if ( s>=0 ) return s;
                        break;
                    case 58 : 
                        int LA174_59 = input.LA(1);

                         
                        int index174_59 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred256_InternalXcore()) ) {s = 108;}

                        else if ( (true) ) {s = 65;}

                         
                        input.seek(index174_59);
                        if ( s>=0 ) return s;
                        break;
                    case 59 : 
                        int LA174_60 = input.LA(1);

                         
                        int index174_60 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred256_InternalXcore()) ) {s = 108;}

                        else if ( (true) ) {s = 65;}

                         
                        input.seek(index174_60);
                        if ( s>=0 ) return s;
                        break;
                    case 60 : 
                        int LA174_61 = input.LA(1);

                         
                        int index174_61 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred256_InternalXcore()) ) {s = 108;}

                        else if ( (true) ) {s = 65;}

                         
                        input.seek(index174_61);
                        if ( s>=0 ) return s;
                        break;
                    case 61 : 
                        int LA174_62 = input.LA(1);

                         
                        int index174_62 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred256_InternalXcore()) ) {s = 108;}

                        else if ( (true) ) {s = 65;}

                         
                        input.seek(index174_62);
                        if ( s>=0 ) return s;
                        break;
                    case 62 : 
                        int LA174_63 = input.LA(1);

                         
                        int index174_63 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred256_InternalXcore()) ) {s = 108;}

                        else if ( (true) ) {s = 65;}

                         
                        input.seek(index174_63);
                        if ( s>=0 ) return s;
                        break;
                    case 63 : 
                        int LA174_64 = input.LA(1);

                         
                        int index174_64 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred256_InternalXcore()) ) {s = 108;}

                        else if ( (true) ) {s = 65;}

                         
                        input.seek(index174_64);
                        if ( s>=0 ) return s;
                        break;
            }
            if (state.backtracking>0) {state.failed=true; return -1;}
            NoViableAltException nvae =
                new NoViableAltException(getDescription(), 174, _s, input);
            error(nvae);
            throw nvae;
        }
    }
    static final String dfa_106s = "\1\1\11\uffff";
    static final String dfa_107s = "\1\4\1\uffff\1\5\6\0\1\uffff";
    static final String dfa_108s = "\1\167\1\uffff\1\122\6\0\1\uffff";
    static final String dfa_109s = "\1\uffff\1\2\7\uffff\1\1";
    static final String dfa_110s = "\3\uffff\1\4\1\1\1\2\1\5\1\3\1\0\1\uffff}>";
    static final String[] dfa_111s = {
            "\5\1\4\uffff\4\1\1\uffff\76\1\1\2\44\1\1\uffff\2\1",
            "",
            "\1\3\12\uffff\1\10\1\uffff\1\1\1\uffff\1\4\1\5\1\6\1\7\37\1\13\uffff\1\1\17\uffff\1\1",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            ""
    };
    static final short[] dfa_106 = DFA.unpackEncodedString(dfa_106s);
    static final char[] dfa_107 = DFA.unpackEncodedStringToUnsignedChars(dfa_107s);
    static final char[] dfa_108 = DFA.unpackEncodedStringToUnsignedChars(dfa_108s);
    static final short[] dfa_109 = DFA.unpackEncodedString(dfa_109s);
    static final short[] dfa_110 = DFA.unpackEncodedString(dfa_110s);
    static final short[][] dfa_111 = unpackEncodedStringArray(dfa_111s);

    class DFA177 extends DFA {

        public DFA177(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 177;
            this.eot = dfa_54;
            this.eof = dfa_106;
            this.min = dfa_107;
            this.max = dfa_108;
            this.accept = dfa_109;
            this.special = dfa_110;
            this.transition = dfa_111;
        }
        public String getDescription() {
            return "()* loopback of 22831:1: ( rule__QualifiedName__Group_1__0 )*";
        }
        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
            TokenStream input = (TokenStream)_input;
        	int _s = s;
            switch ( s ) {
                    case 0 : 
                        int LA177_8 = input.LA(1);

                         
                        int index177_8 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred259_InternalXcore()) ) {s = 9;}

                        else if ( (true) ) {s = 1;}

                         
                        input.seek(index177_8);
                        if ( s>=0 ) return s;
                        break;
                    case 1 : 
                        int LA177_4 = input.LA(1);

                         
                        int index177_4 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred259_InternalXcore()) ) {s = 9;}

                        else if ( (true) ) {s = 1;}

                         
                        input.seek(index177_4);
                        if ( s>=0 ) return s;
                        break;
                    case 2 : 
                        int LA177_5 = input.LA(1);

                         
                        int index177_5 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred259_InternalXcore()) ) {s = 9;}

                        else if ( (true) ) {s = 1;}

                         
                        input.seek(index177_5);
                        if ( s>=0 ) return s;
                        break;
                    case 3 : 
                        int LA177_7 = input.LA(1);

                         
                        int index177_7 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred259_InternalXcore()) ) {s = 9;}

                        else if ( (true) ) {s = 1;}

                         
                        input.seek(index177_7);
                        if ( s>=0 ) return s;
                        break;
                    case 4 : 
                        int LA177_3 = input.LA(1);

                         
                        int index177_3 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred259_InternalXcore()) ) {s = 9;}

                        else if ( (true) ) {s = 1;}

                         
                        input.seek(index177_3);
                        if ( s>=0 ) return s;
                        break;
                    case 5 : 
                        int LA177_6 = input.LA(1);

                         
                        int index177_6 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred259_InternalXcore()) ) {s = 9;}

                        else if ( (true) ) {s = 1;}

                         
                        input.seek(index177_6);
                        if ( s>=0 ) return s;
                        break;
            }
            if (state.backtracking>0) {state.failed=true; return -1;}
            NoViableAltException nvae =
                new NoViableAltException(getDescription(), 177, _s, input);
            error(nvae);
            throw nvae;
        }
    }
    static final String dfa_112s = "\160\uffff";
    static final String dfa_113s = "\1\2\157\uffff";
    static final String dfa_114s = "\1\4\1\0\156\uffff";
    static final String dfa_115s = "\1\167\1\0\156\uffff";
    static final String dfa_116s = "\2\uffff\1\2\154\uffff\1\1";
    static final String dfa_117s = "\1\uffff\1\0\156\uffff}>";
    static final String[] dfa_118s = {
            "\5\2\5\uffff\3\2\1\uffff\60\2\1\1\62\2\1\uffff\2\2",
            "\1\uffff",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            ""
    };

    static final short[] dfa_112 = DFA.unpackEncodedString(dfa_112s);
    static final short[] dfa_113 = DFA.unpackEncodedString(dfa_113s);
    static final char[] dfa_114 = DFA.unpackEncodedStringToUnsignedChars(dfa_114s);
    static final char[] dfa_115 = DFA.unpackEncodedStringToUnsignedChars(dfa_115s);
    static final short[] dfa_116 = DFA.unpackEncodedString(dfa_116s);
    static final short[] dfa_117 = DFA.unpackEncodedString(dfa_117s);
    static final short[][] dfa_118 = unpackEncodedStringArray(dfa_118s);

    class DFA183 extends DFA {

        public DFA183(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 183;
            this.eot = dfa_112;
            this.eof = dfa_113;
            this.min = dfa_114;
            this.max = dfa_115;
            this.accept = dfa_116;
            this.special = dfa_117;
            this.transition = dfa_118;
        }
        public String getDescription() {
            return "23613:1: ( rule__JvmParameterizedTypeReference__Group_1__0 )?";
        }
        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
            TokenStream input = (TokenStream)_input;
        	int _s = s;
            switch ( s ) {
                    case 0 : 
                        int LA183_1 = input.LA(1);

                         
                        int index183_1 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred265_InternalXcore()) ) {s = 111;}

                        else if ( (true) ) {s = 2;}

                         
                        input.seek(index183_1);
                        if ( s>=0 ) return s;
                        break;
            }
            if (state.backtracking>0) {state.failed=true; return -1;}
            NoViableAltException nvae =
                new NoViableAltException(getDescription(), 183, _s, input);
            error(nvae);
            throw nvae;
        }
    }
    static final String dfa_119s = "\3\uffff\1\0\1\4\1\2\1\5\1\3\1\1\1\uffff}>";
    static final String[] dfa_120s = {
            "\5\1\5\uffff\3\1\1\uffff\76\1\1\2\44\1\1\uffff\2\1",
            "",
            "\1\3\12\uffff\1\10\3\uffff\1\4\1\5\1\6\1\7\37\1\13\uffff\1\1\17\uffff\1\1",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            ""
    };
    static final short[] dfa_119 = DFA.unpackEncodedString(dfa_119s);
    static final short[][] dfa_120 = unpackEncodedStringArray(dfa_120s);

    class DFA185 extends DFA {

        public DFA185(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 185;
            this.eot = dfa_54;
            this.eof = dfa_106;
            this.min = dfa_107;
            this.max = dfa_108;
            this.accept = dfa_109;
            this.special = dfa_119;
            this.transition = dfa_120;
        }
        public String getDescription() {
            return "()* loopback of 23765:1: ( rule__JvmParameterizedTypeReference__Group_1_4__0 )*";
        }
        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
            TokenStream input = (TokenStream)_input;
        	int _s = s;
            switch ( s ) {
                    case 0 : 
                        int LA185_3 = input.LA(1);

                         
                        int index185_3 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred267_InternalXcore()) ) {s = 9;}

                        else if ( (true) ) {s = 1;}

                         
                        input.seek(index185_3);
                        if ( s>=0 ) return s;
                        break;
                    case 1 : 
                        int LA185_8 = input.LA(1);

                         
                        int index185_8 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred267_InternalXcore()) ) {s = 9;}

                        else if ( (true) ) {s = 1;}

                         
                        input.seek(index185_8);
                        if ( s>=0 ) return s;
                        break;
                    case 2 : 
                        int LA185_5 = input.LA(1);

                         
                        int index185_5 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred267_InternalXcore()) ) {s = 9;}

                        else if ( (true) ) {s = 1;}

                         
                        input.seek(index185_5);
                        if ( s>=0 ) return s;
                        break;
                    case 3 : 
                        int LA185_7 = input.LA(1);

                         
                        int index185_7 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred267_InternalXcore()) ) {s = 9;}

                        else if ( (true) ) {s = 1;}

                         
                        input.seek(index185_7);
                        if ( s>=0 ) return s;
                        break;
                    case 4 : 
                        int LA185_4 = input.LA(1);

                         
                        int index185_4 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred267_InternalXcore()) ) {s = 9;}

                        else if ( (true) ) {s = 1;}

                         
                        input.seek(index185_4);
                        if ( s>=0 ) return s;
                        break;
                    case 5 : 
                        int LA185_6 = input.LA(1);

                         
                        int index185_6 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred267_InternalXcore()) ) {s = 9;}

                        else if ( (true) ) {s = 1;}

                         
                        input.seek(index185_6);
                        if ( s>=0 ) return s;
                        break;
            }
            if (state.backtracking>0) {state.failed=true; return -1;}
            NoViableAltException nvae =
                new NoViableAltException(getDescription(), 185, _s, input);
            error(nvae);
            throw nvae;
        }
    }

    class DFA186 extends DFA {

        public DFA186(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 186;
            this.eot = dfa_112;
            this.eof = dfa_113;
            this.min = dfa_114;
            this.max = dfa_115;
            this.accept = dfa_116;
            this.special = dfa_117;
            this.transition = dfa_118;
        }
        public String getDescription() {
            return "23924:1: ( rule__JvmParameterizedTypeReference__Group_1_4_2__0 )?";
        }
        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
            TokenStream input = (TokenStream)_input;
        	int _s = s;
            switch ( s ) {
                    case 0 : 
                        int LA186_1 = input.LA(1);

                         
                        int index186_1 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred268_InternalXcore()) ) {s = 111;}

                        else if ( (true) ) {s = 2;}

                         
                        input.seek(index186_1);
                        if ( s>=0 ) return s;
                        break;
            }
            if (state.backtracking>0) {state.failed=true; return -1;}
            NoViableAltException nvae =
                new NoViableAltException(getDescription(), 186, _s, input);
            error(nvae);
            throw nvae;
        }
    }
    static final String dfa_121s = "\1\5\11\uffff";
    static final String dfa_122s = "\1\65\11\uffff";
    static final String dfa_123s = "\1\uffff\10\1\1\2";
    static final String dfa_124s = "\1\0\11\uffff}>";
    static final String[] dfa_125s = {
            "\1\11\16\uffff\4\11\10\uffff\1\7\3\uffff\1\10\7\uffff\1\3\4\uffff\1\4\1\2\1\1\1\6\1\5",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            ""
    };
    static final char[] dfa_121 = DFA.unpackEncodedStringToUnsignedChars(dfa_121s);
    static final char[] dfa_122 = DFA.unpackEncodedStringToUnsignedChars(dfa_122s);
    static final short[] dfa_123 = DFA.unpackEncodedString(dfa_123s);
    static final short[] dfa_124 = DFA.unpackEncodedString(dfa_124s);
    static final short[][] dfa_125 = unpackEncodedStringArray(dfa_125s);

    class DFA196 extends DFA {

        public DFA196(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 196;
            this.eot = dfa_54;
            this.eof = dfa_54;
            this.min = dfa_121;
            this.max = dfa_122;
            this.accept = dfa_123;
            this.special = dfa_124;
            this.transition = dfa_125;
        }
        public String getDescription() {
            return "25178:2: ( rule__XAttribute__UnorderedGroup_2__0 )?";
        }
        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
            TokenStream input = (TokenStream)_input;
        	int _s = s;
            switch ( s ) {
                    case 0 : 
                        int LA196_0 = input.LA(1);

                         
                        int index196_0 = input.index();
                        input.rewind();
                        s = -1;
                        if ( LA196_0 == 51 && getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 0) ) {s = 1;}

                        else if ( LA196_0 == 50 && getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 1) ) {s = 2;}

                        else if ( LA196_0 == 44 && getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 2) ) {s = 3;}

                        else if ( LA196_0 == 49 && getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 3) ) {s = 4;}

                        else if ( LA196_0 == 53 && getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 4) ) {s = 5;}

                        else if ( LA196_0 == 52 && getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 5) ) {s = 6;}

                        else if ( LA196_0 == 32 && getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 6) ) {s = 7;}

                        else if ( LA196_0 == 36 && getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 7) ) {s = 8;}

                        else if ( (LA196_0==RULE_ID||(LA196_0>=20 && LA196_0<=23)) ) {s = 9;}

                         
                        input.seek(index196_0);
                        if ( s>=0 ) return s;
                        break;
            }
            if (state.backtracking>0) {state.failed=true; return -1;}
            NoViableAltException nvae =
                new NoViableAltException(getDescription(), 196, _s, input);
            error(nvae);
            throw nvae;
        }
    }
    static final String dfa_126s = "\1\11\11\uffff";
    static final short[] dfa_126 = DFA.unpackEncodedString(dfa_126s);

    class DFA198 extends DFA {

        public DFA198(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 198;
            this.eot = dfa_54;
            this.eof = dfa_126;
            this.min = dfa_121;
            this.max = dfa_122;
            this.accept = dfa_123;
            this.special = dfa_124;
            this.transition = dfa_125;
        }
        public String getDescription() {
            return "25347:2: ( rule__XAttribute__UnorderedGroup_2__1 )?";
        }
        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
            TokenStream input = (TokenStream)_input;
        	int _s = s;
            switch ( s ) {
                    case 0 : 
                        int LA198_0 = input.LA(1);

                         
                        int index198_0 = input.index();
                        input.rewind();
                        s = -1;
                        if ( LA198_0 == 51 && getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 0) ) {s = 1;}

                        else if ( LA198_0 == 50 && getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 1) ) {s = 2;}

                        else if ( LA198_0 == 44 && getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 2) ) {s = 3;}

                        else if ( LA198_0 == 49 && getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 3) ) {s = 4;}

                        else if ( LA198_0 == 53 && getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 4) ) {s = 5;}

                        else if ( LA198_0 == 52 && getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 5) ) {s = 6;}

                        else if ( LA198_0 == 32 && getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 6) ) {s = 7;}

                        else if ( LA198_0 == 36 && getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 7) ) {s = 8;}

                        else if ( (LA198_0==EOF||LA198_0==RULE_ID||(LA198_0>=20 && LA198_0<=23)) ) {s = 9;}

                         
                        input.seek(index198_0);
                        if ( s>=0 ) return s;
                        break;
            }
            if (state.backtracking>0) {state.failed=true; return -1;}
            NoViableAltException nvae =
                new NoViableAltException(getDescription(), 198, _s, input);
            error(nvae);
            throw nvae;
        }
    }

    class DFA199 extends DFA {

        public DFA199(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 199;
            this.eot = dfa_54;
            this.eof = dfa_126;
            this.min = dfa_121;
            this.max = dfa_122;
            this.accept = dfa_123;
            this.special = dfa_124;
            this.transition = dfa_125;
        }
        public String getDescription() {
            return "25360:2: ( rule__XAttribute__UnorderedGroup_2__2 )?";
        }
        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
            TokenStream input = (TokenStream)_input;
        	int _s = s;
            switch ( s ) {
                    case 0 : 
                        int LA199_0 = input.LA(1);

                         
                        int index199_0 = input.index();
                        input.rewind();
                        s = -1;
                        if ( LA199_0 == 51 && getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 0) ) {s = 1;}

                        else if ( LA199_0 == 50 && getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 1) ) {s = 2;}

                        else if ( LA199_0 == 44 && getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 2) ) {s = 3;}

                        else if ( LA199_0 == 49 && getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 3) ) {s = 4;}

                        else if ( LA199_0 == 53 && getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 4) ) {s = 5;}

                        else if ( LA199_0 == 52 && getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 5) ) {s = 6;}

                        else if ( LA199_0 == 32 && getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 6) ) {s = 7;}

                        else if ( LA199_0 == 36 && getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 7) ) {s = 8;}

                        else if ( (LA199_0==EOF||LA199_0==RULE_ID||(LA199_0>=20 && LA199_0<=23)) ) {s = 9;}

                         
                        input.seek(index199_0);
                        if ( s>=0 ) return s;
                        break;
            }
            if (state.backtracking>0) {state.failed=true; return -1;}
            NoViableAltException nvae =
                new NoViableAltException(getDescription(), 199, _s, input);
            error(nvae);
            throw nvae;
        }
    }

    class DFA200 extends DFA {

        public DFA200(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 200;
            this.eot = dfa_54;
            this.eof = dfa_126;
            this.min = dfa_121;
            this.max = dfa_122;
            this.accept = dfa_123;
            this.special = dfa_124;
            this.transition = dfa_125;
        }
        public String getDescription() {
            return "25373:2: ( rule__XAttribute__UnorderedGroup_2__3 )?";
        }
        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
            TokenStream input = (TokenStream)_input;
        	int _s = s;
            switch ( s ) {
                    case 0 : 
                        int LA200_0 = input.LA(1);

                         
                        int index200_0 = input.index();
                        input.rewind();
                        s = -1;
                        if ( LA200_0 == 51 && getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 0) ) {s = 1;}

                        else if ( LA200_0 == 50 && getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 1) ) {s = 2;}

                        else if ( LA200_0 == 44 && getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 2) ) {s = 3;}

                        else if ( LA200_0 == 49 && getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 3) ) {s = 4;}

                        else if ( LA200_0 == 53 && getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 4) ) {s = 5;}

                        else if ( LA200_0 == 52 && getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 5) ) {s = 6;}

                        else if ( LA200_0 == 32 && getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 6) ) {s = 7;}

                        else if ( LA200_0 == 36 && getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 7) ) {s = 8;}

                        else if ( (LA200_0==EOF||LA200_0==RULE_ID||(LA200_0>=20 && LA200_0<=23)) ) {s = 9;}

                         
                        input.seek(index200_0);
                        if ( s>=0 ) return s;
                        break;
            }
            if (state.backtracking>0) {state.failed=true; return -1;}
            NoViableAltException nvae =
                new NoViableAltException(getDescription(), 200, _s, input);
            error(nvae);
            throw nvae;
        }
    }

    class DFA201 extends DFA {

        public DFA201(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 201;
            this.eot = dfa_54;
            this.eof = dfa_126;
            this.min = dfa_121;
            this.max = dfa_122;
            this.accept = dfa_123;
            this.special = dfa_124;
            this.transition = dfa_125;
        }
        public String getDescription() {
            return "25386:2: ( rule__XAttribute__UnorderedGroup_2__4 )?";
        }
        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
            TokenStream input = (TokenStream)_input;
        	int _s = s;
            switch ( s ) {
                    case 0 : 
                        int LA201_0 = input.LA(1);

                         
                        int index201_0 = input.index();
                        input.rewind();
                        s = -1;
                        if ( LA201_0 == 51 && getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 0) ) {s = 1;}

                        else if ( LA201_0 == 50 && getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 1) ) {s = 2;}

                        else if ( LA201_0 == 44 && getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 2) ) {s = 3;}

                        else if ( LA201_0 == 49 && getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 3) ) {s = 4;}

                        else if ( LA201_0 == 53 && getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 4) ) {s = 5;}

                        else if ( LA201_0 == 52 && getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 5) ) {s = 6;}

                        else if ( LA201_0 == 32 && getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 6) ) {s = 7;}

                        else if ( LA201_0 == 36 && getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 7) ) {s = 8;}

                        else if ( (LA201_0==EOF||LA201_0==RULE_ID||(LA201_0>=20 && LA201_0<=23)) ) {s = 9;}

                         
                        input.seek(index201_0);
                        if ( s>=0 ) return s;
                        break;
            }
            if (state.backtracking>0) {state.failed=true; return -1;}
            NoViableAltException nvae =
                new NoViableAltException(getDescription(), 201, _s, input);
            error(nvae);
            throw nvae;
        }
    }

    class DFA202 extends DFA {

        public DFA202(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 202;
            this.eot = dfa_54;
            this.eof = dfa_126;
            this.min = dfa_121;
            this.max = dfa_122;
            this.accept = dfa_123;
            this.special = dfa_124;
            this.transition = dfa_125;
        }
        public String getDescription() {
            return "25399:2: ( rule__XAttribute__UnorderedGroup_2__5 )?";
        }
        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
            TokenStream input = (TokenStream)_input;
        	int _s = s;
            switch ( s ) {
                    case 0 : 
                        int LA202_0 = input.LA(1);

                         
                        int index202_0 = input.index();
                        input.rewind();
                        s = -1;
                        if ( LA202_0 == 51 && getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 0) ) {s = 1;}

                        else if ( LA202_0 == 50 && getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 1) ) {s = 2;}

                        else if ( LA202_0 == 44 && getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 2) ) {s = 3;}

                        else if ( LA202_0 == 49 && getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 3) ) {s = 4;}

                        else if ( LA202_0 == 53 && getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 4) ) {s = 5;}

                        else if ( LA202_0 == 52 && getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 5) ) {s = 6;}

                        else if ( LA202_0 == 32 && getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 6) ) {s = 7;}

                        else if ( LA202_0 == 36 && getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 7) ) {s = 8;}

                        else if ( (LA202_0==EOF||LA202_0==RULE_ID||(LA202_0>=20 && LA202_0<=23)) ) {s = 9;}

                         
                        input.seek(index202_0);
                        if ( s>=0 ) return s;
                        break;
            }
            if (state.backtracking>0) {state.failed=true; return -1;}
            NoViableAltException nvae =
                new NoViableAltException(getDescription(), 202, _s, input);
            error(nvae);
            throw nvae;
        }
    }

    class DFA203 extends DFA {

        public DFA203(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 203;
            this.eot = dfa_54;
            this.eof = dfa_126;
            this.min = dfa_121;
            this.max = dfa_122;
            this.accept = dfa_123;
            this.special = dfa_124;
            this.transition = dfa_125;
        }
        public String getDescription() {
            return "25412:2: ( rule__XAttribute__UnorderedGroup_2__6 )?";
        }
        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
            TokenStream input = (TokenStream)_input;
        	int _s = s;
            switch ( s ) {
                    case 0 : 
                        int LA203_0 = input.LA(1);

                         
                        int index203_0 = input.index();
                        input.rewind();
                        s = -1;
                        if ( LA203_0 == 51 && getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 0) ) {s = 1;}

                        else if ( LA203_0 == 50 && getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 1) ) {s = 2;}

                        else if ( LA203_0 == 44 && getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 2) ) {s = 3;}

                        else if ( LA203_0 == 49 && getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 3) ) {s = 4;}

                        else if ( LA203_0 == 53 && getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 4) ) {s = 5;}

                        else if ( LA203_0 == 52 && getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 5) ) {s = 6;}

                        else if ( LA203_0 == 32 && getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 6) ) {s = 7;}

                        else if ( LA203_0 == 36 && getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 7) ) {s = 8;}

                        else if ( (LA203_0==EOF||LA203_0==RULE_ID||(LA203_0>=20 && LA203_0<=23)) ) {s = 9;}

                         
                        input.seek(index203_0);
                        if ( s>=0 ) return s;
                        break;
            }
            if (state.backtracking>0) {state.failed=true; return -1;}
            NoViableAltException nvae =
                new NoViableAltException(getDescription(), 203, _s, input);
            error(nvae);
            throw nvae;
        }
    }

    class DFA204 extends DFA {

        public DFA204(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 204;
            this.eot = dfa_54;
            this.eof = dfa_126;
            this.min = dfa_121;
            this.max = dfa_122;
            this.accept = dfa_123;
            this.special = dfa_124;
            this.transition = dfa_125;
        }
        public String getDescription() {
            return "25425:2: ( rule__XAttribute__UnorderedGroup_2__7 )?";
        }
        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
            TokenStream input = (TokenStream)_input;
        	int _s = s;
            switch ( s ) {
                    case 0 : 
                        int LA204_0 = input.LA(1);

                         
                        int index204_0 = input.index();
                        input.rewind();
                        s = -1;
                        if ( LA204_0 == 51 && getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 0) ) {s = 1;}

                        else if ( LA204_0 == 50 && getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 1) ) {s = 2;}

                        else if ( LA204_0 == 44 && getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 2) ) {s = 3;}

                        else if ( LA204_0 == 49 && getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 3) ) {s = 4;}

                        else if ( LA204_0 == 53 && getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 4) ) {s = 5;}

                        else if ( LA204_0 == 52 && getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 5) ) {s = 6;}

                        else if ( LA204_0 == 32 && getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 6) ) {s = 7;}

                        else if ( LA204_0 == 36 && getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_2(), 7) ) {s = 8;}

                        else if ( (LA204_0==EOF||LA204_0==RULE_ID||(LA204_0>=20 && LA204_0<=23)) ) {s = 9;}

                         
                        input.seek(index204_0);
                        if ( s>=0 ) return s;
                        break;
            }
            if (state.backtracking>0) {state.failed=true; return -1;}
            NoViableAltException nvae =
                new NoViableAltException(getDescription(), 204, _s, input);
            error(nvae);
            throw nvae;
        }
    }
    static final String dfa_127s = "\5\5\5\uffff";
    static final String dfa_128s = "\1\132\4\134\5\uffff";
    static final String dfa_129s = "\5\uffff\1\2\4\1";
    static final String dfa_130s = "\1\uffff\1\0\1\1\1\2\1\3\5\uffff}>";
    static final String[] dfa_131s = {
            "\1\5\16\uffff\1\1\1\3\1\2\1\4\4\uffff\2\5\2\uffff\1\5\3\uffff\1\5\3\uffff\2\5\2\uffff\3\5\2\uffff\5\5\36\uffff\1\5\5\uffff\1\5",
            "\1\5\74\uffff\1\5\15\uffff\1\5\10\uffff\1\6\2\uffff\1\5",
            "\1\5\74\uffff\1\5\15\uffff\1\5\10\uffff\1\7\2\uffff\1\5",
            "\1\5\74\uffff\1\5\15\uffff\1\5\10\uffff\1\10\2\uffff\1\5",
            "\1\5\74\uffff\1\5\15\uffff\1\5\10\uffff\1\11\2\uffff\1\5",
            "",
            "",
            "",
            "",
            ""
    };
    static final short[] dfa_127 = DFA.unpackEncodedString(dfa_121s);
    static final char[] dfa_128 = DFA.unpackEncodedStringToUnsignedChars(dfa_127s);
    static final char[] dfa_129 = DFA.unpackEncodedStringToUnsignedChars(dfa_128s);
    static final short[] dfa_130 = DFA.unpackEncodedString(dfa_129s);
    static final short[] dfa_131 = DFA.unpackEncodedString(dfa_130s);
    static final short[][] dfa_132 = unpackEncodedStringArray(dfa_131s);

    class DFA205 extends DFA {

        public DFA205(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 205;
            this.eot = dfa_54;
            this.eof = dfa_127;
            this.min = dfa_128;
            this.max = dfa_129;
            this.accept = dfa_130;
            this.special = dfa_131;
            this.transition = dfa_132;
        }
        public String getDescription() {
            return "25466:2: ( rule__XAttribute__UnorderedGroup_7__0 )?";
        }
        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
            TokenStream input = (TokenStream)_input;
        	int _s = s;
            switch ( s ) {
                    case 0 : 
                        int LA205_1 = input.LA(1);

                         
                        int index205_1 = input.index();
                        input.rewind();
                        s = -1;
                        if ( LA205_1 == 89 && getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_7(), 0) ) {s = 6;}

                        else if ( (LA205_1==RULE_ID||LA205_1==66||LA205_1==80||LA205_1==92) ) {s = 5;}

                         
                        input.seek(index205_1);
                        if ( s>=0 ) return s;
                        break;
                    case 1 : 
                        int LA205_2 = input.LA(1);

                         
                        int index205_2 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (LA205_2==RULE_ID||LA205_2==66||LA205_2==80||LA205_2==92) ) {s = 5;}

                        else if ( LA205_2 == 89 && getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_7(), 1) ) {s = 7;}

                         
                        input.seek(index205_2);
                        if ( s>=0 ) return s;
                        break;
                    case 2 : 
                        int LA205_3 = input.LA(1);

                         
                        int index205_3 = input.index();
                        input.rewind();
                        s = -1;
                        if ( LA205_3 == 89 && getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_7(), 2) ) {s = 8;}

                        else if ( (LA205_3==RULE_ID||LA205_3==66||LA205_3==80||LA205_3==92) ) {s = 5;}

                         
                        input.seek(index205_3);
                        if ( s>=0 ) return s;
                        break;
                    case 3 : 
                        int LA205_4 = input.LA(1);

                         
                        int index205_4 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (LA205_4==RULE_ID||LA205_4==66||LA205_4==80||LA205_4==92) ) {s = 5;}

                        else if ( LA205_4 == 89 && getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_7(), 3) ) {s = 9;}

                         
                        input.seek(index205_4);
                        if ( s>=0 ) return s;
                        break;
            }
            if (state.backtracking>0) {state.failed=true; return -1;}
            NoViableAltException nvae =
                new NoViableAltException(getDescription(), 205, _s, input);
            error(nvae);
            throw nvae;
        }
    }

    class DFA207 extends DFA {

        public DFA207(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 207;
            this.eot = dfa_54;
            this.eof = dfa_127;
            this.min = dfa_128;
            this.max = dfa_129;
            this.accept = dfa_130;
            this.special = dfa_131;
            this.transition = dfa_132;
        }
        public String getDescription() {
            return "25567:2: ( rule__XAttribute__UnorderedGroup_7__1 )?";
        }
        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
            TokenStream input = (TokenStream)_input;
        	int _s = s;
            switch ( s ) {
                    case 0 : 
                        int LA207_1 = input.LA(1);

                         
                        int index207_1 = input.index();
                        input.rewind();
                        s = -1;
                        if ( LA207_1 == 89 && getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_7(), 0) ) {s = 6;}

                        else if ( (LA207_1==RULE_ID||LA207_1==66||LA207_1==80||LA207_1==92) ) {s = 5;}

                         
                        input.seek(index207_1);
                        if ( s>=0 ) return s;
                        break;
                    case 1 : 
                        int LA207_2 = input.LA(1);

                         
                        int index207_2 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (LA207_2==RULE_ID||LA207_2==66||LA207_2==80||LA207_2==92) ) {s = 5;}

                        else if ( LA207_2 == 89 && getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_7(), 1) ) {s = 7;}

                         
                        input.seek(index207_2);
                        if ( s>=0 ) return s;
                        break;
                    case 2 : 
                        int LA207_3 = input.LA(1);

                         
                        int index207_3 = input.index();
                        input.rewind();
                        s = -1;
                        if ( LA207_3 == 89 && getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_7(), 2) ) {s = 8;}

                        else if ( (LA207_3==RULE_ID||LA207_3==66||LA207_3==80||LA207_3==92) ) {s = 5;}

                         
                        input.seek(index207_3);
                        if ( s>=0 ) return s;
                        break;
                    case 3 : 
                        int LA207_4 = input.LA(1);

                         
                        int index207_4 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (LA207_4==RULE_ID||LA207_4==66||LA207_4==80||LA207_4==92) ) {s = 5;}

                        else if ( LA207_4 == 89 && getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_7(), 3) ) {s = 9;}

                         
                        input.seek(index207_4);
                        if ( s>=0 ) return s;
                        break;
            }
            if (state.backtracking>0) {state.failed=true; return -1;}
            NoViableAltException nvae =
                new NoViableAltException(getDescription(), 207, _s, input);
            error(nvae);
            throw nvae;
        }
    }

    class DFA208 extends DFA {

        public DFA208(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 208;
            this.eot = dfa_54;
            this.eof = dfa_127;
            this.min = dfa_128;
            this.max = dfa_129;
            this.accept = dfa_130;
            this.special = dfa_131;
            this.transition = dfa_132;
        }
        public String getDescription() {
            return "25580:2: ( rule__XAttribute__UnorderedGroup_7__2 )?";
        }
        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
            TokenStream input = (TokenStream)_input;
        	int _s = s;
            switch ( s ) {
                    case 0 : 
                        int LA208_1 = input.LA(1);

                         
                        int index208_1 = input.index();
                        input.rewind();
                        s = -1;
                        if ( LA208_1 == 89 && getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_7(), 0) ) {s = 6;}

                        else if ( (LA208_1==RULE_ID||LA208_1==66||LA208_1==80||LA208_1==92) ) {s = 5;}

                         
                        input.seek(index208_1);
                        if ( s>=0 ) return s;
                        break;
                    case 1 : 
                        int LA208_2 = input.LA(1);

                         
                        int index208_2 = input.index();
                        input.rewind();
                        s = -1;
                        if ( LA208_2 == 89 && getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_7(), 1) ) {s = 7;}

                        else if ( (LA208_2==RULE_ID||LA208_2==66||LA208_2==80||LA208_2==92) ) {s = 5;}

                         
                        input.seek(index208_2);
                        if ( s>=0 ) return s;
                        break;
                    case 2 : 
                        int LA208_3 = input.LA(1);

                         
                        int index208_3 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (LA208_3==RULE_ID||LA208_3==66||LA208_3==80||LA208_3==92) ) {s = 5;}

                        else if ( LA208_3 == 89 && getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_7(), 2) ) {s = 8;}

                         
                        input.seek(index208_3);
                        if ( s>=0 ) return s;
                        break;
                    case 3 : 
                        int LA208_4 = input.LA(1);

                         
                        int index208_4 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (LA208_4==RULE_ID||LA208_4==66||LA208_4==80||LA208_4==92) ) {s = 5;}

                        else if ( LA208_4 == 89 && getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_7(), 3) ) {s = 9;}

                         
                        input.seek(index208_4);
                        if ( s>=0 ) return s;
                        break;
            }
            if (state.backtracking>0) {state.failed=true; return -1;}
            NoViableAltException nvae =
                new NoViableAltException(getDescription(), 208, _s, input);
            error(nvae);
            throw nvae;
        }
    }

    class DFA209 extends DFA {

        public DFA209(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 209;
            this.eot = dfa_54;
            this.eof = dfa_127;
            this.min = dfa_128;
            this.max = dfa_129;
            this.accept = dfa_130;
            this.special = dfa_131;
            this.transition = dfa_132;
        }
        public String getDescription() {
            return "25593:2: ( rule__XAttribute__UnorderedGroup_7__3 )?";
        }
        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
            TokenStream input = (TokenStream)_input;
        	int _s = s;
            switch ( s ) {
                    case 0 : 
                        int LA209_1 = input.LA(1);

                         
                        int index209_1 = input.index();
                        input.rewind();
                        s = -1;
                        if ( LA209_1 == 89 && getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_7(), 0) ) {s = 6;}

                        else if ( (LA209_1==RULE_ID||LA209_1==66||LA209_1==80||LA209_1==92) ) {s = 5;}

                         
                        input.seek(index209_1);
                        if ( s>=0 ) return s;
                        break;
                    case 1 : 
                        int LA209_2 = input.LA(1);

                         
                        int index209_2 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (LA209_2==RULE_ID||LA209_2==66||LA209_2==80||LA209_2==92) ) {s = 5;}

                        else if ( LA209_2 == 89 && getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_7(), 1) ) {s = 7;}

                         
                        input.seek(index209_2);
                        if ( s>=0 ) return s;
                        break;
                    case 2 : 
                        int LA209_3 = input.LA(1);

                         
                        int index209_3 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (LA209_3==RULE_ID||LA209_3==66||LA209_3==80||LA209_3==92) ) {s = 5;}

                        else if ( LA209_3 == 89 && getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_7(), 2) ) {s = 8;}

                         
                        input.seek(index209_3);
                        if ( s>=0 ) return s;
                        break;
                    case 3 : 
                        int LA209_4 = input.LA(1);

                         
                        int index209_4 = input.index();
                        input.rewind();
                        s = -1;
                        if ( LA209_4 == 89 && getUnorderedGroupHelper().canSelect(grammarAccess.getXAttributeAccess().getUnorderedGroup_7(), 3) ) {s = 9;}

                        else if ( (LA209_4==RULE_ID||LA209_4==66||LA209_4==80||LA209_4==92) ) {s = 5;}

                         
                        input.seek(index209_4);
                        if ( s>=0 ) return s;
                        break;
            }
            if (state.backtracking>0) {state.failed=true; return -1;}
            NoViableAltException nvae =
                new NoViableAltException(getDescription(), 209, _s, input);
            error(nvae);
            throw nvae;
        }
    }
    static final String dfa_132s = "\1\uffff\1\3\1\2\1\1\1\0\5\uffff}>";
    static final short[] dfa_133 = DFA.unpackEncodedString(dfa_132s);

    class DFA218 extends DFA {

        public DFA218(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 218;
            this.eot = dfa_54;
            this.eof = dfa_127;
            this.min = dfa_128;
            this.max = dfa_129;
            this.accept = dfa_130;
            this.special = dfa_133;
            this.transition = dfa_132;
        }
        public String getDescription() {
            return "25882:2: ( rule__XReference__UnorderedGroup_9__0 )?";
        }
        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
            TokenStream input = (TokenStream)_input;
        	int _s = s;
            switch ( s ) {
                    case 0 : 
                        int LA218_4 = input.LA(1);

                         
                        int index218_4 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (LA218_4==RULE_ID||LA218_4==66||LA218_4==80||LA218_4==92) ) {s = 5;}

                        else if ( LA218_4 == 89 && getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_9(), 3) ) {s = 9;}

                         
                        input.seek(index218_4);
                        if ( s>=0 ) return s;
                        break;
                    case 1 : 
                        int LA218_3 = input.LA(1);

                         
                        int index218_3 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (LA218_3==RULE_ID||LA218_3==66||LA218_3==80||LA218_3==92) ) {s = 5;}

                        else if ( LA218_3 == 89 && getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_9(), 2) ) {s = 8;}

                         
                        input.seek(index218_3);
                        if ( s>=0 ) return s;
                        break;
                    case 2 : 
                        int LA218_2 = input.LA(1);

                         
                        int index218_2 = input.index();
                        input.rewind();
                        s = -1;
                        if ( LA218_2 == 89 && getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_9(), 1) ) {s = 7;}

                        else if ( (LA218_2==RULE_ID||LA218_2==66||LA218_2==80||LA218_2==92) ) {s = 5;}

                         
                        input.seek(index218_2);
                        if ( s>=0 ) return s;
                        break;
                    case 3 : 
                        int LA218_1 = input.LA(1);

                         
                        int index218_1 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (LA218_1==RULE_ID||LA218_1==66||LA218_1==80||LA218_1==92) ) {s = 5;}

                        else if ( LA218_1 == 89 && getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_9(), 0) ) {s = 6;}

                         
                        input.seek(index218_1);
                        if ( s>=0 ) return s;
                        break;
            }
            if (state.backtracking>0) {state.failed=true; return -1;}
            NoViableAltException nvae =
                new NoViableAltException(getDescription(), 218, _s, input);
            error(nvae);
            throw nvae;
        }
    }

    class DFA220 extends DFA {

        public DFA220(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 220;
            this.eot = dfa_54;
            this.eof = dfa_127;
            this.min = dfa_128;
            this.max = dfa_129;
            this.accept = dfa_130;
            this.special = dfa_133;
            this.transition = dfa_132;
        }
        public String getDescription() {
            return "25983:2: ( rule__XReference__UnorderedGroup_9__1 )?";
        }
        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
            TokenStream input = (TokenStream)_input;
        	int _s = s;
            switch ( s ) {
                    case 0 : 
                        int LA220_4 = input.LA(1);

                         
                        int index220_4 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (LA220_4==RULE_ID||LA220_4==66||LA220_4==80||LA220_4==92) ) {s = 5;}

                        else if ( LA220_4 == 89 && getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_9(), 3) ) {s = 9;}

                         
                        input.seek(index220_4);
                        if ( s>=0 ) return s;
                        break;
                    case 1 : 
                        int LA220_3 = input.LA(1);

                         
                        int index220_3 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (LA220_3==RULE_ID||LA220_3==66||LA220_3==80||LA220_3==92) ) {s = 5;}

                        else if ( LA220_3 == 89 && getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_9(), 2) ) {s = 8;}

                         
                        input.seek(index220_3);
                        if ( s>=0 ) return s;
                        break;
                    case 2 : 
                        int LA220_2 = input.LA(1);

                         
                        int index220_2 = input.index();
                        input.rewind();
                        s = -1;
                        if ( LA220_2 == 89 && getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_9(), 1) ) {s = 7;}

                        else if ( (LA220_2==RULE_ID||LA220_2==66||LA220_2==80||LA220_2==92) ) {s = 5;}

                         
                        input.seek(index220_2);
                        if ( s>=0 ) return s;
                        break;
                    case 3 : 
                        int LA220_1 = input.LA(1);

                         
                        int index220_1 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (LA220_1==RULE_ID||LA220_1==66||LA220_1==80||LA220_1==92) ) {s = 5;}

                        else if ( LA220_1 == 89 && getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_9(), 0) ) {s = 6;}

                         
                        input.seek(index220_1);
                        if ( s>=0 ) return s;
                        break;
            }
            if (state.backtracking>0) {state.failed=true; return -1;}
            NoViableAltException nvae =
                new NoViableAltException(getDescription(), 220, _s, input);
            error(nvae);
            throw nvae;
        }
    }

    class DFA221 extends DFA {

        public DFA221(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 221;
            this.eot = dfa_54;
            this.eof = dfa_127;
            this.min = dfa_128;
            this.max = dfa_129;
            this.accept = dfa_130;
            this.special = dfa_133;
            this.transition = dfa_132;
        }
        public String getDescription() {
            return "25996:2: ( rule__XReference__UnorderedGroup_9__2 )?";
        }
        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
            TokenStream input = (TokenStream)_input;
        	int _s = s;
            switch ( s ) {
                    case 0 : 
                        int LA221_4 = input.LA(1);

                         
                        int index221_4 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (LA221_4==RULE_ID||LA221_4==66||LA221_4==80||LA221_4==92) ) {s = 5;}

                        else if ( LA221_4 == 89 && getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_9(), 3) ) {s = 9;}

                         
                        input.seek(index221_4);
                        if ( s>=0 ) return s;
                        break;
                    case 1 : 
                        int LA221_3 = input.LA(1);

                         
                        int index221_3 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (LA221_3==RULE_ID||LA221_3==66||LA221_3==80||LA221_3==92) ) {s = 5;}

                        else if ( LA221_3 == 89 && getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_9(), 2) ) {s = 8;}

                         
                        input.seek(index221_3);
                        if ( s>=0 ) return s;
                        break;
                    case 2 : 
                        int LA221_2 = input.LA(1);

                         
                        int index221_2 = input.index();
                        input.rewind();
                        s = -1;
                        if ( LA221_2 == 89 && getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_9(), 1) ) {s = 7;}

                        else if ( (LA221_2==RULE_ID||LA221_2==66||LA221_2==80||LA221_2==92) ) {s = 5;}

                         
                        input.seek(index221_2);
                        if ( s>=0 ) return s;
                        break;
                    case 3 : 
                        int LA221_1 = input.LA(1);

                         
                        int index221_1 = input.index();
                        input.rewind();
                        s = -1;
                        if ( LA221_1 == 89 && getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_9(), 0) ) {s = 6;}

                        else if ( (LA221_1==RULE_ID||LA221_1==66||LA221_1==80||LA221_1==92) ) {s = 5;}

                         
                        input.seek(index221_1);
                        if ( s>=0 ) return s;
                        break;
            }
            if (state.backtracking>0) {state.failed=true; return -1;}
            NoViableAltException nvae =
                new NoViableAltException(getDescription(), 221, _s, input);
            error(nvae);
            throw nvae;
        }
    }

    class DFA222 extends DFA {

        public DFA222(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 222;
            this.eot = dfa_54;
            this.eof = dfa_127;
            this.min = dfa_128;
            this.max = dfa_129;
            this.accept = dfa_130;
            this.special = dfa_133;
            this.transition = dfa_132;
        }
        public String getDescription() {
            return "26009:2: ( rule__XReference__UnorderedGroup_9__3 )?";
        }
        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
            TokenStream input = (TokenStream)_input;
        	int _s = s;
            switch ( s ) {
                    case 0 : 
                        int LA222_4 = input.LA(1);

                         
                        int index222_4 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (LA222_4==RULE_ID||LA222_4==66||LA222_4==80||LA222_4==92) ) {s = 5;}

                        else if ( LA222_4 == 89 && getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_9(), 3) ) {s = 9;}

                         
                        input.seek(index222_4);
                        if ( s>=0 ) return s;
                        break;
                    case 1 : 
                        int LA222_3 = input.LA(1);

                         
                        int index222_3 = input.index();
                        input.rewind();
                        s = -1;
                        if ( LA222_3 == 89 && getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_9(), 2) ) {s = 8;}

                        else if ( (LA222_3==RULE_ID||LA222_3==66||LA222_3==80||LA222_3==92) ) {s = 5;}

                         
                        input.seek(index222_3);
                        if ( s>=0 ) return s;
                        break;
                    case 2 : 
                        int LA222_2 = input.LA(1);

                         
                        int index222_2 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (LA222_2==RULE_ID||LA222_2==66||LA222_2==80||LA222_2==92) ) {s = 5;}

                        else if ( LA222_2 == 89 && getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_9(), 1) ) {s = 7;}

                         
                        input.seek(index222_2);
                        if ( s>=0 ) return s;
                        break;
                    case 3 : 
                        int LA222_1 = input.LA(1);

                         
                        int index222_1 = input.index();
                        input.rewind();
                        s = -1;
                        if ( LA222_1 == 89 && getUnorderedGroupHelper().canSelect(grammarAccess.getXReferenceAccess().getUnorderedGroup_9(), 0) ) {s = 6;}

                        else if ( (LA222_1==RULE_ID||LA222_1==66||LA222_1==80||LA222_1==92) ) {s = 5;}

                         
                        input.seek(index222_1);
                        if ( s>=0 ) return s;
                        break;
            }
            if (state.backtracking>0) {state.failed=true; return -1;}
            NoViableAltException nvae =
                new NoViableAltException(getDescription(), 222, _s, input);
            error(nvae);
            throw nvae;
        }
    }
 

    
    private static class FollowSets000 {
        public static final BitSet FOLLOW_1 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_2 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_3 = new BitSet(new long[]{0x0000000000F10022L});
        public static final BitSet FOLLOW_4 = new BitSet(new long[]{0x0000080000000000L,0x0000000000100000L});
        public static final BitSet FOLLOW_5 = new BitSet(new long[]{0x0000000000000002L,0x0000000000100000L});
        public static final BitSet FOLLOW_6 = new BitSet(new long[]{0x0000000000F10020L});
        public static final BitSet FOLLOW_7 = new BitSet(new long[]{0x000000A20B000000L,0x0000000001100000L});
        public static final BitSet FOLLOW_8 = new BitSet(new long[]{0x0000002000000002L});
        public static final BitSet FOLLOW_9 = new BitSet(new long[]{0x0000000002000002L});
        public static final BitSet FOLLOW_10 = new BitSet(new long[]{0x0000008209000002L,0x0000000001100000L});
        public static final BitSet FOLLOW_11 = new BitSet(new long[]{0x0000000000F00020L});
        public static final BitSet FOLLOW_12 = new BitSet(new long[]{0x0000000000000000L,0x0000000000200000L});
        public static final BitSet FOLLOW_13 = new BitSet(new long[]{0x0000000000000000L,0x0000000000C00000L});
        public static final BitSet FOLLOW_14 = new BitSet(new long[]{0x0000000000000002L,0x0000000000800000L});
        public static final BitSet FOLLOW_15 = new BitSet(new long[]{0x0000000000002000L});
        public static final BitSet FOLLOW_16 = new BitSet(new long[]{0x0000000000000100L});
        public static final BitSet FOLLOW_17 = new BitSet(new long[]{0x0000002000000000L});
        public static final BitSet FOLLOW_18 = new BitSet(new long[]{0x0000000004000000L});
        public static final BitSet FOLLOW_19 = new BitSet(new long[]{0x0000000000000000L,0x0000000001100000L});
        public static final BitSet FOLLOW_20 = new BitSet(new long[]{0x0000000000000020L});
        public static final BitSet FOLLOW_21 = new BitSet(new long[]{0x0040000000000000L,0x0000000000000004L});
        public static final BitSet FOLLOW_22 = new BitSet(new long[]{0x0000000000F10020L,0x0000000000200040L});
        public static final BitSet FOLLOW_23 = new BitSet(new long[]{0x00000000C0000000L});
        public static final BitSet FOLLOW_24 = new BitSet(new long[]{0x0000000000000020L,0x0000000000100000L});
        public static final BitSet FOLLOW_25 = new BitSet(new long[]{0x0000000000000000L,0x0000000000800002L});
        public static final BitSet FOLLOW_26 = new BitSet(new long[]{0x0000000000000000L,0x0000000002000000L});
        public static final BitSet FOLLOW_27 = new BitSet(new long[]{0x0000008209000000L,0x0000000001100000L});
        public static final BitSet FOLLOW_28 = new BitSet(new long[]{0x0000000000000020L,0x0000000004100000L});
        public static final BitSet FOLLOW_29 = new BitSet(new long[]{0x0000000000000020L,0x0000000000900000L});
        public static final BitSet FOLLOW_30 = new BitSet(new long[]{0x0000000000000022L,0x0000000000900000L});
        public static final BitSet FOLLOW_31 = new BitSet(new long[]{0x0000000004002000L});
        public static final BitSet FOLLOW_32 = new BitSet(new long[]{0x0000000000000010L,0x0000000000000200L});
        public static final BitSet FOLLOW_33 = new BitSet(new long[]{0x0000008009000000L,0x0000000000100000L});
        public static final BitSet FOLLOW_34 = new BitSet(new long[]{0x0040000400000000L,0x0000000002000004L});
        public static final BitSet FOLLOW_35 = new BitSet(new long[]{0x003E731130000000L,0x0000000004100000L});
        public static final BitSet FOLLOW_36 = new BitSet(new long[]{0x003E731130000002L,0x0000000000100000L});
        public static final BitSet FOLLOW_37 = new BitSet(new long[]{0x0000000009000000L});
        public static final BitSet FOLLOW_38 = new BitSet(new long[]{0x0000000000000000L,0x0000000000800000L});
        public static final BitSet FOLLOW_39 = new BitSet(new long[]{0x003E101100000000L,0x0000000000100000L});
        public static final BitSet FOLLOW_40 = new BitSet(new long[]{0x0000000000000020L,0x0000000010000000L});
        public static final BitSet FOLLOW_41 = new BitSet(new long[]{0x0000000000F02000L});
        public static final BitSet FOLLOW_42 = new BitSet(new long[]{0x003E731130000000L,0x0000000000100000L});
        public static final BitSet FOLLOW_43 = new BitSet(new long[]{0x003E100100000000L});
        public static final BitSet FOLLOW_44 = new BitSet(new long[]{0x0000044000F00000L});
        public static final BitSet FOLLOW_45 = new BitSet(new long[]{0x0000400000000000L});
        public static final BitSet FOLLOW_46 = new BitSet(new long[]{0x0000000020000000L});
        public static final BitSet FOLLOW_47 = new BitSet(new long[]{0x0000000010000000L});
        public static final BitSet FOLLOW_48 = new BitSet(new long[]{0x0000010000000000L});
        public static final BitSet FOLLOW_49 = new BitSet(new long[]{0x0000200000000000L});
        public static final BitSet FOLLOW_50 = new BitSet(new long[]{0x0000020000000000L,0x0000000000100000L});
        public static final BitSet FOLLOW_51 = new BitSet(new long[]{0x000C000000F10020L,0x0000000000000004L});
        public static final BitSet FOLLOW_52 = new BitSet(new long[]{0x000C000000F00020L,0x0000000000500000L});
        public static final BitSet FOLLOW_53 = new BitSet(new long[]{0x0001000000000000L,0x0000000002000000L});
        public static final BitSet FOLLOW_54 = new BitSet(new long[]{0x0004000000000000L});
        public static final BitSet FOLLOW_55 = new BitSet(new long[]{0x0008000000000000L});
        public static final BitSet FOLLOW_56 = new BitSet(new long[]{0x000C000000F00020L,0x0000000000100000L});
        public static final BitSet FOLLOW_57 = new BitSet(new long[]{0x0000000400000000L});
        public static final BitSet FOLLOW_58 = new BitSet(new long[]{0x0000000000000000L,0x0000000008000000L});
        public static final BitSet FOLLOW_59 = new BitSet(new long[]{0x0000000000000002L,0x0000000008000000L});
        public static final BitSet FOLLOW_60 = new BitSet(new long[]{0x00000000000E0010L,0x0000000020000000L});
        public static final BitSet FOLLOW_61 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000020L});
        public static final BitSet FOLLOW_62 = new BitSet(new long[]{0x0000000000060010L});
        public static final BitSet FOLLOW_63 = new BitSet(new long[]{0x007FFFFFFFF901F0L,0x00C2FF8B162E2204L});
        public static final BitSet FOLLOW_64 = new BitSet(new long[]{0x007FFFFFFFF901F2L,0x00C2FF8B122E2204L});
        public static final BitSet FOLLOW_65 = new BitSet(new long[]{0x0000000000000000L,0x0000000040000000L});
        public static final BitSet FOLLOW_66 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000004L});
        public static final BitSet FOLLOW_67 = new BitSet(new long[]{0x0000000000F20020L});
        public static final BitSet FOLLOW_68 = new BitSet(new long[]{0x0000000400000000L,0x0000000000040000L});
        public static final BitSet FOLLOW_69 = new BitSet(new long[]{0x0000000000000000L,0x0000000000010000L});
        public static final BitSet FOLLOW_70 = new BitSet(new long[]{0x0000000000000002L,0x0000000000010000L});
        public static final BitSet FOLLOW_71 = new BitSet(new long[]{0x007FFFFFFFF10020L});
        public static final BitSet FOLLOW_72 = new BitSet(new long[]{0x007FFFFFFFF901F0L,0x00C2FF8B122E2204L});
        public static final BitSet FOLLOW_73 = new BitSet(new long[]{0x0F80000000000000L,0x0000000000000006L});
        public static final BitSet FOLLOW_74 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000003L});
        public static final BitSet FOLLOW_75 = new BitSet(new long[]{0x0000000000004000L});
        public static final BitSet FOLLOW_76 = new BitSet(new long[]{0x0000000000004002L});
        public static final BitSet FOLLOW_77 = new BitSet(new long[]{0x0000000000008000L});
        public static final BitSet FOLLOW_78 = new BitSet(new long[]{0x0000000000008002L});
        public static final BitSet FOLLOW_79 = new BitSet(new long[]{0xF000000000000000L});
        public static final BitSet FOLLOW_80 = new BitSet(new long[]{0xF000000000000002L});
        public static final BitSet FOLLOW_81 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000007L});
        public static final BitSet FOLLOW_82 = new BitSet(new long[]{0x0000000000000002L,0x0000000080000007L});
        public static final BitSet FOLLOW_83 = new BitSet(new long[]{0x0000000000000000L,0x0000000080000000L});
        public static final BitSet FOLLOW_84 = new BitSet(new long[]{0x0000000000000000L,0x00000000000001FEL});
        public static final BitSet FOLLOW_85 = new BitSet(new long[]{0x0000000000000002L,0x00000000000001FEL});
        public static final BitSet FOLLOW_86 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000002L});
        public static final BitSet FOLLOW_87 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000044L});
        public static final BitSet FOLLOW_88 = new BitSet(new long[]{0x0000000000080000L,0x0000000000000200L});
        public static final BitSet FOLLOW_89 = new BitSet(new long[]{0x0000000000080002L,0x0000000000000200L});
        public static final BitSet FOLLOW_90 = new BitSet(new long[]{0x0000000000040000L,0x0000000000001C00L});
        public static final BitSet FOLLOW_91 = new BitSet(new long[]{0x0000000000040002L,0x0000000000001C00L});
        public static final BitSet FOLLOW_92 = new BitSet(new long[]{0x0000000000080000L,0x0000000000002200L});
        public static final BitSet FOLLOW_93 = new BitSet(new long[]{0x0000000004000002L});
        public static final BitSet FOLLOW_94 = new BitSet(new long[]{0x0000000000000000L,0x000000000000C000L});
        public static final BitSet FOLLOW_95 = new BitSet(new long[]{0x0000000000000000L,0x0018000000010000L});
        public static final BitSet FOLLOW_96 = new BitSet(new long[]{0x0000000000000002L,0x0018000000010000L});
        public static final BitSet FOLLOW_97 = new BitSet(new long[]{0x0000000000000000L,0x0008000000010000L});
        public static final BitSet FOLLOW_98 = new BitSet(new long[]{0x007FFFFFFFF10020L,0x0000000000040004L});
        public static final BitSet FOLLOW_99 = new BitSet(new long[]{0x0000000000000000L,0x0000000010200000L});
        public static final BitSet FOLLOW_100 = new BitSet(new long[]{0x0000000000F30020L,0x0000000000200040L});
        public static final BitSet FOLLOW_101 = new BitSet(new long[]{0x007FFFFFFFF901F0L,0x00E2FF8B126E2244L});
        public static final BitSet FOLLOW_102 = new BitSet(new long[]{0x0000000000000000L,0x0000000100000000L});
        public static final BitSet FOLLOW_103 = new BitSet(new long[]{0x0000000000000000L,0x0000000010000000L});
        public static final BitSet FOLLOW_104 = new BitSet(new long[]{0x007FFFFFFFF901F0L,0x00C2FF8B322E2204L});
        public static final BitSet FOLLOW_105 = new BitSet(new long[]{0x007FFFFFFFF901F0L,0x00E2FF8B122E2244L});
        public static final BitSet FOLLOW_106 = new BitSet(new long[]{0x0000000000000000L,0x0000000020000000L});
        public static final BitSet FOLLOW_107 = new BitSet(new long[]{0x0000000000F10020L,0x0020000000200040L});
        public static final BitSet FOLLOW_108 = new BitSet(new long[]{0x0000000000000000L,0x0000000000400000L});
        public static final BitSet FOLLOW_109 = new BitSet(new long[]{0x0000000000000000L,0x0000000200000000L});
        public static final BitSet FOLLOW_110 = new BitSet(new long[]{0x0000000000000000L,0x0000000400000000L});
        public static final BitSet FOLLOW_111 = new BitSet(new long[]{0x0000000000000000L,0x0000000800000000L});
        public static final BitSet FOLLOW_112 = new BitSet(new long[]{0x007FFFFFFFF901F0L,0x00C2FF8B122E2244L});
        public static final BitSet FOLLOW_113 = new BitSet(new long[]{0x0000000000F10020L,0x0000007004A00040L});
        public static final BitSet FOLLOW_114 = new BitSet(new long[]{0x0000000000F10022L,0x0000005000A00040L});
        public static final BitSet FOLLOW_115 = new BitSet(new long[]{0x0000000000000000L,0x0000001000000000L});
        public static final BitSet FOLLOW_116 = new BitSet(new long[]{0x0000000000F10020L,0x0000005000A00040L});
        public static final BitSet FOLLOW_117 = new BitSet(new long[]{0x0000000000000000L,0x0000008000000000L});
        public static final BitSet FOLLOW_118 = new BitSet(new long[]{0x007FFFFFFFF901F0L,0x00C2FF8B522E2204L});
        public static final BitSet FOLLOW_119 = new BitSet(new long[]{0x007FFFFFFFF901F0L,0x00C2FF8B126E2204L});
        public static final BitSet FOLLOW_120 = new BitSet(new long[]{0x0000000000000000L,0x0000010000000000L});
        public static final BitSet FOLLOW_121 = new BitSet(new long[]{0x0000000000000000L,0x0000020000000000L});
        public static final BitSet FOLLOW_122 = new BitSet(new long[]{0x0000000000000000L,0x0040000000020000L});
        public static final BitSet FOLLOW_123 = new BitSet(new long[]{0x0000000000000000L,0x0000040000000000L});
        public static final BitSet FOLLOW_124 = new BitSet(new long[]{0x0000000000000000L,0x0000000010200004L});
        public static final BitSet FOLLOW_125 = new BitSet(new long[]{0x0000000000000000L,0x0080000000080000L});
        public static final BitSet FOLLOW_126 = new BitSet(new long[]{0x0000000000000000L,0x0000080000000000L});
        public static final BitSet FOLLOW_127 = new BitSet(new long[]{0x00000000000000D0L});
        public static final BitSet FOLLOW_128 = new BitSet(new long[]{0x00000000000001D0L,0x0080180110080000L});
        public static final BitSet FOLLOW_129 = new BitSet(new long[]{0x0000000000000000L,0x0000000010400000L});
        public static final BitSet FOLLOW_130 = new BitSet(new long[]{0x0000000000000002L,0x0000000010000000L});
        public static final BitSet FOLLOW_131 = new BitSet(new long[]{0x0000000000000000L,0x0000200000000000L});
        public static final BitSet FOLLOW_132 = new BitSet(new long[]{0x0000000000000000L,0x0000400000000000L});
        public static final BitSet FOLLOW_133 = new BitSet(new long[]{0x0000000000000000L,0x0000800000000000L});
        public static final BitSet FOLLOW_134 = new BitSet(new long[]{0x0000000000000000L,0x0005000000000000L});
        public static final BitSet FOLLOW_135 = new BitSet(new long[]{0x0000000000000000L,0x0001000000000000L});
        public static final BitSet FOLLOW_136 = new BitSet(new long[]{0x0000000000000002L,0x0004000000000000L});
        public static final BitSet FOLLOW_137 = new BitSet(new long[]{0x0000000000000000L,0x0002000000000000L});
        public static final BitSet FOLLOW_138 = new BitSet(new long[]{0x0000000000000090L});
        public static final BitSet FOLLOW_139 = new BitSet(new long[]{0x0000000000F10020L,0x0000000000600040L});
        public static final BitSet FOLLOW_140 = new BitSet(new long[]{0x0000000000040000L});
        public static final BitSet FOLLOW_141 = new BitSet(new long[]{0x0000800000F10020L});
        public static final BitSet FOLLOW_142 = new BitSet(new long[]{0x0000000800F10020L});
        public static final BitSet FOLLOW_143 = new BitSet(new long[]{0x0000000000F50020L});
        public static final BitSet FOLLOW_144 = new BitSet(new long[]{0x00000000C0000002L});
        public static final BitSet FOLLOW_145 = new BitSet(new long[]{0x003E101100000002L});
        public static final BitSet FOLLOW_146 = new BitSet(new long[]{0x0000000000F00002L});
        public static final BitSet FOLLOW_147 = new BitSet(new long[]{0x003E100100000002L});
    }


}